قبل از اینکه مطالب آموزشی این مقاله را آغاز کنیم باید این نکته را مد نظر داشته باشید که در وب سرور آپاچی که از آن استفاده میکنید بایستی امکان پیکربندی تنظمیات session وجود داشته باشد. در برخی از نسخه های آپاچی تحت ویندوز باید این تنظیمات را به صورت دستی انجام داد.
برای شروع یک پوشه به نام session ایجاد میکنیم. سپس دو فایلی که در زیر توضیح خواهیم داد را در آن قرار میدهیم.
ابتدا فایلی به نام config.php ایجاد کرده و کد زیر را در آن قرار میدهیم. دقت کنید که در کد زیر دو متغیر سراسری تعریف کرده ایم که نام کاربری و کلمه عبور را مشخص میکنند. در اینجا نام کاربری admin و کلمه عبور test میباشد.
config.php
<?
# Admin Panel User Name
$uname = "admin";
# Admin Panel Password
$pword = "test";
?>
سپس فایل دیگری به نام index.php ایجاد کرده کد زیر را درون آن قرار میدهیم:
ابتدا متغیرهای درون فایل config.php را بارگذاری میکنیم و session را آغاز میکنیم
require ("config.php");
session_start();
هدف ما قرار دادن دومتغیر به نامهای $username و $password در session است. به گونه ای که اگر این دو متغیر برابر با مقادیر متغیرهای مشابه در فایل config.php باشد کاربر متعتبر و مجاز به مشاهده وب سایت است وگرنه بایستی توسط یک فرم اطلاعات را وارد کرده تا بتواند وارد سایت شود.
اکنون در صورتی که مقادیر متغیرهای نام کاربری و یا کلمه عبور تهی باشد به این معناست که این متغیرها در session ثبت نشده اند و به عبارتی این اولین باری است که کاربر در حال مشاهده سایت است. بنابراین یک فرم به کاربر نشان میدهیم و در آن از کاربر میخواهیم که نام کاربری و کلمه عبور را وارد کند:
if ((!$username) || (!$password)) {
echo '<form name=login method=post action="">
user:<input type=text name=username><br>
pass:<input type=text name=password><br>
<input type=submit value=go>
</form>';
اما در غیر این صورت بررسی میکنیم که آیا مقادیر متغیرهای نام کاربری و کلمه عبور برابر با مقادیر مربوطه در فایل config.php است یا خیر. در صورتی که چنین باشد صفحه اصلی به کاربر نشان داده خواهد شد و لینکی را به کاربر نشان میدهیم که با کلیک کردن روی آن محتویات متغیرهای موجود در session حذف گردد.
if ($username=="$uname") {
session_register("username");
session_register("password");
echo "user is $uname, and password is $pword
<br> <a href=\"?m=1\" >unreg</a>";
این لینک <a href=\"?m=1\" >unreg</a> در حقیقت لینکی است به همین صفحه فعلی. چنانچه کاربر روی این لینک کلیک کند این بخش از کد اجرا میشود
if ($m==1) {
session_unregister("username");
session_unregister("password");
}
که باعث حذف متغیرها از session میگردد.
index.php
<?
require ("config.php");
session_start();
if ((!$username) || (!$password)) {
echo '<form name=login method=post action="">
user:<input type=text name=username><br>
pass:<input type=text name=password><br>
<input type=submit value=go>
</form>';
}
else {
if ($username=="$uname") {
session_register("username");
session_register("password");
echo "user is $uname, and password is $pword
<br> <a href=\"?m=1\" >unreg</a>";
}
else echo "nope";
}
if ($m==1) {
session_unregister("username");
session_unregister("password");
}
?>