if($_POST['password'] !== $_POST['confirm_password']) {
echo 'Пароли не совпадают';
}
else {echo 'Пароли совпадают';}
Выводится 'Пароли не совпадают' в любом случае. из-за чего это может быть?
Спустя 2 минуты, 48 секунд (13.03.2011 - 21:43) neadekvat написал(а):
Потому что id не передаются. Передаются name.
Вам бы html подучить, а уж потом в php.
Вам бы html подучить, а уж потом в php.
Спустя 8 минут, 13 секунд (13.03.2011 - 21:51) l@pteff написал(а):
Цитата |
Потому что id не передаются. Передаются name. Вам бы html подучить, а уж потом в php. |
name как и id имеют те же значения: "password" и "confirm_password"
Спустя 8 минут, 52 секунды (13.03.2011 - 22:00) neadekvat написал(а):
Тогда сделайте print_r($_POST) и покажите здесь.
И замените !== на !=, так, для успокоения совести.
И замените !== на !=, так, для успокоения совести.
Спустя 10 минут, 50 секунд (13.03.2011 - 22:11) l@pteff написал(а):
я изменил код на такой:
в оба поля вбил по 8 единиц. Выводится:
if($_POST['password'] != $_POST['confirm_password']) {
print_r($_POST);
}
else {echo 'Пароли совпадают';}
в оба поля вбил по 8 единиц. Выводится:
Цитата |
Array ( [confirm_password] => 11111111 ) |
Спустя 11 минут, 55 секунд (13.03.2011 - 22:23) neadekvat написал(а):
А теперь посмотрите на свою форму. Вы уверены, что поля имеют разные имена? Быть может, все они называются confirm_password?
Спустя 9 минут, 34 секунды (13.03.2011 - 22:33) sergeiss написал(а):
Цитата (neadekvat @ 13.03.2011 - 23:23) |
А теперь посмотрите на свою форму. Вы уверены, что поля имеют разные имена? Быть может, все они называются confirm_password? |
Вопрос вполне логичный
И даже более того, я предлагаю автору темы показать код формы. Возможно, у него там просто какой-то косяк.
Спустя 4 минуты, 23 секунды (13.03.2011 - 22:37) neadekvat написал(а):
Цитата (sergeiss @ 13.03.2011 - 19:33) |
И даже более того, я предлагаю автору темы показать код формы. Возможно, у него там просто какой-то косяк. |
Ну, вот.. Теперь есть большой шанс, что автор, вместо того, чтобы посмотреть самому, тупо скинет нам.
Спустя 7 минут (13.03.2011 - 22:44) l@pteff написал(а):
Полностью эти два поля выглядят вот так:
<label>Пароль</label>
<input name="password" id="password" type="text" value="Введите пароль" size="36" class="required" title="Пожалуйста, введите Ваш пароль" onKeyDown="this.type='password'" onBlur="if(this.value == '') { this.value='Введите пароль'; this.type='text';}" >
<label>Повторите пароль</label>
<input name="confirm_password" id="confirm_password" type="text" value="Повторите пароль" id="confirm_password" size="36" class="required" title="Пожалуйста, повторите Ваш пароль" onKeyDown="this.type='password'" onBlur="if(this.value == '') {this.value='Повторите пароль'; this.type='text'; }" >
Спустя 3 минуты, 24 секунды (13.03.2011 - 22:47) neadekvat написал(а):
Чтд.
Спустя 44 секунды (13.03.2011 - 22:48) imbalance_hero написал(а):
l@pteff
Давай код обоих страниц сюда. И страницы HTML, и страницы обработчика. Сейчас заругаем тебя, но ошибку найдем!
Зачем одно и то же писать дважды? У тебя id дважды написано
Давай код обоих страниц сюда. И страницы HTML, и страницы обработчика. Сейчас заругаем тебя, но ошибку найдем!
Зачем одно и то же писать дважды? У тебя id дважды написано
Спустя 21 минута, 32 секунды (13.03.2011 - 23:10) l@pteff написал(а):
хорошо, вот этот html-фрагмент формы:
Небольшой кусок JS к форме:
Ну и собственно обработчик conf_passw.php:
<label>Пароль</label>
<input name="password" id="password" type="text" value="Введите пароль" size="36" class="required" title="Пожалуйста, введите Ваш пароль" onKeyDown="this.type='password'" onBlur="if(this.value == '') { this.value='Введите пароль'; this.type='text';}" >
<label>Повторите пароль</label>
<input name="confirm_password" id="confirm_password" type="text" value="Повторите пароль" size="36" class="required" title="Пожалуйста, повторите Ваш пароль" onKeyDown="this.type='password'" onBlur="if(this.value == '') {this.value='Повторите пароль'; this.type='text'; }" >
<span id="mes_confirm" class="message"> </span> <!--span для вывода сообщения о соответствии полей-->
Небольшой кусок JS к форме:
$('#confirm_password').blur(function(){
var znach_cpassw=$('#confirm_password').val();
$.post('../php/conf_passw.php', {confirm_password:znach_cpassw}, function(data){
if (data.length>0){
$('#mes_confirm').html(data).css('color', 'red').fadeIn();
}
})
});
$('#confirm_password').focus(function(){
$('#mes_confirm').fadeOut();
});
Ну и собственно обработчик conf_passw.php:
if($_POST['password'] != $_POST['confirm_password']) {
echo 'Пароли не совпадают';
}
else {echo 'Пароли совпадают';}
Спустя 3 минуты, 7 секунд (13.03.2011 - 23:13) neadekvat написал(а):
Мне вот что интересно. Если ж имена у полей разные, то как при принт_р получился такой результат:
Array ( [confirm_password] => 11111111 )
Спустя 16 минут, 23 секунды (13.03.2011 - 23:29) Trianon написал(а):
AJAXом уходит поле всего одно. {confirm_password:znach_cpassw},
Смысл сравнивать на серверной стороне?
Смысл сравнивать на серверной стороне?
Спустя 1 минута, 52 секунды (13.03.2011 - 23:31) imbalance_hero написал(а):
l@pteff
form.submit(); , это пояснение, как надо, а вообще сделай нормально через кнопку сабмита, без JS извратов.
form.submit(); , это пояснение, как надо, а вообще сделай нормально через кнопку сабмита, без JS извратов.
Спустя 2 минуты, 23 секунды (13.03.2011 - 23:33) neadekvat написал(а):
Тю.. я и не заметил аякса..
Спустя 13 минут, 24 секунды (13.03.2011 - 23:47) l@pteff написал(а):
Trianon, отправил аяксом оба поля и действительно проверка теперь проходит верно.
огромное спасибо всем за помощь!
$('#confirm_password').blur(function(){
var znach_passw=$('#password').val();
var znach_cpassw=$('#confirm_password').val();
$.post('../php/conf_passw.php', {password:znach_passw, confirm_password:znach_cpassw}, function(data){
if (data.length>0){
$('#mes_confirm').html(data).css('color', 'red').fadeIn();
}
})
});
огромное спасибо всем за помощь!
Спустя 1 час, 4 минуты, 18 секунд (14.03.2011 - 00:51) Trianon написал(а):
Если уж Вы диалог аутентификации AJAXом устроили, то передавали бы не открытые пароли, а отклик по CRAM (challenge-response authentication method) технологии. Хоть какое-то оправдание, да и безопасность пожестче.