2014-12-14 2 views
-3
$sorgu=mysql_query("SELECT * FROM users WHERE UserName='$userName' AND Password='$password'"); 
if(mysql_affected_rows()) 
{ 
    **$row=mysql_fetch_array($sorgu);**   /// this line is erorr 
    if(in_array($row["UserID"],$_SESSION["id_array"])) 
    { 
     echo "session is already open"; 
    } 


    else 
    { 

     $array=array(
      "id" => $row["UserID"], 
      "userName" => $row["UserName"], 
      "email" => $row["Email"], 
      "admin" => $row["admin"], 
     ); 


     $_SESSION["login"]=true; 

     $_SESSION["array"][$row["UserID"]] = $array; 

     $_SESSION["id_array"][]=$row["UserID"]; 

     $_SESSION["userid"] = $row["UserID"]; 

     header("Location: index.php"); 
+0

это означает, что $ sorgu - это не то, что вы думаете, что может быть причиной, база данных не подключена/ – Yazan

+0

Добавьте код, который устанавливает значение «$ sorgu ", похоже, что это не действительный ресурс mysql. –

+0

Ваш код уязвим для [** SQL injection **] (https://en.wikipedia.org/wiki/SQL_injection) att acks, и вы используете ** устаревшее ** 'mysql' расширение. Пожалуйста, изучите [** PDO **] (https://secure.php.net/manual/en/book.pdo.php) или [** mysqli **] (https://secure.php.net /manual/en/book.mysqli.php) и ** использовать параметризованные запросы **! Кроме того, похоже, что вы храните пароли в открытом виде --- [вы должны ** хэш ** и ** соль ** свои пароли перед их сохранением] (https://secure.php.net/manual/en/faq .passwords.php). – Bytewave

ответ

-1

Использование "mysql_num_rows ($ Соргу)> 0" вместо mysql_affected_rows() в строке 2

mysql_affected_rows() предназначен для проверки UPDATE и INSERT, а не SELECT.

+0

жаль, что я изменился, но проблема продолжается –

Смежные вопросы

 Смежные вопросы