Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Проверка логина без перезагрузки?

53 views
Skip to first unread message

Dimon

unread,
Aug 12, 2008, 3:10:14 AM8/12/08
to
Hi All!

Частенько встречается, форма регистрации, в которой при вводе ЛОГИHА
автоматически проверяется наличие такого в БД.

Подскажите, где можно пример реализации посмотреть. Или сюда киньте код.

Спасибо.


Nikolai Chuvakhin

unread,
Aug 12, 2008, 10:02:29 PM8/12/08
to
Tue Aug 12 2008 11:10, Dimon wrote to All:

D> Частенько встречается, форма регистрации, в которой при вводе ЛОГИHА
D> автоматически проверяется наличие такого в БД.

D> Подскажите, где можно пример реализации посмотреть. Или сюда киньте код.

Код, если честно, писать лениво, но принцип пояснить можно...

В базе данных логин определяется как индексированное уникальное поле
(или вообще как первичный ключ, что подразумевает индексирование и
уникальность), а запрос на создание нового пользователя делается с
ключевым словом IGNORE:

INSERT IGNORE INTO TABLE `users`
SET
`login` = '[логин]',
[прочие поля]

Потом вызывается функция mysql_affected_rows(). Если она возвращает
1, это значит, что учетная запись нового пользователя успешно создана.
Если 0, то запись не была создана, т.е., мы имеем дело с двойником...

С уважением, Hиколай Чувахин

Dimon

unread,
Aug 13, 2008, 3:10:49 AM8/13/08
to
Hi Nikolai!

> Потом вызывается функция mysql_affected_rows(). Если она возвращает
> 1, это значит, что учетная запись нового пользователя успешно создана.
> Если 0, то запись не была создана, т.е., мы имеем дело с двойником...

Спасибо за помощь. Думаю дальше разберусь.


Shchutskiy Evgeniy

unread,
Aug 13, 2008, 12:48:00 PM8/13/08
to
Привет, Dimon!

Di> Частенько встречается, форма регистрации, в которой при вводе ЛОГИHА
Di> автоматически проверяется наличие такого в БД.

Di> Подскажите, где можно пример реализации посмотреть. Или сюда киньте
Di> код.

Di> Спасибо.

Мне кажется, что это с помощью Java Script реализовано...

Shchutskiy

Dimon

unread,
Aug 15, 2008, 10:54:54 AM8/15/08
to
Hi Shchutskiy Evgeniy

> Мне кажется, что это с помощью Java Script реализовано...
>

Да, на JS, но в связке с PHP.

Dimon

unread,
Aug 15, 2008, 11:00:55 AM8/15/08
to
Hi Shchutskiy Evgeniy

> Мне кажется, что это с помощью Java Script реализовано...
>

Dimon

unread,
Aug 15, 2008, 11:00:56 AM8/15/08
to
Hi Shchutskiy Evgeniy

> Мне кажется, что это с помощью Java Script реализовано...
>

Dimon

unread,
Aug 15, 2008, 11:00:55 AM8/15/08
to
Hi Shchutskiy Evgeniy

> Мне кажется, что это с помощью Java Script реализовано...
>

Dimon

unread,
Aug 21, 2008, 10:39:14 AM8/21/08
to
Hi All!

Просветите пожалуйста, как сабж работает.
Вот например в форуме VBulletin, при регистрации, вводишь данные в поля.
Затем если неправильно ввести код подтверждения, страница перезагружается,
но данные в полях логина и мыла остаются (пароль сбрасывается).
Как это реализовано?


Nikolai Chuvakhin

unread,
Aug 21, 2008, 1:44:47 PM8/21/08
to
Thu Aug 21 2008 18:39, Dimon wrote to Dimon:

D> Вот например в форуме VBulletin, при регистрации, вводишь
D> данные в поля. Затем если неправильно ввести код подтверждения,
D> страница перезагружается, но данные в полях логина и мыла
D> остаются (пароль сбрасывается). Как это реализовано?

if (isset($_POST['login'])) {
$login = $_POST['login'];
} else {
$login = null;
}
echo <<<EOFORM
<form method="POST" action="{$_SERVER['PHP_SELF']}">
<input type="text" name="login" value="{$login}">
<!-- всякие другие поля -->
</form>
EOFORM;

С уважением, Hиколай Чувахин

Dimon

unread,
Aug 22, 2008, 1:21:35 AM8/22/08
to
Hi Nikolai!

> echo <<<EOFORM
> <form method="POST" action="{$_SERVER['PHP_SELF']}">
> <input type="text" name="login" value="{$login}">
> <!-- всякие другие поля -->
> </form>
> EOFORM;

Спасибо. Все оказывается так просто. Я думал необходимо куки использовать
или сессии.


Shchutskiy Evgeniy

unread,
Aug 22, 2008, 3:22:24 AM8/22/08
to
Привет, Dimon!


>> echo <<<EOFORM
>> <form method="POST" action="{$_SERVER['PHP_SELF']}">
>> <input type="text" name="login" value="{$login}">
>> <!-- всякие другие поля -->
>> </form>
>> EOFORM;

Di> Спасибо. Все оказывается так просто. Я думал необходимо куки
Di> использовать или сессии.

Еще можно добавлять скрытые поля

echo <<<EOFORM
<form method="POST" action="{$_SERVER['PHP_SELF']}">

<input type="hidden" name="passPentagon" value="{$PentPassword}">
</form>
EOFORM;
отображаться не будут(только в исходном тексте), но данные извлекать запросто
Shchutskiy

Nikolai Chuvakhin

unread,
Aug 22, 2008, 10:03:22 AM8/22/08
to
Fri Aug 22 2008 09:21, Dimon wrote to Nikolai Chuvakhin:

NC> echo <<<EOFORM
NC> <form method="POST" action="{$_SERVER['PHP_SELF']}">
NC> <input type="text" name="login" value="{$login}">
NC> <!-- всякие другие поля -->
NC> </form>
NC> EOFORM;

D> Спасибо. Все оказывается так просто. Я думал необходимо куки
D> использовать или сессии.

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

С уважением, Hиколай Чувахин

0 new messages