کد خبر: 202
تاریخ انتشار: ۵ خرداد ۱۳۹۱ - ۱۲:۰۱


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

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

در جلسات قبلی سه سیستم کاربردی ثبت نام، ورود کاربر، تغییر رمز عبور را با هم تمام کردیم و امروز هم می رویم به سراغ خذف اکانت. این سیستم این کاربرد را دارد که مثلا یک نفر ثبت نام می کنه بعدش هم با استفاده از فرم ورود می آید کنترل پنل. حالا منصرف شد و نمی خواهد نامش تو این سایت باشد و به این اکانت نیازی ندارد. روی Delete account کلیک می کند و با اطلاعاتی که وارد می کند حساب کاربری خودش را پاک می کند.
اول از همه می رویم سراغ delacount.php:
این صحفه با پسوند .php ذخیره می شود. ما در قسمت قبلی که تغییر رمز عبور را پیش برده بودیم از دو فایل به نام های changepass.php و changepass2.php استفاده می کردیم و حالا از دو فایل به نام های delacount.php و delacount2.php استفاده می کنیم.
کد کامل صفحه ی delacount.php: (توضیح می دم)

کد PHP:
<?php
Session_start();
If(!isset($_SESSION["user"])) {
Die('you are not login');
}
?>
<html>
<head>
<title> Delete account </title>
</head>
<body>
<form method="POST" action="delacount2.php">
password: <input type="password" size="20" name="password">
<input type="submit" value="Delete">
</form>
</body>
</html>

در این صفحه ابتدا از تابع session_start استفاده کردیم. این تابع باعث می شود که جلسه ها شروع به کار کنند. در یک شرط بررسی می کنم که آیا جلسه ای به نام user ایجاد شده است یا نه و اگر نشده بود پیغام مناسب چاپ می کنیم. در ادامه صفحه ای HTML می بینیم یک فرم وجود دارد که مقادیر آنها به صفحه ی delacount2.php ارسال شود.
کد کامل صفحه ی delacount2.php: (توضیح می دم)

کد PHP:
<?php
Session_start();
If(!isset($_SESSION[“user”])) {
Die(‘You are not login.’);
}
If(!isset($_POST[“password”])) {
Die(‘The form not submitted.’);
}
If(empty($_POST[“password”])) {
Die(‘The password field is empty.’);
}
$password = $_POST[“password”];
$username = $_SESSION[“username”];
Include(‘config.php’);
Connect();
$sql = “SELECT `password` FROM `users` WHERE `username` = ‘$username’;”;
$result = mysql_query($sql, $connect) or die(mysql_error());
$numresult = mysql_num_rows($result);
If ($numresult == ۱) {
$password2 = mysql_result($result, ۰);
//check password
If ($password2 == $password) {
$sql = “DELETE FROM `users` WHERE `username` = ‘$username` and `password` = ‘$password’;”;
Mysql_query($sql, $connect);
Session_destory();
Header(“location: index.php”);
}
}
؟>
<h1> Error! </h1>
You are not deleted because the password is wrong!

و حالا هم توضیح صفحه ی delacount2.php:
ابتدا با استفاده از تابع session_start(); شروع جلسه را می کنیم. سپس بررسی می کنیم که آیا کاربر لاگین کرده یا نه با بررسی جلسه این کار را می کنیم. سپس در یک شرط دیگر با تابع isset ارسال مقادیر فرم را ببرسی می کنیم. سپس بازهم در شرط دیگری با تابع empty فیلد password را در فرم بررسی می کنیم که خالی باشد یا نباشد. سپس یک فیلد را در متغیر $password میریزیم. سپس یک متغیر جدید به نام $username درست می کنیم و در آن جلسه ی که در صفحه ی login.php آن را username نام گذاری کردیم، می ریزیم. سپس صفحه ی config.php را به صفحه ی خودمان می ریزیم. سپس تابع connect(); که در صفحه ی config.php نوشته بودیم استفاده می کنیم و به بانک اطلاعاتی متصل می شویم. سپس یک متغیر sql تعریف می کنیم که در آن یک دستور کوئری قرار می دهیم. این دستور برای ببرسی صحیح بودن پسورد وارد شده می باشد. این دستور را با mysql_query اجرا می کنیم و در متغیری دیگر به نام $result می ریزیم و بازهم متغیر دیگری تعریف می کنیم که نام آن $numresult می باشد در اینجا از تایع mysql_num_rows که در قسمت های قبلی هم از آن استفاده کردیم، کار می بریم و مقدار بدست آمده در متغیر $result در این متغیر ذخیره می شود. یک شرط جدید باز می کنیم که متغیر $numresult را می خواهد برابر ۱ قرار دهد. اگر چنین بود در داخل شرط متغیری ایجاد می کنیم به نام $password2 که شرط بعد از آن این متغیر را با $password مقایسه می کند و اگر این متغیر ها برابر بودند پسورد وارد شده درست می باشد. پس یک داخل این شرط هم یک دستور کوئری دیگر که بازهم در متغیر $sql قرار خواهیم داد با دستور DELETE درست خواهیم کرد. این دستور را با mysql_query اجرا می کنیم و سپس با تابع session_destory(); تمام جلسه ها را از بین می بریم تا لاگین کاربر هم از بین برود. سپس با دستور header و location صفحه را index.php که ان شا الله بعدا خواهیم نوشت، هدایت خواهیم کرد. با بستن علامت php به کد های HTML باز می گردیم و با یک پیغام خطا و سرتیتر اعلام می کنیم که حساب کاربری به دلیل صحیح نبودن رمز عبور پاک نشد و خطا پیدا کرد. و آموزش امروز هم تمام شد …

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



نظرات بينندگان
انتشار يافته: بدون دیدگاه