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. Harouth - 24 Декабря, 2011 - 19:11:32 - перейти к сообщению
Добрый вечер уважаемые форумчане. Подскажите пожалуйста где моя ошибка?
PHP:
скопировать код в буфер обмена
  1. $user_name = $_POST['user_name'];
  2. $conn = mysql_connect($dbhost,$dbuser,$dbpassword);
  3. mysql_select_db($ls, $conn);
  4. $query = mysql_query("SELECT `name` FROM `account_data`");
  5. $result = mysql_fetch_array($query);
  6. if (in_array($user_name, $result)){
  7. echo "no";
  8. }
  9. else
  10. {
  11. echo "yes";
  12. }

in_array дает результат только тогда, когда $user_name и первое значение в массиве совпадают.
А когда вручную создаю массив (допустим $result = array("n1","n2","n3","n4")), то все работает правильно.
2. Самогонщик - 24 Декабря, 2011 - 19:21:28 - перейти к сообщению
Потому что mysql_fetch_array возвращает одну строчку.

Вообще не нужно делать работу бд за неё. Используй where и фильтруй по пользователю. Главное не забудь проверки от sql injection.
3. Harouth - 24 Декабря, 2011 - 19:31:53 - перейти к сообщению
Спасибо большое.
Ну возникает 2-й вопрос. Если допустим в index.php уже есть проверка от sql injection, работает ли со скриптами включенными с помощью include?
4. Slesher - 24 Декабря, 2011 - 20:10:48 - перейти к сообщению
Harouth в зависимости какя у вас проверка, и все от конкретного случая.
Если защита идет на уровне проверки гет/пост/реквест переменных или уже при выполнении запроса, то возможно и нет
5. Harouth - 24 Декабря, 2011 - 20:19:56 - перейти к сообщению
понял, спасибо

 

Powered by ExBB FM 1.0 RC1