|
Автор |
Сообщение |
Лиза
Новенький
Зарегистрирован: 10.07.2008 Сообщения: 35
|
|
|
|
Помогите, пожалуйста. Делаю проверку логина при регистрации. Т.е. при заполнении формы возле поля "логин" нажимаем "проверить", должно выводиться сообщение "занят" или "свободен". Данные хранятся в бд. Но мне постоянно выводит сообщение "свободен", даже если такой логин имеется в бд. Что не правильно?
Пример формы:
Код: |
<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 Откуда: Кировоград, Украина
|
|
|
|
Ну раз выводит постоянно свободен, то причина только в ПХП-сценарии.
Попробуй его изменить так:
$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
|
|
|
|
Не помогает |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
тогда нужно анализировать все, что ты получаешь от сервера, для вывода значений переменных используй print_r()
например print_r($cnt); print_r($r); |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Лиза
Новенький
Зарегистрирован: 10.07.2008 Сообщения: 35
|
|
|
|
print_r($r) выводит: Resource id #3, a print_r($cnt): 0 |
|
Вернуться к началу |
|
|
Лиза
Новенький
Зарегистрирован: 10.07.2008 Сообщения: 35
|
|
|
|
Я поняла. $login получает вместо введеного логина слово "test". А такого нет в бд. Но откуда оно его взяло? И почему не передает введеные значения? |
|
Вернуться к началу |
|
|
Лиза
Новенький
Зарегистрирован: 10.07.2008 Сообщения: 35
|
|
|
|
Всё. Спасибо. Работает. |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
MVV
Новенький
Зарегистрирован: 28.09.2009 Сообщения: 10
|
|
|
|
Здравствуйте форумчане, заинтересовался вопросом проверки логина
У меня такая же проблема.
при подключении скрипта [ <script type="text/javascript" src="/assets/templates/magazine/jquery.js"></script> ]
откуда берется етот файл"jquery.js" он уже есть на хостинге сервера?
Я рисую на локальном сервере и у меня ничего не получается. Базу при инклюдил, но как было пустое поле в форме так и остается, у лизы хотьчегото выводило.
Подскажите пожалуйста чайнику!!! |
|
Вернуться к началу |
|
|
MVV
Новенький
Зарегистрирован: 28.09.2009 Сообщения: 10
|
|
|
|
Извеняюсь я еще плохо разбираюсь 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() правда не знаю как она работает
Помогите пожалуйста!!!!!!!!!! |
|
Вернуться к началу |
|
|
Лиза
Новенький
Зарегистрирован: 10.07.2008 Сообщения: 35
|
|
|
|
MVV, если я не ошибаюсь, то файлик "jquery.js" вы должны кинуть в корневую папку сайта (или во вложенную) и прописать к нему правильный путь при его подключении. Вот так это выглядело у меня: <script type="text/javascript" src="http://localhost/mysait/js/jquery.js"></script> |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Лиза, +1
Нужно правильно указать путь к jquery.js |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
MVV
Новенький
Зарегистрирован: 28.09.2009 Сообщения: 10
|
|
|
|
Здравствуйте спасибо что ответили, я понимаю что нада указать путь. но что ето за файл где его взять , и будет ли он работать на локальном компе? |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
см. jquery.com |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
MVV
Новенький
Зарегистрирован: 28.09.2009 Сообщения: 10
|
|
|
|
Спасибо огромное "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')
{"
........
с чем её едят?
Буду очень признателен. |
|
Вернуться к началу |
|
|
|
|