سفارش تبلیغ
صبا ویژن
 
آموشهای تخصصی کامپیوتر و طراحی سایت
درباره وبلاگ


لینک های ویژه
طول ناحیه در قالب بزرگتر از حد مجاز
آمار وبلاگ
  • بازدید امروز: 2
  • بازدید دیروز: 3
  • کل بازدیدها: 411222



پنج شنبه 92 فروردین 29 :: 10:31 صبح ::  نویسنده : smfatemi

آموزش ساخت پنل ورود و خروج سایت با php و mysql

می خواهیم کار خود را با فرم ورود و خروج تکمیل کنیم تا کاربرانی که پیش تر در سایتمان ثبت نام کرده اند، بتوانند به سایت وارد شده و از پنل کاربری شخصی خود استفاده کنند، در این آموزش خواهیم دید که مبحث مربوط به نشست ها (سشن یا session)، برای ایجاد یک فرم ورود و خروج تا چه میزان اهمیت دارد و با نحوه تنظیمات سفارشی مربوط به آن، بیشتر آشنا خواهیم شد.
سشن (session) یا نشست چه کاربردی دارد؟

قبل از اینکه به کدنویسی کار پردازیم، لازم است نگاهی اجمالی داشته باشیم به اینکه چرا باید در فرم ورود و خروج از سشن (session) یا نشست استفاده کنیم، برای درک صحیح مطلب اجازه دهید با یک مثال موضوع را مطرح کنیم، فرض کنید می خواهید وارد یک نمایشگاه بزرگ کتاب با غرفه های متعدد شوید (شما به عنوان کاربر و نمایشگاه کتاب به فرض به عنوان یک سایت)، در قسمت ورودی نمایشگاه برگه ای با یک کد اختصاصی و تاریخ انقضاء به شما تعلق می گیرد که برای ورود به غرفه های گوناگون باید آن را ارائه کنید (کد را به فرض همان سشن فرض کنید و غرفه ها را صفحات یک سایت)، ممکن است شما بعد از خروج از نمایشگاه دیگر نتوانید با آن برگه وارد شوید (برگه منقضی شود) و یا بعد از گذشت چند ساعت، این اتفاق رخ دهد و مجبور به گرفتن یک برگه جدید شوید، حال اگر این برگه که روی آن مشخصات اختصاصی شما در مراجعه فعلی به نمایشگاه درج شده است، به هر دلیل دریافت نشود یا از بین برود، غرفه ها نمی توانند هویت شما را به درستی شناسایی کنند و لذا ممکن است اجازه استفاده از خدمات خود را ندهند، مشابه همین اتفاق به نوعی در یک سایت در مورد بحث سشن (session) یا نشست  می افتد، با سشن سرور کدهای اختصاصی برای هر کاربر و در مرورگر او ایجاد می کند (که به آن کوکی می گویند) تا در هر بار درخواست یک صفحه، مرورگر کد سشن را ارسال کرده و سرور بررسی کند که آیا کاربر مورد نظر دارای اعتبار لازم برای استفاده از آن صفحه می باشد یا خیر، این اعتبار نیز در صورتی به کاربر تعلق می گیرد که او نام کاربری و کلمه عبور را به طور صحیح وارد کرده باشد و متغیرهای سشن مربوط به آن نام کاربری و کلمه عبور در سمت سرور از قبل تنظیم شده و دارای اعتبار باشند (به فرض نشست منقضی نشده باشد یا کاربر از سیستم خارج نشده باشد).
ساخت دیتابیس، ردیف ها و اطلاعات اعضاء

همانطور که گفتیم، آموزش فعلی، در ادامه مطلب گذشته بیان می شود، به این دلیل، نیاز به دیتابیس و اطلاعاتی از پیش ثبت شده داریم، بدین منظور می توانید مطلب زیر را مطالعه کنید:
آموزش ساخت فرم عضویت در سایت با php و mysql 
فرم html جهت ورود و خروج

همانطور که در آموزش مربوط به ساخت فرم عضویت در سایت با php و mysql ملاحظه کردید، در اینجا نیز به یک فرم html ساده جهت دریافت نام کاربری و کلمه عبور اعضاء، نیازمندیم، البته اگر چه این فرم به زبان html است، اما بهتر است پسوند فایل خود را به php ذخیره کنید، چرا که به دلیل کار با سشن و دریافت پاره ای اطلاعات از کاربر و به فرض نمایش پیام، در حالت ورود و خروج به سایت، به آن نیاز خواهیم داشت؛ لذا ابتدا فرم زیر را در یک فایل php ایجاد کنید.

------------------------------------------------------------

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | پنل ورود و خروج در سایت با php و mysql</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
direction:rtl;
font-size:12px;
}
</style>
</head>
<body>
<form action="login.php" method="post">
<label for="user">نام کاربری:</label><br />
<input name="username" id="user" type="text" maxlength="255" /><br /><br />
<label for="pass">کلمه عبور:</label><br />
<input name="password" id="pass" type="password" maxlength="255" /><br /><br />
<input type="hidden" name="check" value="sended" />
<input type="submit" value="ورود" />
</form>
</body>
</html>

----------------------------------------------------------------

توضیح:
- دوفیلد اصلی در فرم ما با نام های  username و password مشخص شده اند، فیلد مربوط به پسورد از نوع password است تا کلمه عبور کاربر به شکل حفاظت شده ای وارد شود.
- اطلاعات این فرم به فایل فرضی login.php با متد post ارسال می شود.
- فیلد مخفی با نام فرضی check، جهت اطمینان از ارسال فرم توسط کاربر و اختیاری است.
فایل login.php جهت بررسی ورود و خروج کاربر

پس از اینکه کاربر اطلاعات خود را ارسال می کند، داده ها و از جمله نام کاربری و کلمه عبور او باید با آنچه که در دیتابیس سرور وجود دارد تطبیق داده شود، از اینرو به برنامه ای به یک زبان سمت سرور نیاز خواهیم داشت که در اینجا php این کار را برایمان انجام خواهد داد، کد زیر یک نمونه را نشان می دهد.



------------------------------------------------------------------

<?php
//شروع یک نشست
session_start();
//بررسی تنظیم شدن یا نشدن متغیرهای سشن
if (!isset($_SESSION["username"]) || !isset($_SESSION["password"])){
//در صورتی که متغیرهای سشن تنظیم نشده باشند، کاربر مجاز به دیدن ادامه صفحه نیست و او را به صفحه اصلی منتقل می کنیم
header("location:index.php");    
}
?>

----------------------------------------------------------------
دکمه خروج از سایت

برای ساخت یک دکمه خروج، هنگامی که کاربر وارد سایت می شود،
 ابتدا یک فایل با نام فرضی logout.php بسازید و سپس با یک فرم ساده html آن را فراخوانی کنید،
مثال زیر گویا است.
محتویات فایل logout.php:
-----------------------------------------------------------------

<?php
//شروع یک نشست
session_start();
//منقضی کردن متغیر های نشست
unset($_SESSION["username"]);
unset($_SESSION["password"]);
//پایان نشست
session_destroy();
//انتقال به صفحه اصلی یا صفحه مورد نظر
header("location:index.php");
?>

---------------------------------------------------------------

توضیح:
- همانطور که ملاحظه می کنید، در اینجا از unset برای منقضی کردن متغیرهای سشن استفاده کرده ایم.
- با تابع session_destroy یک نشست را به پایان می بریم و برای ورود مجدد کاربر، نیاز به ارسال نام کاربری و کلمه عبور است.
محتویات فرم و دکمه ساده html جهت خروج:
---------------------------------------------------------------
<form action="logout.php" method="post">
<input type="submit" value="خروج" />
</form>
---------------------------------------------------------------
توضیح:
- این فرم صرفا فایل logout.php را فراخوانی می کند و با فراخوانی آن فایل، سشن به طور کامل منقضی می شود.
- با کمی آشنایی با این روش، می توانید ایده های جالبی تعریف کنید، مثلا
پیام های خوش آمد گویی و خروج به کاربر نشان دهید، یا از نام او که در
متغیر سشن username وجود دارد، به فرض برای نمایش نام کاربری استفاده کنید.

مبحث  مربوط به سشن ها ممکن است در نگاه اول کمی پیچیده به نظر برسد،
به همین جهت در این مطلب به همین حد اکتفا می کنیم و در آموزش های بعدی،
خواهیم دید که چگونه می توان امکانات جانبی بیشتری به فرم ورود و خروج کاربر به سایت،
 افزود.




موضوع مطلب :