-
بفرمایید:
[PHP]<?php
session_start();
// حذف بک اسلشهایی که به صورت خودکار توسط Magic Quotes به اطلاعات ارسال شده افزوده شده اند
function UnEscape($string) {
if (get_magic_quotes_gpc()) {
return stripslashes($string);
} else {
return $string;
}
}
$errors = array();
$min_length = 4;
$max_length = 20;
$meta = "";
// اجرای اسکرپت ثبت نام در صورتی که اطلاعات با متد پست به صفحه ارسال شده باشند
if($_SERVER['REQUEST_METHOD'] == "POST") {
$username = UnEscape($_POST['user']);
$password = UnEscape($_POST['pass']);
// وارد کردن اطلاعات کاربر در صورتی که اطلاعات معتبر باشند
if(empty($errors)) {
// اتصال به سرور
mysql_connect('localhost', 'root', '') or die(mysql_error());
// اتصال به دیتابیس
mysql_select_db('testDB') or die(mysql_error());
// اسکیپ کردن داده های وارد شده توسط کاربر
$username = mysql_real_escape_string(htmlentities($username, ENT_QUOTES, 'UTF-8'));
$password = mysql_real_escape_string($password);
// به دست آوردن تعداد سطرهایی که نام کاربری مشابه نام کاربری انتخاب شده کاربر دارند
$query = mysql_query("SELECT password FROM testTable WHERE username = '$username';");
if (mysql_num_rows($query) == 1){
list($storedPassWord) = mysql_fetch_row($query);
}else{
$errors[] = "کاربري با اين نام موجود نيست!";
}
if($storedPassWord == md5($password)) {
// ثبت سشن و ارسال کاربر به صفحه اصلي
$_SESSION['userInfo'] = $username;
$_SESSION['userPInfo'] = $storedPassWord;
mysql_close();
// انتقال به صفحه اصلي
// بايد نام سايت خود را به جاي سايت زير بنويسيد
$meta = '<meta http-equiv="Refresh" content="2; url=http://www.site.com/index.php">';
} else {
// قطع عمليات در صورت متفاوت بودن پسورد وارد شده و پسورد اصلي
$errors[] = "رمز عبور اشتباه است!";
mysql_close();
}
}
}
?>
<!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>
<?php print $meta; ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>صفحه ورود کاربران</title>
<style type="text/css">
body { direction:rtl; }
form, table { width: 300px; margin:0px auto;}
td { text-align:center; }
th { text-align:right; }
</style>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<?php
if(!empty($errors)) {
echo "<ul>";
foreach($errors as $error) {
echo "<li>$error</li> \n";
}
echo "</ul>";
} elseif (@$_SESSION['userInfo']) {
echo "<h3>ورود شما با موفقیت انجام شد.</h3>";
}else{
?>
<table border="0">
<tr>
<th>نام کاربری :</th>
<td><input type="text" name="user" /></td>
</tr>
<tr>
<th>کلمه عبور :</th>
<td><input type="password" name="pass" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="ثبت نام" /></td>
</tr>
</table>
<?php
}
?>
</form>
</body>
</html>[/PHP]
سعی کردم که کپی neopersia باشه!
من ترجیح دادم که 2 تا سشن ثبت بشه که توی یکی اش یوزر نیم و توی یکی اش پسورد باشه
راه های دیگه هم هست ولی این به امنیتش می ارزه
اگر دوستان نظر اصلاحی دارند، بدند
منتظرم
-
نمي دونم ولي فكر كنم به جاي
[PHP]
if (mysql_num_row($query) == 1){
[/PHP]
بايد
[PHP]
if (mysql_num_rows($query) == 1){
[/PHP]
مي شد. نمي دونم بازم شما چك كنيد شايدم من اشتباه كردم
كد شما درسته ولي نمي دونم چرا كار نمي كنه . وقتي submit رو مي زني صفحه سفيد مياد
-
فرمایش کاملاً درست
دیدم نیازه تو همین پاسخ سریع، برنامه رو نوشتم. تستش هم نکردم
شرمنده
ولی نباید سفید بده
-
ببخشيد نمي شه مشكل كد رو حل كنيد؟
-
مگه مشکلش حل نشد؟
الان اشکالش کجاست؟
-
آره منم مشكل دارم .
نمي شه شما يه لطفي كنيد و كد رو تست كنيد. خيال ما رو هم راحت كنيد؟
مشكل از
[PHP]
list($storedPassWord) = mysql_fetch_row();
[/PHP]
نباشه؟
به نظر من مشكل از query مي تونه باشه. سفيد مي ده!
-
شرمنده
قول می دم دفعه بعد حتماً از یه ادیتور استفاده کنم
کد رو درست کردم
-
-
-
ببينيد من كد رو امتحان كردم. وقتي username و password رو وارد مي كنم و submit رو مي زنم صفحه سفيد مي ده بدون error و هيچ كد html
من با اينجاش مشكل دارم.