آموزش PHP > راهکارهای موثر در PHP > راهکار 1 : ثبت نام و شناسایی
کاربران در وب سایت ها
بخش ششم - طراحی صفحه ثبت نام اعضای جدید در سایت
مقدمه :
یکی از مراحل اصلی در فرآیند ثبت نام اعضا برای سایت ، ساخت صفحه ثبت نام اعضای جدید
است . این صفحه signup.php نام داشته و کد آن را از پوشه
پروژه که دانلود کرده اید ، باز کنید . در این بخش به تشریح کد این صفحه خواهیم
پرداخت .
در مرحله اول برای راهنمایی کاربران به صفحه ثبت نام ، لینکی با متن Sign Up را در
صفحات سایت قرار داده تا کاربران با کلیک بر روی آن به صفحه ثبت نام راهنمایی شوند
.
کد صفحه ثبت نام :
صفحه signup.php را باز نمایید . در این صفحه کدهای لازم برای عملیات ثبت نام کاربران
طراحی شده است .
این کدها با یک تابع شروع می شود که برای جلوگیری از حملات اسکریپتی SQL Injection
به بررسی کاراکترهای ورودی می پردازد . سپس تابع دیگری چک می کند ، آیا اطلاعات لازم
از فرم ثبت نام با متد Post
، ارسال شده اند یا خیر ؟ به کد زیر دقت نمایید :
|
کد
|
$uname = $_POST['username'];
$pword = $_POST['password'];
$uname = htmlspecialchars($uname);
$pword = htmlspecialchars($pword);
|
پس از آنکه مقادیر نام کاربری و رمز عبور را از کاربر دریافت نمودیم ، در مرحله بعدی
می خواهیم چک کنیم ، آیا تعداد کاراکترهای وارد شده برای هر مورد در اندازه مناسب قرار
دارد یا خیر ؟
در کدی که طراحی نموده ایم ، چک شده آیا نام کاربری حداقل 10 کاراکتر و حداکثر 20 کاراکتر
را داراست یا خیر ؟
همچنین حداقل کاراکتر مجاز برای رمز عبور 8 کاراکتر و حداکثر آن 16 عدد است . چنانچه
مقادیر ورودی توسط کاربر به غیر از این تعداد باشد ، پیام های هشداری ، وی را از خطا
مطلع ساخته و خواستار اصلاح پارامترها می شود . به کد زیر و نحوه عملکرد آن دقت نمایید
:
|
کد
|
$uLength = strlen($uname);
$pLength = strlen($pword);
if ($uLength >= 10 && $uLength <= 20) {
$errorMessage = "";
}
else {
$errorMessage = $errorMessage . "Username must be
between 10 and 20 characters" . "<BR>";
}
if ($pLength >= 8 && $pLength <= 16) {
$errorMessage = "";
}
else {
$errorMessage = $errorMessage . "Password must be between
8 and 16 characters" . "<BR>";
}
|
پس از اینکه از اتصال صحیح به پایگاه داده مطمئن شدیم ، نوبت چک کردن نام کاربری است
. بایستی چک کنیم که این نام کاربری قبلا توسط کاربر دیگری در پایگاه داده ثبت شده
است یا خیر . زیرا امکان ثبت نام دو کاربر با نام کاربری یکسان در سیستم عضویت امکان
پذیر نیست .
دستور زیر تعداد تمام رکوردهایی که مقدار فیلد نام کاربری آنها ( L1 ) برابر با نام
کاربری وارد شده توسط کاربر باشد ، را می شمارد . اگر تعداد این رکوردها از صفر بیشتر
باشد ( تعداد آن توسط متغیر num_rows$ مشخص می شود ) نشان دهنده آن است که قبلا این
نام کاربری ثبت شده ، ولی اگر صفر باشد ، به معنای خالی بودن نام کاربری بوده و سپس
دستورات لازم برای ثبت کاربر جدید اجرا می شود .
ولی اگر نام کاربری قبلا استفاده شده بود ، یک پیام خطا در متغیر errorMessage$ ایجاد
می شود تا به کاربر این مشکل را اعلام نماید . به صورت زیر :
|
کد
|
$SQL = "SELECT * FROM login WHERE L1 = $uname";
$result = mysql_query($SQL);
$num_rows = mysql_num_rows($result);
if ($num_rows > 0) {
$errorMessage = "Username already taken";
}
else {
}
|
ثبت نام کاربری جدید در پایگاه داده :
اگر در مرحله قبل ، مقدار متغیر num_rows$ صفر بوده و نام کاربری تعیین شده قبلا استفاده
نشده بود ، کدهای لازم برای درج نام کاربری و رمز عبور در فیلدهای مربوطه ذخیره می
شود .
به وسیله دستور Insert Into مقادیر ( L1 و L2 ) برای نام کاربری و رمز عبور به ترتیب
در فیلدهای مربوطه ذخیره می شود .
|
کد
|
$SQL = "INSERT INTO login (L1, L2) VALUES ($uname, $pword)";
$result = mysql_query($SQL);
mysql_close($db_handle);
|
پس از اینکه نام کاربری جدید ذخیره شد ، می توانیم عملیات ذخیره Session به نام login
را برابر با 1 قرار می دهد . بنابراین کاربر از این به بعد می تواند به مشاهده صفحات
محتوای سایت بپردازد . همچنین پس از پایان عملیات ثبت نام کاربر جدید ، می توانیم وی
را توسط یک دستور header به یک صفحه محتوا هدایت نمایید . به صورت زیر :
|
کد
|
session_start();
$_SESSION['login'] = "1";
header ("Location: page1.php");
|
در مرحله بعدی که مرحله پایانی راهکار است به
جمع بندی و ارائه چندین نکته که بایستی در طراحی کد ثبت نام به آنها دقت نماییم ، خواهیم
پرداخت .
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه :