Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка не существует в БД таких данных, которые ввел пользователь.
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Проверка не существует в БД таких данных, которые ввел пользователь.

Страниц (2): [1] 2 »
 

1. A.N.R.I - 05 Июня, 2009 - 12:08:03 - перейти к сообщению
Так как в основе jQuery или AJAX является JS, поэтому разместил здесьУлыбка. Если кто-то знает, где есть статьи, которые помогут мне, давайте ссылки, буду радУлыбка
Короче, делаю регистрацию, нужно после ввода логина или мыла, свериться нет ли таких данных в БД, если есть, то вывести сообщение (типа "пользователь с таким логином / электронной почтой существует") и не позволить регистрироваться. Это все должно быть без перезагрузки страницы с использованием jQuery или AJAX.
2. Champion - 05 Июня, 2009 - 12:17:39 - перейти к сообщению
Ссылка на аякс в самой первой теме раздела есть. Посмотри.
Если не можешь придумать алгоритм - рассказывай, где запор, что пробовал, что получилось. Всё по полочкам рассказывать не охота.
3. A.N.R.I - 05 Июня, 2009 - 12:35:16 - перейти к сообщению
Ну, во-первых, я хочу изучить JQuery / AJAX (для этого я и статью попросилУлыбка). Алгоритм должен быть такой: пользователь вводит данные, одновременно к БД улетают они и сверяются есть ли такие там, сервер дает ответ браузеру: если есть такие данные, то вывести пользователю и не дать зарегистрироваться, если нет, то позволить.
Далее, нарыл такой код:
list ($ param1, $ param2) = explode ("&",$_ SERVER [ 'QUERY_STRING']);
list ($ login, $ login_value) = explode ("=",$ param1);
list ($ email, $ email_value) = explode ("=",$ param2);
$ result2 = mysql_query ( "SELECT login, email FROM userlist WHERE login = '$ login_value' OR email = '$ email-value');
А теперь нужно составить некую условие, а потом уже вывести сообщение.

ПС Если есть ошибки в коде - извеняюсь, это я только так думаю и я не проверял еще это. Если я правильно думаю, то буду делать Улыбка
ППС: Извеняюсь за ошибки - мне Гугл переводчик помогалУлыбка
4. Stierus - 05 Июня, 2009 - 12:40:40 - перейти к сообщению
Цитата:
Ну, во-первых, я хочу изучить JQuery / AJAX (для этого я и статью попросилУлыбка).
На сайте jquery.com вполне адекватные мануалы
5. A.N.R.I - 05 Июня, 2009 - 12:43:01 - перейти к сообщению
Stierus пишет:
На сайте jquery.com вполне адекватные мануалы
Да, но проблема в том, что я плохо знаю англ. язык и мало что пойму Недовольство, огорчение Нету аналогичного руского ресурса?
6. Stierus - 05 Июня, 2009 - 12:44:12 - перейти к сообщению
хочешь сказать, яндекс ссылок не дал ?
7. A.N.R.I - 05 Июня, 2009 - 12:48:03 - перейти к сообщению
Stierus пишет:
хочешь сказать, яндекс ссылок не дал ?
Я юзайю Гугл Улыбка. А по теме, то есть немного, но то блоги, а мне лучше форум, где у кого-то можно спросить.
8. A.N.R.I - 05 Июня, 2009 - 15:02:26 - перейти к сообщению
Champion, можеш помочь? Или искать другой форум?
9. Champion - 05 Июня, 2009 - 15:16:37 - перейти к сообщению
A.N.R.I, обучать тебя и пересказывать то же, что написано в документации вряд ли кто-то станет и на другом форуме. Задавай конкретные вопросы.
-пользователь вводит логин и мыло
-ты аяксом шелшь запрос к БД и получаешь строку.
-анализируешь эту строку и если надо пишешь полдьзователю, что кнопку ОК нажимать не стоит, потому, что пользователь с такими данными уже есть.
Как послать запрос - написано в ссылке. Я не буду идти по той же ссылки или лазить в свои проекты, чтобы скопировать оттуда процесс посылки запро. Я его изначально оттуда брал.

На каком этапе у тебя не получается?
10. A.N.R.I - 05 Июня, 2009 - 18:54:38 - перейти к сообщению
Champion пишет:
A.N.R.I, обучать тебя и пересказывать то же, что написано в документации вряд ли кто-то станет и на другом форуме. Задавай конкретные вопросы.
-пользователь вводит логин и мыло
-ты аяксом шелшь запрос к БД и получаешь строку.
-анализируешь эту строку и если надо пишешь полдьзователю, что кнопку ОК нажимать не стоит, потому, что пользователь с такими данными уже есть.
Как послать запрос - написано в ссылке. Я не буду идти по той же ссылки или лазить в свои проекты, чтобы скопировать оттуда процесс посылки запро. Я его изначально оттуда брал.

На каком этапе у тебя не получается?


Почитал я про Аякс - мало толкового (возможно я еще не до шел до нужного).
Далее, проблемы при отображении результата (совсем ничего не показывает)
Код между
<head>


</head>
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript" src="jquery-1.3.2.js"></script>
  3. <script type="text/javascript" >
  4. function send_comments()
  5. {
  6.         var msg = $('#formID').serialize();
  7.         $('#view_comments').load('login2.php',msg);
  8. }
  9. </script>
  10.  
  11.  


код между <body></body>
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <form id="formID" class="formular" method="post">
  3. Введите логин: <input class="validate[required,custom[noSpecialCaracters],length[0,100]] text-input" type="text" name="firstname" id="firstname"/>
  4. <div id="view_comments"></div>
  5. Введите пароль: <input class="validate[required,length[6,100]] text-input" type="password" name="pass1" id="pass1"/>
  6. Потвердите пароль: <input class="validate[required,confirm[pass1]] text-input" type="password" name="pass2"/>
  7. Введите e-mail: <input class="validate[required,custom[email]] text-input" type="text" name="email" id="email" />
  8. Обо мне
  9. <textarea name="about" cols="45" rows="7" class="validate[length[0,255]] text-input"></textarea>
  10. <input name="sub" type="submit" value='Коментувати'onclick='send_comments()'  />
  11.  
  12.  </form>
  13.  
  14.  


login2.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include ("bd.php");
  4.  
  5. list ($param1, $param2,$param3,$param4) = explode ("&",$_SERVER [ 'QUERY_STRING']);
  6.   list ($login, $login_value) = explode ("=",$param1);
  7.   list ($email, $email_value) = explode ("=",$param4);
  8.   $result = mysql_query( "SELECT login, email FROM userlist");
  9.  $myrow=mysql_fetch_array($result);
  10. $login_stop="Вибачте, але Логін зяйнятий іншим користувачем";
  11. $email_stop="Електронна адреса зяйнята іншим користувачем";
  12. if ($myrow['login']==$login_value)
  13.  {
  14. print iconv("utf-8","windows-1251",urldecode($login_stop));
  15.  }
  16.  if ($myrow['email']==$email_value)
  17.  {
  18. print iconv("utf-8","windows-1251",urldecode($email_stop));
  19.  }
  20.   ?>
  21.  
  22.  
  23.  
11. Roler - 05 Июня, 2009 - 19:15:11 - перейти к сообщению
Цитата:
Почитал я про Аякс - мало толкового (возможно я еще не до шел до нужного).

Есть толковое, очень даже есть.
12. ALEN - 05 Июня, 2009 - 21:42:27 - перейти к сообщению
Господи, вспоминаю молодые годы))))

Чтоб результат был везде один и тот же делаем следующее, сам код разбирайте сами:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. var request = null;
  3.  
  4. function createRequest() {
  5.     if (request != null)
  6.         return;
  7.  
  8.     try {
  9.         request = new XMLHttpRequest();
  10.     } catch (trymicrosoft) {
  11.         try {
  12.             request = new ActiveXObject("Msxml2.XMLHTTP");
  13.         } catch (othermicrosoft) {
  14.             try {
  15.                 request = new ActiveXObject("Microsoft.XMLHTTP");
  16.             } catch (failed) {
  17.                 request = null;
  18.             }
  19.         }
  20.     }
  21.  
  22.     if (request == null)
  23.         alert(" :-( ___ Error creating request object! ");
  24.  
  25. }
  26. // Подготовили среду
  27.  
  28.  
  29.  
  30. // Теперь отправляем php файлу запрос напроверку:
  31.  
  32. function subuser() {
  33.     createRequest();
  34.     var nameuser = adduser.user.value;
  35. if (/^[-А-Яа-яA-Za-z0-9_]{2,30}$/.test(txt)) {
  36.     var url = "user_add_proverka.php";
  37.     request.onreadystatechange = subuserenter;
  38.     request.open("POST", url, true);
  39.     request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  40.     request.send("user="+nameuser);
  41.  } else {
  42. // Недопустимые символы
  43. }
  44. }
  45.  
  46.  
  47. // Теперь обрабатываем ответ полученый от php скрипта
  48. // "user-not" - не разрешаем создавать такой логин
  49. //  "user-on" - разрешаем создавать такой логин
  50.  
  51. function subuserenter() {
  52. if (request.readyState == 4) {
  53. if(request.responseText=="user-on"){
  54. // Все ок!
  55. } else {
  56. // Пусть пользователь ищет новый логин!
  57. }}}
  58.  
  59.  
13. A.N.R.I - 06 Июня, 2009 - 18:25:07 - перейти к сообщению
Спасибо, но что нужно писать в файле user_add_proverka.php ? Где будет это писать и как будет работать запрет на регистрацию?
14. ALEN - 06 Июня, 2009 - 18:30:05 - перейти к сообщению
A.N.R.I Там ты принимаешь имя которое предлагает пользователь и проверяешь, можно ли регистрироваться под таким именем или нет. Если можно, то ответ должен быть просто echo "user-on"; . Принять имя $_POST['user']
15. A.N.R.I - 06 Июня, 2009 - 19:18:20 - перейти к сообщению
ALEN пишет:
A.N.R.I Там ты принимаешь имя которое предлагает пользователь и проверяешь, можно ли регистрироваться под таким именем или нет. Если можно, то ответ должен быть просто echo "user-on"; . Принять имя $_POST['user']

Значит начинка файла:
PHP:
скопировать код в буфер обмена
  1. <?
  2. include ("bd.php");
  3.  
  4.    $result = mysql_query( "SELECT * FROM userlist WHERE login='$_POST[user]'");
  5.  $myrow=mysql_fetch_array($result);
  6. if (mysql_num_rows($result)>0)
  7.  {
  8. print "user-on";
  9.  }
  10.   ?>

Правильно?
И где должно выводится? Откуда берется значения, который ввел юзер?

 

Powered by ExBB FM 1.0 RC1