Страница 1 из 1

БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-07 11:17:26
bobot

Код: Выделить всё

$sql = "select username from newmailbox where username='".$_POST['name']."'";
$result = mysql_query($sql, $connect);
if ($result)                  --------мне кажется тут ошибка !! но вроде правиьно  я и так делал $result !== false   и всёравнот не пашет
{
echo "xorosho";
}
else
{
echo "ploxo";
}
И резулытат один !! всё пишет хxorosho!!! этож не есть хорошо!!

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-07 11:26:30
zg
bobot писал(а):этож не есть хорошо!!
а чего тебе от него надо?

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-07 12:04:05
bobot
Это скрипт для проверки существования Юзеров!!! Тоесть я ввожу в поле имя Юзера и этот скрипт должен проверить если такой юзер в базе данных или нету!!!!!!

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-07 12:06:13
zg
ааа, а я думал, что он проверяет правильность выполнения запроса :smile:

Код: Выделить всё

$sql = "select username from newmailbox where username='".$_POST['name']."'";
$result = mysql_query($sql, $connect);
if ( mysql_affected_rows() )
{
  echo "xorosho";
}
else
{
  echo "ploxo";
}

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-07 12:32:41
hizel
это что же строка из формочки сразу в мускул запрос !? :shock:

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-07 12:38:14
zg
hizel писал(а):это что же строка из формочки сразу в мускул запрос !? :shock:
маджик квотас спасёт мир! правда с шестой версии пхп её упразднят :roll: Но пока, она спасет мир!!! :smile:

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-23 17:22:25
BlackCat
PHP manual писал(а):mysql_affected_rows() не работает с SELECT -- только с запросами, модифицирующими таблицу. Чтобы получить количество рядов, возвращённых SELECT-запросом, используйте функцию mysql_num_rows().
Может попробовать так:

Код: Выделить всё

if ( mysql_num_rows($result)!=0 )

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-23 18:14:07
smolensk
Вот так работает 100%

Код: Выделить всё

<?php
$sql = "SELECT username FROM newmailbox WHERE username='$name'";
$result = mysql_query($sql, $connect);
$nums = mysql_num_rows($result);
if ($nums > 0) {
echo "Пользователь существует.";
} else {
echo "Пользователь не существует.";
}
?>

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-23 18:15:25
smolensk

Код: Выделить всё

$name=$_POST['name'];
$sql = "SELECT username FROM newmailbox WHERE username='$name'";
$result = mysql_query($sql, $connect);
$nums = mysql_num_rows($result);
if ($nums > 0) {
echo "Пользователь существует.";
} else {
echo "Пользователь не существует.";
}
забыл строку одну )

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-27 5:41:28
miozis
и еще совет - НИКОГДА не подставляй данные из запроса сразу в sql
хотя бы так делай:

Код: Выделить всё

$name = mysql_real_escape_string($_POST['name']);
а то найдется умник, которого зовут

Код: Выделить всё

Вася'; truncate newmailbox;

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-11-27 7:11:33
zg
miozis писал(а):Вася'; truncate newmailbox;
-))) это не пройдёт по двум причинам:
1. мускуль не поддерживает выполнение более одной команды на запрос через mysql_query
2. на данный момент от магических кавычек не отказались и по умолчанию они включены на всех нормальных хостингах.

Максимум, что можно в мускуле сделать через инъекцию на выборку - добавить объединение, и выбрать левые данные.

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-12-25 16:34:11
havarz
Максимум, что можно в мускуле сделать через инъекцию на выборку - добавить объединение, и выбрать левые данные.
Ну да, например пароли к админке или форуму или и т.д и т.п. :smile:

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-12-25 17:17:20
jeehadina
эти х....ы магические кавычки еще на.. из кода php не убрали лишь потому, что как zg сказал "нормальные" хостинги их включили. мочить таких :evil: :-D
они немало программистких нервов перепортили.
а ескепить строки перед вставкой в запрос ВСЕГДА надо.
береженого Бог бережет.

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP

Добавлено: 2008-12-25 19:18:39
zg
jeehadina писал(а):они немало программистких нервов перепортили.
+1 -))) и ещё сколько попортят http://anton-pribora.ru/articles/php-co ... quotes-gpc
Может быть, это, а может быть, ещё что-то побудило разработчиков сделать магические кавычки. Но надо было их делать либо для всех обязательными, либо не делать вовсе. Путаница, которую они вносят, даёт несомненно больший вред для безопасности и портируемости, чем реальной пользы. Но пока они есть, нужно делать следующее:
Проверять настройку magic_quotes_gpc.
Если магические кавычки включены, то принудительно убирать экранирование.
При работе с данными всегда использовать специальные функции для экранирования, такие как htmlentities(), mysql_real_escape_string(), addcslashes() и так далее. Как правило, для каждого типа данных есть своя функция, поскольку спецсимволы у всех разные.