حذف اکانت :: سیستم مدیریت محتوا قسمت 4


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

سطح مقاله: متوسط-پيشرفته
پيش نياز: آشنايي با 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 == 1) {
$password2 = mysql_result($result, 0);
//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 را می خواهد برابر 1 قرار دهد. اگر چنین بود در داخل شرط متغیری ایجاد می کنیم به نام $password2 که شرط بعد از آن این متغیر را با $password مقایسه می کند و اگر این متغیر ها برابر بودند پسورد وارد شده درست می باشد. پس یک داخل این شرط هم یک دستور کوئری دیگر که بازهم در متغیر $sql قرار خواهیم داد با دستور DELETE درست خواهیم کرد. این دستور را با mysql_query اجرا می کنیم و سپس با تابع session_destory(); تمام جلسه ها را از بین می بریم تا لاگین کاربر هم از بین برود. سپس با دستور header و location صفحه را index.php که ان شا الله بعدا خواهیم نوشت، هدایت خواهیم کرد. با بستن علامت php به کد های HTML باز می گردیم و با یک پیغام خطا و سرتیتر اعلام می کنیم که حساب کاربری به دلیل صحیح نبودن رمز عبور پاک نشد و خطا پیدا کرد. و آموزش امروز هم تمام شد …

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

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

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

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

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