Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нужна помощь!
Форумы портала PHP.SU » » Вопросы новичков » Нужна помощь!

Страниц (1): [1]
 

1. REXX - 13 Июля, 2015 - 03:13:18 - перейти к сообщению
Вот такая проблема с авторизацией на моём сайте:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\phptest.rexx\www\authorization.php on line 8



Код сайта:
<?php
$connetc = mysql_connect('localhost', 'root') or die(mysql_error());
mysql_select_db('siterexx');
if(isset($_POST['enter'])){
$e_login = $_POST['e_login'];
$e_password = md5($_POST['e_password']);
$query = mysql_query("SELECT * FROM users WHERE login='$e_login");
$user_data = mysql_fetch_array($query);
if($user_data['password']==$e_password){
echo "Вы вошли в систему!";
}
else{
echo "Пароль неверен!";
}


}
?>

Заранее спасибо!
2. DeepVarvar - 13 Июля, 2015 - 08:07:23 - перейти к сообщению
В самое начало, первой строкой, во всех главных скриптах которые инклюдят остальное, вписать:
PHP:
скопировать код в буфер обмена
  1. ini_set('display_errors', 'On');
  2. ini_set('html_errors', 'On');
3. Tyoma5891 - 13 Июля, 2015 - 10:00:42 - перейти к сообщению
REXX пишет:
Вот такая проблема с авторизацией на моём сайте:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\phptest.rexx\www\authorization.php on line 8

у Вас ошибка в запросе к таблице users в бд, а причин может быть очень много, начните с того что написал DeepVarvar, потом это
4. DelphinPRO - 13 Июля, 2015 - 14:29:40 - перейти к сообщению
REXX, думаете вы первый, кто столкнулся с данной ошибкой? Конечно нет! Воспользуйтесь чужим опытом:

https://www[dot]google[dot]ru/search?cli[dot][dot][dot]F-8&oe=UTF-8
5. likesoft - 13 Июля, 2015 - 15:48:08 - перейти к сообщению
Вот так надо
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. mysql_connect('localhost', 'root', '') or die(mysql_error());
  4. mysql_select_db('siterexx');
  5. if(isset($_POST['enter'])){
  6. $e_login = mysql_real_escape_string($_POST['e_login']);
  7. $e_password = md5($_POST['e_password']);
  8. $query = mysql_query("SELECT * FROM users WHERE login='$e_login");
  9. $user_data = mysql_fetch_array($query);
  10. if($user_data['password']==$e_password){
  11. echo "Вы вошли в систему!";
  12. }
  13. else{
  14. echo "Пароль неверен!";
  15. }
  16.  
  17.  
  18. }
  19. ?>
  20.  
6. DelphinPRO - 13 Июля, 2015 - 15:50:03 - перейти к сообщению
likesoftот указанной ошибки ваш код не избавляет.
7. likesoft - 13 Июля, 2015 - 15:54:27 - перейти к сообщению
DelphinPRO пишет:
likesoftот указанной ошибки ваш код не избавляет.


Вы уже проверили?
8. DelphinPRO - 13 Июля, 2015 - 15:57:00 - перейти к сообщению
Вы мне не верите? Улыбка
(Добавление)
а, ну после исправления уже лучше Улыбка
но вероятность возникновения ошибки сохраняется
9. likesoft - 13 Июля, 2015 - 16:02:34 - перейти к сообщению
DelphinPRO пишет:
Вы мне не верите? Улыбка
(Добавление)
а, ну после исправления уже лучше Улыбка
но вероятность возникновения ошибки сохраняется


Вероятность возникновения ошибки будет всегда Подмигивание
10. DelphinPRO - 13 Июля, 2015 - 17:11:47 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT * FROM users WHERE login='$e_login");
  2. if ($query === false) {
  3.  // обрабатываем ошибку выполнения запроса.
  4. } else {
  5. $user_data = mysql_fetch_array($query);
11. Незнайка_на_Луне - 13 Июля, 2015 - 18:04:20 - перейти к сообщению
REXX пишет:
Вот такая проблема с авторизацией на моём сайте:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\phptest.rexx\www\authorization.php on line 8



Код сайта:
<?php
$connetc = mysql_connect('localhost', 'root') or die(mysql_error());
mysql_select_db('siterexx');
if(isset($_POST['enter'])){
$e_login = $_POST['e_login'];
$e_password = md5($_POST['e_password']);
$query = mysql_query("SELECT * FROM users WHERE login='$e_login");
$user_data = mysql_fetch_array($query);
if($user_data['password']==$e_password){
echo "Вы вошли в систему!";
}
else{
echo "Пароль неверен!";
}


}
?>

Заранее спасибо!


Можно собачку поставить (@mysql_fetch_array($query);) - чтобы ошибка не выводилась, но это как все ошибки отключить. Сейчас работаю не с mysql, и там я могу проверить массив на пустоту (!empty) прежде чем его вытаскивать. Работу с mysql чет подзабыл. В Вашем случае, можно поставить собачку, а затем перед if($user_data['password']==$e_password) поставить условие if($user_data). Только, блин еще один аналогичный else придется для этого условия ставить. Или флаг какой-то вводить, чтобы один else был. В общем, я новичок, мог что-то и напутать, попробуйте...

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $connetc = mysql_connect('localhost', 'root') or die(mysql_error());
  4. mysql_select_db('siterexx');
  5. if(isset($_POST['enter'])){
  6. $e_login = $_POST['e_login'];
  7. $e_password = md5($_POST['e_password']);
  8. $query = mysql_query("SELECT * FROM users WHERE login='$e_login");
  9. $user_data = @mysql_fetch_array($query);
  10. if ($user_data){
  11. if($user_data['password']==$e_password){
  12. echo "Вы вошли в систему!";    
  13. }
  14. else{
  15. echo "Пароль неверен!";
  16. }
  17. }
  18. else{
  19. echo "Пароль неверен!";
  20. }
  21.  
  22.  
  23. }
  24. ?>
  25.  
12. esterio - 13 Июля, 2015 - 18:50:24 - перейти к сообщению
Незнайка_на_Луне
Очен плохая подсказка
13. Незнайка_на_Луне - 13 Июля, 2015 - 19:08:21 - перейти к сообщению
esterio пишет:
Незнайка_на_Луне
Очен плохая подсказка


Возможно, но немного контекста бы не помешало: я так понимаю, нужно проверить $query (дал ли запрос результаты). Иначе mysql_fetch_array выдаст ошибку. Что можно сделать, кроме того, что я предложил? try - catch?
14. DelphinPRO - 13 Июля, 2015 - 19:12:44 - перейти к сообщению
Незнайка_на_Луне пишет:
я так понимаю, нужно проверить $query (дал ли запрос результаты)
Незнайка_на_Луне пишет:
Что можно сделать, кроме того, что я предложил?

ну например взять и проверить Улыбка
я же там выше показал как.
15. Незнайка_на_Луне - 13 Июля, 2015 - 19:15:58 - перейти к сообщению
DelphinPRO пишет:
Незнайка_на_Луне пишет:
я так понимаю, нужно проверить $query (дал ли запрос результаты)
Незнайка_на_Луне пишет:
Что можно сделать, кроме того, что я предложил?

ну например взять и проверить Улыбка
я же там выше показал как.


Да, это я уже осознал)) Хех, тупанул, действительно. Извиняюсь.

 

Powered by ExBB FM 1.0 RC1