|
|
|
| есть форма
<form action="обработчик " method="post">
<input type="hidden" nane="hidden_name" value="случайная_строка"> // случайная строка
// генерируется на сервере и сохраняется, что потом сравнить с пришедшей
Введите имя:
<input type="text" nane="user_name">
Введите пароль:
<input type="password" name="user_password">
<input type="submit" value="Нажать">
|
После нажатия на кнопку хочу чтоб не вводимые данные отправлялись, а одна строчка, сгенерированная до посыла на сервер, вот такого вида: (пишу на php, чтоб понятно было, что я хочу)
$name=value(user_name); // то, что ввели в имя
$pass=value(user_password); // то, что ввели в пароль
$md5name=md5($name);
$md5pass=md5($pass);
$string=md5("случайная_строка".$md5name.$md5pass);
// полученную строку $string можно смело отправлять серверу на сравнение со сгенерированной у меня.
|
Что мне для этого нужно? Буду рад любому мнению на этот счет. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 14:48)
| | Можно, а вопрос - зачем? Это у вас скрытая каптча? | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 14:48)
| | Это вам нужна функция на Javascript'e - аналог PHP-преобразованию md5.
Смотрите, например, код этой функции здесь - я сам не проверял её, но почитайте там комменты. | |
|
|
|
|
|
|
|
для: PAT
(08.07.2009 в 15:01)
| | не легче просто юзнуть аякс? | |
|
|
|
|
|
|
|
для: PAT
(08.07.2009 в 15:01)
| | Не понятно. Человек генерирует на сервере случайное число. Случайное он хочет сгенерировать и на клиенте. И что он будет сравнивать? | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 15:09)
| | Нет, конечно же используется число сгенерированное на сервере. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 15:17)
| | Тогда подставляйте его на сервере в скрытое поле перед выводом формы, а на клиенте вам ничего генерировать не надо. Иначе это уже не сравнение, а отгадывание. | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 15:19)
| | Конечно, оно же не зря пришло скрытым полем. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 15:22)
| | Ну а к чему тогда шум подняли? ) То что сгенерировали на сервере, то и отправляете клиенту, и при получении формы от клиента, сравниваете. | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 15:25)
| | Вот тут почитал, и решил узнать поподробнее. Нет так уж это просто. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 15:29)
| | Вот ваш вопрос:
а) После нажатия на кнопку хочу чтоб не вводимые данные отправлялись, а одна строчка, сгенерированная до посыла на сервер....
То бишь надо полагать вы ее генерируете на клиенте.
б) полученную строку $string можно смело отправлять серверу на сравнение со сгенерированной у меня.
И каким образом две независимо сгенерированные велечины будут гарантированно равными? Что вы пытаетесь сделать? Релиз к приведенной ссылке? | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 15:35)
| | >То бишь надо полагать вы ее генерируете на клиенте.
Да
>Что вы пытаетесь сделать? Релиз к приведенной ссылке?
Да | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 15:42)
| | Значит занимаетесь глупостями. Что я еще могу сказать. Величины случайно сгенерированные на сервере и на клиенте, могут быть равны также чисто случайно, а значит плакал ваш клиент - вместо защиты (которую надо полагать вы строите) вы создаете автомат по производству мата в ваш адрес. | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 15:46)
| | Да с чего вы взяли что они разные?
Перед тем как послать форму я на сервере генерю число, сохраняю его в сессию(а еще лучше в базу, вместе с IP), и отправляю скрытым полем в форму. Дальнейшие операции происходить будут уже с тем числом, которое пришло клиенту вместе с формой.
p.s.Больше волнует, что я еще не разу не брался учить JavaScript, так что придется дольше заниматься реализацией, чем я мог предположить. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 15:56)
| | А при чем тут JS? Почему вопрос "коряво" ставите?
PS. С того взял, что вы сами так описали процесс, а тем более подтведили его на мой вопрос. | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 16:00)
| | А чем на клиенте слрипты исполнять, чтобы "голые" данные не пошли к серверу? Я кроме php ни с чем не знаком. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 16:05)
| | У меня сейчас извилины выравняются....) При чем тут "голые данные" и то, о чем вы спрашивали выше? Проверка полей формы на заполняемость никак не связана с каким либо скрытым полем в фоме, и уж тем более проверкой случайных велечин. Да и в любом случае данные все равно проверять надо на сервере, включая и проверку на пустоту. | |
|
|
|
|
|
|
|
для: sim5
(08.07.2009 в 16:11)
| | вот здесь описаны преимущества и недостатки этой схемы. Кстати половина недостатков чушь. | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 16:24)
| | Там рассказывается совсем об ином, а не о том, что вы написали в вопросе своем, или правильней сказать, там описана суть, у вас же .... Там есть ссылка на скрипт автора, скачивайте и пользуйтесь. | |
|
|
|
|
|
|
|
для: PAT
(08.07.2009 в 15:01)
| | Ого, я думал для этого есть специальные функции. Чето мне перехотелось:) | |
|
|
|
|
|
|
|
для: Рома
(08.07.2009 в 15:13)
| | Вы можете ответить как у вас будет происходить сравнение, если две величины генерируются случайным образом на разных компьютерах? Вы ведь так описали процесс. И чего вы ожидаете от такого сравнения? | |
|
|
|