PDA

View Full Version : کار نکردن یک تکه کد



amin7x
چهارشنبه 11 اردیبهشت 1392, 14: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, 14:30 عصر
خط 16 رو اینجوری تغییر بده:

if($Query> 0){

amin7x
چهارشنبه 11 اردیبهشت 1392, 18:11 عصر
بازم همون مشکل

MostafaEs3
چهارشنبه 11 اردیبهشت 1392, 18: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, 18: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, 18: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, 18: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, 18:44 عصر
ممنون ولی مشکل از این بود:


hash('sha256','$Password');

باید این باشه:


hash('sha256',"$Password");
بقیه کد درسته.