ورود کاربر :: سیستم مدیریت محتوا قسمت 2

به نام خداوند بخشنده ی مهربان.

سطح مقاله: متوسط-پیشرفته
پیش نیاز: آشنایی با PHP و دستورات SQL SERVER

هر چه زودتر آموزش بعدی را هم نوشتم. دفعه ی پیش آموزش ثبت نام را نوشته بودم که ان شا الله شما از آن استفاده کرده باشید. در صورت هر اشکال در کد های من خبرم کنید. امروز آموزش ساخت ورود کاربر به کنترل پنل کاربری اش را می نویسیم که یکم پیچیده تره اما زودتر تموم می شه.
اول از همه: صفحه ی login.html: فرم ورود کاربر
این صفحه را با پسوند html یا htm ذخیره کنید که صفحه ی ساده ای حاوی فرم می باشد.
کد صفحه ی login.html را با یک فرم در زیر قرار دادم:

کد:
<html>
<head>
<title> Login to website </title>
</head>
<body>
<form method="POST" action="login.php">
username: <input type="text" size="20" name="username">
password: <input type="password" size="20" name="password">
<input type="submit" value="login">
</form>
</body>
</html>

خب در صفحه ی بالا گفتیم که تمامی مقادیر ارسال شده به صفحه ی login.php برود.
خب صفحه ی config.php را در قسمت 1 نوشته بودیم.
حالا می رویم سراغ صفحه ی login.php. کد کامل صفحه login.php:

کد PHP:
<?php
session_start();
if(!isset($_POST["username"])) {
die('the form not submited');
}
$username = $_POST["username"];
$password = $_POST["password"];
include('config.php');
connect();
$sql = "SELECT `password` FROM `users` WHERE `username` = '$username';";
$result = mysql_query($sql, $connect);
$numresult = mysql_num_rows($result);
if ($numresult = 1) {
check password
$password2 = mysql_result($result, 0);
if($password == $password2) {
$_SEESION["username" = '$username';
$_SESSION["user"] = true;
header("location: users.php");
exit();
}
}
?>
<h1> Wrong! </h1>
the username or password is wrong.

و حالا توضیح صفحه ی login.php:
در ابتدا با تابع isset که در قسمت قبل هم با آن آشنا شده بودیم دریافت می کنیم که آیا فرم ارسال شده است یا نه یا یکی الکی اومده نوشته login.php.
در مرحله ی بعد مقادیر ارسال شده ی username و password که در آرایه ی خودکار و پیشفرض $_POST قرار گرفته است بدست می آوریم و در متغیر های مختلف می ریزیم تا از آنها استفاده کنیم.
سپس با استفاده از تابع include محتویات فایل config.php را به صفحه ی خودمان می بریم تا از آن استفاده کنیم و به بانک اطلاعاتی اتصال پیدا کنیم.
سپس تابع connect(); که در صفحه ی config.php نوشته بودیم را استفاده می کنیم و به بانک اطلاعاتی mysql متصل می شویم.
سپس دستور sql یا کوئری را در متغیر $sql می نویسیم که با دستور SELECT می باشد که برای بدست آوردن محتویات بانک اطلاعاتی استفاده می شود. توجه داشته باشید که نام جدول ما users بوده و در آموزش قبلی هم همینطور. توجه داشته باشید که در phpmysadmin دیتابیس، جداول و فیلد ها را به صورتی که ما نوشیم، بنویسید برای اطلاعات بیشتر برای phpmyadmin می توانید به قسمت 1 ساخت سیستم مدیریت محتوا که توسط رضا شاهرخیانrezash نوشته شده مراجعه کنید. با تابع mysql_query که دو پارامتر دستور دارد که $sql می باشد و پارامتر اتصال که لینک $connect می باشد. این دستور را یعنی mysql_query را در متغیر $result می ریزیم و سپس یک متغیر جدید به نام $numresult ایجاد می کنیم که در آن با استفاه از تابع جدید mysql_num_rows تعداد نتایج بدست آمده را بدست می آوریم و در متغیر $numresult می ریزیم. سپس با استفاده از یک دستور شرطی بررسی می کنیم که متغیر $numresult مساوی با 1 باشید به این دلیل که هیچ وقت username و password که کسی نمی تواند دو بار تکرار شود. سپس در این شرط یک شرط جدید ایجاد می کنیم که که در اینجا رمز عبور (پسورد) را چک می کند. در قبل یک متغیر به نام $password2 ساخته ایم که با استفاده از تابع mysql_result نتایج را از $result بدست می آورم. و اگر مطابق پسورد وارد شده بود که در متغیر $password قرار دارد با استفاده از دستور $_SESSION یک جلسه به نام user ایجاد می کنیم که و آن را برابر true می کنیم تا بتوانیم در صفحات از آن استفاده کنیم. يك جلسه ي ديگر هم با نام username كه مقدار آن متغير $username مي باشد درست مي كنيم كه ان شا الله در قسمت هاي بعد توضيح مي دهم چرا؟ . سپس با استفاده از دستور header صفحه را به users.php هدایت می کنیم و با exit(); اجرای کد را به پایان می رسانیم. در ادامه کد php را خاتمه می دهیم و با استفاده از HTML پیام خطا در ورود به دلیل نادرست بودن نام کاربری و رمز عبور چاپ می کنیم.

خیلی ساده نوشتم و شما هم مجبور نیستید تمام آن را یاد بگیرید فقط به ساختار آن شوید و مقله در سطح متوسط می باشد و باید کمی PHP و SQL بلد باشید می توانید به تایپیک های این انجمن و سایت Rightclick.ir مراجعه نمایید.

hadimir
محمد هادی معصومی

نظرات کاربران :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.