ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

проверка на наличие
  #1  
Старый 17.01.2009, 12:03
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию проверка на наличие

Подскажите как изящнее проверять существуют ли данные в БД ... какбы при реге проверять скажем
емайл .... логин и т.п

у меня есть идея но она слишком громоздкая ...
может подскажите более изящьный способ ? =)

зарание спасибо!
 
Ответить с цитированием

  #2  
Старый 17.01.2009, 12:18
BlackSun
Members of Antichat - Level 5
Регистрация: 01.04.2007
Сообщений: 1,268
Провел на форуме:
10046345

Репутация: 4589


По умолчанию

$sql = "SELECT * FROM users WHERE username='".addslashes($_POST['username'])."' OR email='".addslashes($_POST['email'])."'"; // и тд
$result = mysql_query($sql);
if ($result AND mysql_num_rows($result) > 0)
{
...

типа так?)

Последний раз редактировалось BlackSun; 17.01.2009 в 12:28..
 
Ответить с цитированием

  #3  
Старый 17.01.2009, 12:23
[dei]
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме:
1123418

Репутация: 362
Отправить сообщение для [dei] с помощью ICQ
По умолчанию

Цитата:
Сообщение от BlackSun  
$sql = "SELECT * FROM users WHERE username='".addslashes($_POST['username'])."' AND email='".addslashes($_POST['email'])."'"; // и тд
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0)
{
...

типа так?)
а чо, типа может быть много юзеров с одинаковыми логинами и паролями?
 
Ответить с цитированием

  #4  
Старый 17.01.2009, 12:32
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

BlackSun есиб так.. =( ... нада знать что иммено уже существует ... логин пасс или там ещё чтото =\\ поэтому конструкция получяется грамоздкой =\\
 
Ответить с цитированием

  #5  
Старый 17.01.2009, 12:43
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

мда и чё я раньше не дадумался чёт я туплю последнеевремя

$sql = "SELECT `username`,`email` FROM users WHERE username='".addslashes($_POST['username'])."' OR email='".addslashes($_POST['email'])."'";
$result = mysql_query($sql);
$fetch = mysql_fetch_assoc($result);

if($fetch != array())
{
if($fetch['username'] == $_POST['username'])
$error = "username alredy exist";
elseif($fetch['email'] == $_POST['email'])
$error = "email alredy exist";
}

ы =)


тему в мусарку плз

Последний раз редактировалось Doom123; 17.01.2009 в 12:54..
 
Ответить с цитированием

  #6  
Старый 17.01.2009, 17:05
etc
Постоянный
Регистрация: 16.02.2008
Сообщений: 724
Провел на форуме:
1025839

Репутация: 581


По умолчанию

кстати.лучше юзать mysql_real_escape_string
 
Ответить с цитированием

  #7  
Старый 18.01.2009, 01:57
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 174
По умолчанию

Добавляй в конец запроса LIMIT 1
Я так полагаю, что предполагается выборка одной записи, а в твоём варианте мускуль будет перебирать все записи талицы.
 
Ответить с цитированием

  #8  
Старый 18.01.2009, 02:05
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

А он и должен перебирать все записи, чтобы найти совпадения. Если алгоритм верный был ДО внедрения процедуры, такая запись будет только одна, если есть совпадения
 
Ответить с цитированием

  #9  
Старый 18.01.2009, 03:20
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 174
По умолчанию

Но без условия LIMIT 1 он будет перебирать записи уже после того, как найдёт нужную, а это лишняя нагрузка на БД.
 
Ответить с цитированием

  #10  
Старый 18.01.2009, 13:27
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


Отправить сообщение для Chaak с помощью ICQ
По умолчанию

Ставь поле unique, бд при занесении дубликата, возвратит ошибку, парси ее на предмет того, что поле не может быть продублировано -> выноси сообщение пользователю
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРОВЕРКА почти всех уязвимостей и багов! _GaLs_ Избранное 8 14.06.2010 12:00
Приват прога (функционал большой) Allont Разное - Покупка, продажа, обмен 3 16.01.2009 19:59
[Delphi] Проверка наличия локалки Pr0b3L С/С++, C#, Delphi, .NET, Asm 4 02.11.2006 21:34
Проверка серверов, и вебсайтов на уязвимости NeitR1N0 Разное - Покупка, продажа, обмен 12 18.03.2006 16:50



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ