|
|
|
| Доброго времени суток народ!
Пожалста помогите решить данный вопрос!
У меня вводится через форму электронный адрес в бд...Мне надо сделать проверку на уже внесенный email...делаю типа такого:
<?
$f=trim($_POST['email']);
$test=mysql_query("SELECT `email` FROM `bd`.`mytab` WHERE `email`='".$f." ' ");
If (mysql_num_rows($test)>0)
{
exit('Данный адрес уже зарегистрирован в базе. Введите другой!');
}
else
{
mysql_query("INSERT INTO `bd`.`mytab` (`email`) VALUES ('$f')");
echo "Запись добавлена!";
}
|
Адрес попадает в базу даже если ввожу повторно..? В чем может быть глюк? | |
|
|
|
|
|
|
|
для: Silentium
(12.12.2008 в 15:27)
| | я так делал
while ($row=mysql_fetch_assoc($result))
{
if ($email == $row["email"])
{
echo "такой пользователь уже существуетЭ;
break;
}
}
|
я думаю можно и по другому, я еще чайник, а у тебя не проверяет все занесенный поля, потому и пропускает. добавь на свое усмотрение цикл для проверки всех полей | |
|
|
|
|
|
|
|
для: Bvz
(12.12.2008 в 16:18)
| | чушь. От начала и до конца. Кроме трёх слов.
цикл этот не поможет, потому что ошибка в тексте запроса.
Да и не нужен он в принципе. | |
|
|
|
|
|
|
|
для: Silentium
(12.12.2008 в 15:27)
| | Выведите через echo строку, которую Вы скармливаете функции mysql_query() . Всё станет очевидно. | |
|
|
|
|
|
|
|
для: Trianon
(12.12.2008 в 16:21)
| | Проверил длину переменной которую заношу и длину той, что сидит в бд, они отличаются на один элемент, подозреваю, что вся проблема в символе "@" но визуально этого не заметно (пробелы все обрезаю)....Как тут быть? | |
|
|
|
|
|
|
|
для: Silentium
(12.12.2008 в 16:34)
| | Еще раз. Покажите здесь текст SELECT-запроса. | |
|
|
|
|
|
|
|
для: Trianon
(12.12.2008 в 16:47)
| | Допустим делаю так:
<?
$f="test@test.ru";
$test=mysql_query("SELECT `email` FROM `bd`.`mytab` WHERE `id`='3' "); \\забираю из таблицы бд тестовую запись для проверки
if (mysql_num_rows($test)>0) {
$d=strlen(trim($test));
$e=strlen(trim($f));
echo $d ."-". $e."; \\ вот здесь разные цифры получаются(( [$d>$e yf 1]
}
else echo "error";
?>
|
а то что было изначально вот:
<?
$test=mysql_query("SELECT `email` FROM `bd`.`mytab` WHERE `email`=' ".trim($f)." ' ")
?>
|
| |
|
|
|
|
|
|
|
для: Silentium
(12.12.2008 в 16:57)
| | Вам так сложно написать
$sql = "SELECT...";
echo $sql;
и посмотреть , что выйдет? | |
|
|
|
|
|
|
|
для: Trianon
(12.12.2008 в 17:09)
| |
$query = "SELECT email FROM mail
WHERE '".$_POST['mail']."' = email";
$mail = mysql_query($query);
if ($mail)
{
if (mysql_num_rows($mail)>0)
{
echo "<p>Пользователь с таким E-mail адресом уже подписан</p>";
exit();
}
}
|
вот кусок моего кода для проверки в базе, всё рабтает | |
|
|
|
|
|
|
|
для: psychomc
(12.12.2008 в 17:47)
| | мне совершенно не нужен кусок Вашего кода.
А автору он даже вреден. | |
|
|
|
|
|
|
|
для: Trianon
(12.12.2008 в 17:09)
| | >Вам так сложно написать
>$sql = "SELECT...";
>echo $sql;
>и посмотреть , что выйдет?
А Вы думаете я не догадался посмотреть?
$rez=mysql_result(0,$test);
echo $rez;
|
Выводит абсолютно тоже самое.... | |
|
|
|
|
|
|
|
для: Silentium
(13.12.2008 в 10:21)
| | >>Вам так сложно написать
>>$sql = "SELECT...";
>>echo $sql;
>>и посмотреть , что выйдет?
>А Вы думаете я не догадался посмотреть?
И что Вы увидели? | |
|
|
|
|
|
|
|
для: Trianon
(13.12.2008 в 11:19)
| | > И что Вы увидели?
Результат! | |
|
|
|
|
|
|
|
для: BinLaden
(13.12.2008 в 17:28)
| | Может всётаки так надо?
$rez=mysql_result($test,0);
echo $rez;
|
| |
|
|
|
|
|
|
|
для: BinLaden
(13.12.2008 в 17:28)
| | А именно? | |
|
|
|
|
|
|
|
для: Trianon
(13.12.2008 в 17:58)
| | Ребят, Вы чего? Я пошутил вообще | |
|
|
|
|
|
|
|
для: BinLaden
(13.12.2008 в 18:23)
| | Было б над чем... | |
|
|
|
|
|
|
|
для: Trianon
(13.12.2008 в 18:39)
| | А можно конкретно указать в чем мои грабли? | |
|
|
|
|
|
|
|
для: Silentium
(15.12.2008 в 11:14)
| | Можно, вероятно, но делать это будет кто-то другой.
Вы исправите эти грабли по подсказке, а сами их находить так и не научитесь.
Меня это не устраивает.
Я Вам задал простейший вопрос (Какой именно текст подсовывается функции mysql_query при выполнении SELECT-запроса?)
Нужно было вывести его на экран, скопировать и показать здесь. И ошибка тут же оказалась бы видна.
Вы же делаете всё возможное, лишь бы на него не отвечать. | |
|
|
|
|
|
|
|
для: Trianon
(15.12.2008 в 11:56)
| | Во общем, я не совсем видимо Вас понял, но в любом случае моя проблема разрешилась , спасибо за наставления на путь истинный! | |
|
|
|