ساخت فرم نام نویسی ساده با php
یکی از سوالات رایج دوستانی که تازه با php آشنا شدن نحوه ذخیره و خواندن اطلاعات از بانک mysql می باشد. در این پست قصد داریم ساخت یک فرم ثبت نام ساده در php رو آموزش بدیم. برای این منظور به دو تا فایل نیاز داریم یه فایل برای دریافت اطلاعات از کاربر (index.html) و یه فایل برای پردازش اطلاعات دریافت شده از کاربر و ثبت مقادیر در بانک اطلاعاتی(register.php). خب اجازه بدین آموزش رو شروع کنیم: در این آموزش فرم ثبت نام ما دارای سه فیلد (نام کاربری، رمز عبور و آدرس ایمیل) می باشد. فرم ما شکلی مانند تصویر زیر خواهد داشت.
برای ساخت این فرم از تگ form استفاده می کنیم. در مرحله اول باید یه فایل html بسازیم و کد های زیر رو داخلش قرار بدیم
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Login form</title>
<link rel="stylesheet" type="text/css" href="style.css"> </head>
<body>
<div id="form">
<form action="register.php" method="post">
<p>نام:
<input type="text" name="userName">
</p>
<p>رمز عبور:
<input type="password" name="passWord">
</p>
<p>ایمیل:
<input type="text" name="eMail">
</p>
<input type="submit" name="submit" value="ثبت نام"> </form>
</div>
</body>
</html>
در خط ۱۰ از تگ Form استفاده کردیم. خاصیت action در تگ form مشخص می کنه وقتی کاربر روی دکمه ثبت نام کلیک کرد، اطلاعات موجود در فرم به کدام صفحه ارسال بشه و در ادامه متد POST نیز نحوه ارسال اطلاعات رو به صفحه تعیین شده مشخص می کنه. پس از پر کردن فرم و کلیک بر روی دکمه ثبت نام، اطلاعات دریافتی باید بررسی شده و خطاهای احتمالی اصلاح بشه و در صورت ورود اطلاعات بصورت کامل، داده ها در بانک اطلاعاتی ذخیره بشه. خب حالا نوبت میرسه به ایجاد صفحه ای که در متد action تعیین کردیم تا این عملیات رو انجام بده. برای این منظور یه فایل به نام register.php ایجاد کرده و کدهای زیر رو درون آن ذخیره کنید:
<?php
$server = "localhost"; //your servername
$db_user = "root"; //database username
$db_pass = ""; //database Password
$db_name = "userdb01"; //insert your batabase name
$tbl_name = "hb_users"; //insert your table name
$user = $_POST['userName'];
$pass = $_POST['passWord'];
$email = $_POST['eMail'];
if(!$user) {
die('لطفا نام کاربری را وارد نمایید');
}
if(!$pass) {
die('رمز عبور نمی تواند خالی باشد');
}
if(!$email) {
die('ادرس ایمیل معتبر نیست');
}
if(!preg_match('/[a-zA-z0-9._-]+@[a-zA-z0-9\.-]+\.[a-zA-z\.]+/', $email)) {
die('آدرس ایمیل معتبر نمی باشد');
}
$conn = mysql_connect($server, $db_user, $db_pass);
if(!$conn) {
die('connection error, connection not found');
}
if(!mysql_select_db($db_name)) {
die("database not found");
}
$pass_hash = md5($pass);
$query = mysql_query("insert into '$tbl_name' (user_Name, user_Pass, user_Email) values ('$user', '$pass_hash', '$email')");
if(mysql_affected_rows()>0) {
die('متشکریم! ثبت نام شما با موفقیت انجام شد');
}
else {
die('ثبت نام با مشکل مواجه شد، لطفا مجددا سعی نمایید');
}
?>
خب اینجا تو ۶ خط اول اطلاعات مربوط به بانک رو تو متغیرهایی ذخیره کردیم تا در صورتیکه خواستین رو بانک دیگه ای اجرا کنین فقط مقادیر این متغیرها رو تغییر بدین :) و در ادامه با استفاده از POST_$ مقادیر ارسال شده از صفحه index.html رو در متغیرهایی ذخیره می کنیم تا پس از بررسی های لازم اونا رو درون بانک اطلاعاتی ذخیره کنیم.
تو خط بعدی با استفاده از تابع preg_match مقدار فیلد ایمیل بررسی می شود تا آدرس ایمیل وارد شده دارای ساختار استاندارد باشد (مثل [email protected]) در ادامه تو خط ۲۳ ارتباط با بانک اطلاعاتی mysql رو بررسی کردیم در صورتیکه ارتباط بر قرار نباشد پیغام خطایی نمایش داده می شود و در صورت برقراری ارتباط نام جدولی که اطلاعات باید در آن ذخیره شود رو بررسی می کنیم اگر جدول مورد نظر وجود نداشته باشد نیز پیغام خطایی نمایش داده می شود.
برای حفظ امنیت مقادیر پسورد را با استفاده از تابع md5 بصورت رمز شده در بانک اطلاعاتی ذخیره می کنیم. در انتها query مورد نظر که درج اطلاعات در بانک می باشد را فراخوانی می کنیم در صورت ثبت اطلاعات پیغام مناسب مبنی بر ثبت نام موفقیت آمیز و در صورت بروز خطا نیز پیغام خطا نمایش داده می شود. امیدوارم این آموزش رو بپسندید