View Full Version : کار نکردن یک تکه کد
amin7x
چهارشنبه 11 اردیبهشت 1392, 15:06 عصر
سلام
من توی این کد یوزر و پس رو هم درست مزنم بازم متغیر Error نشون داده میشه.
به نظر شما مشکلش چیه؟
<?php
require_once('includes/Database.php');
if(isset($_POST['Login'])){
$Username = mysql_real_escape_string(htmlspecialchars($_POST['Username']));
$Password = mysql_real_escape_string(htmlspecialchars($_POST['Password']));
if(!empty($Username) && !empty($Password)){
$Username = strtolower($Username);
$Password = hash('sha256','$Password');
$Query = mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `username`='{$Username}' AND `password`='{$Password}'",$ConnectionVar));
if($Query == 1){
$Accept = 'You Are Login';
}
else{
$Error = 'Username and & Password is not valid';
}
}
else {
$Problem = 'Please inter Username & Password';
}
}
?>
MRmoon
چهارشنبه 11 اردیبهشت 1392, 15:30 عصر
خط 16 رو اینجوری تغییر بده:
if($Query> 0){
amin7x
چهارشنبه 11 اردیبهشت 1392, 19:11 عصر
بازم همون مشکل
MostafaEs3
چهارشنبه 11 اردیبهشت 1392, 19:26 عصر
یکسری ایرادات جزئی توی کد هست ... این نسخه اصلاح شده رو امتحان کنید ::
require_once('includes/Database.php');
if (isset($_POST['Login'])) {
$userName = isset($_POST['Username']) ? mysql_real_escape_string(htmlspecialchars($_POST['Username'])) : "";
$usedPassword = isset($_POST['Password']) ? mysql_real_escape_string(htmlspecialchars($_POST['Password'])) : "";
if ($userName && $usedPassword) {
$data = array();
$data['userName'] = strtolower($userName);
$data['usedPassword'] = hash('sha256', $usedPassword);
$Query = mysql_query("SELECT * FROM `users` WHERE `username` = '{$data['userName']}' AND `password` = '{$data['usedPassword']}'", $ConnectionVar);
if ($Query) {
if (mysql_num_rows($Query) == 1) {
$Accept = 'You Are Login';
} else {
$Error = 'Username and & Password is not valid';
}
} else {
$Error = 'Query Error';
}
} else {
$Problem = 'Please inter Username & Password';
}
}
MRmoon
چهارشنبه 11 اردیبهشت 1392, 19:29 عصر
قسمتی که بعد از اینکه چک میکنی متغیر ها خالی نباشن رو به اینجوری تغییر بده:
$Username = strtolower($Username);
$Password = hash('sha256','$Password');
$Query = mysql_query("SELECT count(*) count FROM `users` WHERE `username`='{$Username}' AND `password`='{$Password}'")or die(mysql_error());
$row = mysql_fetch_assoc($Query);
if($row['count'] >0){
$Accept = 'You Are Login';
}
else{
$Error = 'Username and & Password is not valid';
}
MRmoon
چهارشنبه 11 اردیبهشت 1392, 19:35 عصر
یکسری ایرادات جزئی توی کد هست ... این نسخه اصلاح شده رو امتحان کنید ::
آققا مصطفی اینجای کدت رو اشتباه نوشتی:
$Query = mysql_query("SELECT * FROM `users` WHERE `username` = '{$Username}' AND `password` = '{$Password}'", $ConnectionVar);
باید اینجوری کنی:
$Query = mysql_query("SELECT * FROM `users` WHERE `username` = '{$data['userName']}' AND `password` = '{$data['usedPassword']}'", $ConnectionVar);
MostafaEs3
چهارشنبه 11 اردیبهشت 1392, 19:43 عصر
آقا مصطفی اینجای کدت رو اشتباه نوشتی:
$Query = mysql_query("SELECT * FROM `users` WHERE `username` = '{$Username}' AND `password` = '{$Password}'", $ConnectionVar);
باید اینجوری کنی:
$Query = mysql_query("SELECT * FROM `users` WHERE `username` = '{$data['userName']}' AND `password` = '{$data['usedPassword']}'", $ConnectionVar);
احسنت ... کاملا درسته!! اصلاحش کردم ...
ممنون :قلب:
amin7x
چهارشنبه 11 اردیبهشت 1392, 19:44 عصر
ممنون ولی مشکل از این بود:
hash('sha256','$Password');
باید این باشه:
hash('sha256',"$Password");
بقیه کد درسته.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.