Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка на уже внесенный email в бд?
 
 автор: Silentium   (12.12.2008 в 15:27)   письмо автору
 
 

Доброго времени суток народ!

Пожалста помогите решить данный вопрос!
У меня вводится через форму электронный адрес в бд...Мне надо сделать проверку на уже внесенный 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 
"Запись добавлена!";
}


Адрес попадает в базу даже если ввожу повторно..? В чем может быть глюк?

  Ответить  
 
 автор: Bvz   (12.12.2008 в 16:18)   письмо автору
 
   для: Silentium   (12.12.2008 в 15:27)
 

я так делал

while ($row=mysql_fetch_assoc($result))
{
if ($email == $row["email"])
{
echo "такой пользователь уже существуетЭ;
break;
}
}


я думаю можно и по другому, я еще чайник, а у тебя не проверяет все занесенный поля, потому и пропускает. добавь на свое усмотрение цикл для проверки всех полей

  Ответить  
 
 автор: Trianon   (12.12.2008 в 16:25)   письмо автору
 
   для: Bvz   (12.12.2008 в 16:18)
 

чушь. От начала и до конца. Кроме трёх слов.
цикл этот не поможет, потому что ошибка в тексте запроса.
Да и не нужен он в принципе.

  Ответить  
 
 автор: Trianon   (12.12.2008 в 16:21)   письмо автору
 
   для: Silentium   (12.12.2008 в 15:27)
 

Выведите через echo строку, которую Вы скармливаете функции mysql_query() . Всё станет очевидно.

  Ответить  
 
 автор: Silentium   (12.12.2008 в 16:34)   письмо автору
 
   для: Trianon   (12.12.2008 в 16:21)
 

Проверил длину переменной которую заношу и длину той, что сидит в бд, они отличаются на один элемент, подозреваю, что вся проблема в символе "@" но визуально этого не заметно (пробелы все обрезаю)....Как тут быть?

  Ответить  
 
 автор: Trianon   (12.12.2008 в 16:47)   письмо автору
 
   для: Silentium   (12.12.2008 в 16:34)
 

Еще раз. Покажите здесь текст SELECT-запроса.

  Ответить  
 
 автор: Silentium   (12.12.2008 в 16:57)   письмо автору
 
   для: 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)." ' ")
?>

  Ответить  
 
 автор: Trianon   (12.12.2008 в 17:09)   письмо автору
 
   для: Silentium   (12.12.2008 в 16:57)
 

Вам так сложно написать
$sql = "SELECT...";
echo $sql;
и посмотреть , что выйдет?

  Ответить  
 
 автор: psychomc   (12.12.2008 в 17:47)   письмо автору
 
   для: 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();
                    }
              }  



вот кусок моего кода для проверки в базе, всё рабтает

  Ответить  
 
 автор: Trianon   (12.12.2008 в 18:14)   письмо автору
 
   для: psychomc   (12.12.2008 в 17:47)
 

мне совершенно не нужен кусок Вашего кода.
А автору он даже вреден.

  Ответить  
 
 автор: Silentium   (13.12.2008 в 10:21)   письмо автору
 
   для: Trianon   (12.12.2008 в 17:09)
 

>Вам так сложно написать
>$sql = "SELECT...";
>echo $sql;
>и посмотреть , что выйдет?

А Вы думаете я не догадался посмотреть?


$rez=mysql_result(0,$test);
echo $rez;


Выводит абсолютно тоже самое....

  Ответить  
 
 автор: Trianon   (13.12.2008 в 11:19)   письмо автору
 
   для: Silentium   (13.12.2008 в 10:21)
 

>>Вам так сложно написать
>>$sql = "SELECT...";
>>echo $sql;
>>и посмотреть , что выйдет?
>А Вы думаете я не догадался посмотреть?

И что Вы увидели?

  Ответить  
 
 автор: BinLaden   (13.12.2008 в 17:28)   письмо автору
 
   для: Trianon   (13.12.2008 в 11:19)
 

> И что Вы увидели?

Результат!

  Ответить  
 
 автор: Valick   (13.12.2008 в 17:49)   письмо автору
 
   для: BinLaden   (13.12.2008 в 17:28)
 

Может всётаки так надо?
$rez=mysql_result($test,0); 
echo $rez;

  Ответить  
 
 автор: Trianon   (13.12.2008 в 17:58)   письмо автору
 
   для: BinLaden   (13.12.2008 в 17:28)
 

А именно?

  Ответить  
 
 автор: BinLaden   (13.12.2008 в 18:23)   письмо автору
 
   для: Trianon   (13.12.2008 в 17:58)
 

Ребят, Вы чего? Я пошутил вообще

  Ответить  
 
 автор: Trianon   (13.12.2008 в 18:39)   письмо автору
 
   для: BinLaden   (13.12.2008 в 18:23)
 

Было б над чем...

  Ответить  
 
 автор: Silentium   (15.12.2008 в 11:14)   письмо автору
 
   для: Trianon   (13.12.2008 в 18:39)
 

А можно конкретно указать в чем мои грабли?

  Ответить  
 
 автор: Trianon   (15.12.2008 в 11:56)   письмо автору
 
   для: Silentium   (15.12.2008 в 11:14)
 

Можно, вероятно, но делать это будет кто-то другой.
Вы исправите эти грабли по подсказке, а сами их находить так и не научитесь.
Меня это не устраивает.

Я Вам задал простейший вопрос (Какой именно текст подсовывается функции mysql_query при выполнении SELECT-запроса?)
Нужно было вывести его на экран, скопировать и показать здесь. И ошибка тут же оказалась бы видна.
Вы же делаете всё возможное, лишь бы на него не отвечать.

  Ответить  
 
 автор: Silentium   (15.12.2008 в 15:17)   письмо автору
 
   для: Trianon   (15.12.2008 в 11:56)
 

Во общем, я не совсем видимо Вас понял, но в любом случае моя проблема разрешилась , спасибо за наставления на путь истинный!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования