Страница 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
ааа, а я думал, что он проверяет правильность выполнения запроса
Код: Выделить всё
$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
это что же строка из формочки сразу в мускул запрос !?

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP
Добавлено: 2008-11-07 12:38:14
zg
hizel писал(а):это что же строка из формочки сразу в мускул запрос !?

маджик квотас спасёт мир! правда с шестой версии пхп её упразднят

Но пока, она спасет мир!!!

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP
Добавлено: 2008-11-23 17:22:25
BlackCat
PHP manual писал(а):mysql_affected_rows() не работает с SELECT -- только с запросами, модифицирующими таблицу. Чтобы получить количество рядов, возвращённых SELECT-запросом, используйте функцию mysql_num_rows().
Может попробовать так:
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']);
а то найдется умник, которого зовут
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
Максимум, что можно в мускуле сделать через инъекцию на выборку - добавить объединение, и выбрать левые данные.
Ну да, например пароли к админке или форуму или и т.д и т.п.

Re: БЛин не могу понять где ошибка в одной строчке!!!! PHP
Добавлено: 2008-12-25 17:17:20
jeehadina
эти х....ы магические кавычки еще на.. из кода php не убрали лишь потому, что как zg сказал "нормальные" хостинги их включили. мочить таких
они немало программистких нервов перепортили.
а ескепить строки перед вставкой в запрос ВСЕГДА надо.
береженого Бог бережет.
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() и так далее. Как правило, для каждого типа данных есть своя функция, поскольку спецсимволы у всех разные.