Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Проверка логина без перезагрузки страницы. Ajax.
На страницу 1, 2  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
Лиза

Новенький


Зарегистрирован: 10.07.2008
Сообщения: 35

СообщениеДобавлено: Вс Сен 14, 2008 11:48 am    Заголовок сообщения: Проверка логина без перезагрузки страницы. Ajax.
Ответить с цитатой

Помогите, пожалуйста. Делаю проверку логина при регистрации. Т.е. при заполнении формы возле поля "логин" нажимаем "проверить", должно выводиться сообщение "занят" или "свободен". Данные хранятся в бд. Но мне постоянно выводит сообщение "свободен", даже если такой логин имеется в бд. Что не правильно?

Пример формы:
Код:

<form id="regform" name="regform" method="post" action="">
  <label>Логин:<input type="text" name="login" id="login" /></label> <span class="checkit" style="cursor:pointer;" onclick="checkLogin();">Проверить</span>
  <div id="logincheck"></div>
  <label>Пароль:<input type="text" name="password" id="password" /></label>
</form>


В тегах <head> ссылка на jQuery:
Код:

<script type="text/javascript" src="/assets/templates/magazine/jquery.js"></script>


JavaScript функция:

Код:

function checkLogin( {
var login = document.getElementById('login').value;
$("#logincheck").html?#40;'<img src="loader.gif" />');
$("#logincheck").load("logincheck.php", { login: login });
}


И сам php код:

Код:

<?
@mysql_connect("$database_host", "$database_user", "$database_password");
@mysql_select_db("$database_name");
header('Content-Type: text/html; charset=windows-1251');
 
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
    {

  $login = $_REQUEST[login];
   

  $result = "SELECT COUNT(login) FROM user_table WHERE login = '$login'";
  $sql = mysql_query($result);
  $result_array = mysql_fetch_array($sql);
  $cnt = $result_array["0"];
   
  if ($cnt == 0)
      {
      echo "Свободен";
      }
  else
      {
      echo "Занят";
      }
  }
else
    {
    // обращение произошло не через AJAX-запрос
    echo "не через AJAX-запрос ";
    }
?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Сен 14, 2008 2:23 pm    Заголовок сообщения:
Ответить с цитатой

Ну раз выводит постоянно свободен, то причина только в ПХП-сценарии.

Попробуй его изменить так:

$q = "SELECT * FROM user_table WHERE login=\"$login\"";
$r = mysql_query($q) or die(mysql_error());
$cnt = mysql_num_rows($r);

...
дальше как у тебя
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Лиза

Новенький


Зарегистрирован: 10.07.2008
Сообщения: 35

СообщениеДобавлено: Вс Сен 14, 2008 2:30 pm    Заголовок сообщения:
Ответить с цитатой

Не помогаетSad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Сен 14, 2008 2:32 pm    Заголовок сообщения:
Ответить с цитатой

тогда нужно анализировать все, что ты получаешь от сервера, для вывода значений переменных используй print_r()

например print_r($cnt); print_r($r);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Лиза

Новенький


Зарегистрирован: 10.07.2008
Сообщения: 35

СообщениеДобавлено: Вс Сен 14, 2008 2:44 pm    Заголовок сообщения:
Ответить с цитатой

print_r($r) выводит: Resource id #3, a print_r($cnt): 0
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Лиза

Новенький


Зарегистрирован: 10.07.2008
Сообщения: 35

СообщениеДобавлено: Вс Сен 14, 2008 2:48 pm    Заголовок сообщения:
Ответить с цитатой

Я поняла. $login получает вместо введеного логина слово "test". А такого нет в бд. Но откуда оно его взяло? И почему не передает введеные значения?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Лиза

Новенький


Зарегистрирован: 10.07.2008
Сообщения: 35

СообщениеДобавлено: Вс Сен 14, 2008 7:40 pm    Заголовок сообщения:
Ответить с цитатой

Всё. Спасибо. Работает. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Сен 15, 2008 3:57 am    Заголовок сообщения:
Ответить с цитатой

Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
MVV

Новенький


Зарегистрирован: 28.09.2009
Сообщения: 10

СообщениеДобавлено: Пн Сен 28, 2009 2:33 pm    Заголовок сообщения:
Ответить с цитатой

Здравствуйте форумчане, заинтересовался вопросом проверки логина
У меня такая же проблема.
при подключении скрипта [ <script type="text/javascript" src="/assets/templates/magazine/jquery.js"></script> ]

откуда берется етот файл"jquery.js" он уже есть на хостинге сервера?

Я рисую на локальном сервере и у меня ничего не получается. Базу при инклюдил, но как было пустое поле в форме так и остается, у лизы хотьчегото выводило.



Подскажите пожалуйста чайнику!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
MVV

Новенький


Зарегистрирован: 28.09.2009
Сообщения: 10

СообщениеДобавлено: Пн Сен 28, 2009 3:50 pm    Заголовок сообщения:
Ответить с цитатой

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

нарисовал такой код и он чегото не работает


[ $ql1=mysql_query("SELECT id_year FROM year WHERE year = '$year' and status=1");

if (mysql_num_rows($ql1)==1){

echo " Вывод 1 Запись есть";
}
else{
echo " Вывод 2 Записи нет";
} ]


Дальше будет вместо "echo" Выполнятся действие если запись есть, сохранить ид в переменную чтоб в дальнейшем добавить во внешний ключ другой таблици, если нет добавить новую запись в таблицу.
Я наверно чегото напутал с оператором " if "
проверяю когда запись есть, и когда записи нет
всегда выводит или постоянно первую запись, или вторую

может есть какието другие конструкции , гдето видел функцию empty() правда не знаю как она работает


Помогите пожалуйста!!!!!!!!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Лиза

Новенький


Зарегистрирован: 10.07.2008
Сообщения: 35

СообщениеДобавлено: Пн Сен 28, 2009 10:08 pm    Заголовок сообщения:
Ответить с цитатой

MVV, если я не ошибаюсь, то файлик "jquery.js" вы должны кинуть в корневую папку сайта (или во вложенную) и прописать к нему правильный путь при его подключении. Вот так это выглядело у меня: <script type="text/javascript" src="http://localhost/mysait/js/jquery.js"></script>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Сен 29, 2009 4:37 am    Заголовок сообщения:
Ответить с цитатой

Лиза, +1

Нужно правильно указать путь к jquery.js
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
MVV

Новенький


Зарегистрирован: 28.09.2009
Сообщения: 10

СообщениеДобавлено: Вт Сен 29, 2009 2:08 pm    Заголовок сообщения:
Ответить с цитатой

Здравствуйте спасибо что ответили, я понимаю что нада указать путь. но что ето за файл где его взять , и будет ли он работать на локальном компе?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Вт Сен 29, 2009 3:43 pm    Заголовок сообщения:
Ответить с цитатой

см. jquery.com
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
MVV

Новенький


Зарегистрирован: 28.09.2009
Сообщения: 10

СообщениеДобавлено: Ср Сен 30, 2009 7:03 am    Заголовок сообщения:
Ответить с цитатой

Спасибо огромное "DEN" воспользовался вашим кусочком из подсказке Лизе

$q = "SELECT * FROM user_table WHERE login=\"$login\"";
$r = mysql_query($q) or die(mysql_error());
$cnt = mysql_num_rows($r);

и решил свой второй вопрос с записью избытка данных

Еще осталась проблемка с проверкой логина без перезагрузки.

подскажете еще какоето решение пожалуйста У меня конструкция как у Лизы, только при запуске скрипта выводится третье сообщение
"не через AJAX-запрос "

Чегото я не могу понять как применить "jquery.js" и что это за строка в условном операторе

"if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
{"
........
с чем её едят?
Буду очень признателен.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис