Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сверить 2 поля.
 
 автор: frisst   (08.01.2010 в 01:56)   письмо автору
 
 

Я делаю регистрацию, и мне нужно обработать 2 поля, это "passw" и "passw_re"
сперва я проверяю на наличие записей в двух полях:

if (! strlen($_POST['passw'])) {print 'Вы не ввели <b>пароль</b>!<br>';}
if (! strlen($_POST['passw_re'])) {print 'Вы не <b>поттвердили пароль</b>!<br>';}


потом я проверяю количество введённых символов:

if (isset($_POST['passw']) && (strlen($_POST['passw']) <6 )) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов!<br>';}
if (isset($_POST['passw']) && (strlen($_POST['passw']) >12 )) {print '<b>Пароль</b> не может состоять больше чем из <b>12</b> символов!<br>';}
if (isset($_POST['passw']) && (strlen($_POST['passw_re']) <6 )) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов!<br>';}
if (isset($_POST['passw']) && (strlen($_POST['passw_re']) >12 )) {print '<b>Пароль</b> не может состоять больше чем из <b>12</b> символов!<br>';}


а теперь как мне сверить введённые данные в двух полях, но при условии, что оба поля должны быть заполнены(если одно из них, или они оба не заполнены, то проверку на сходство не проводить, и не выдовать ошибку о том, что они не схожи.)

Я пытался написать так:

if (strlen($_POST['passw']) != (strlen($_POST['passw_re']) && (isset($_POST['passw']) > 0 &&  (isset($_POST['passw_re']) > 0 )))) {print '<b>Пароли</b> не совпадают!<br>';}


но не получается... он не выдаёт ошибку, что поля не совпадают...

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 02:44)   письмо автору
 
   для: frisst   (08.01.2010 в 01:56)
 

if (! isset($_POST['passw'])){print 'Вы не ввели пароль';}
if (isset($_POST['passw']) && ((strlen($_POST['passw']) <6 ) || (strlen($_POST['passw']) >12 ))) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов и больше чем из 12!';}
if ($_POST['passw'] !== @$_POST['passw_re']) {print '<b>Пароль</b> не совпадает с подтверждением!';}
Можно, конечно, вначале проверить, введено ли подтверждение пароля, но зачем? Достаточно отсутствие совпадения.

  Ответить  
 
 автор: frisst   (08.01.2010 в 02:46)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 02:44)
 

Спасибо вам огромное... сократили код вдвое и сделали более грамотным! =)
Прислушаюсь к вашему совету!

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 02:49)   письмо автору
 
   для: frisst   (08.01.2010 в 02:46)
 

надеюсь, там нет грамматических ошибок и опечаток и оно заработает с первой попытки.

  Ответить  
 
 автор: frisst   (08.01.2010 в 02:51)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 02:49)
 

да работает!..
то что мне и надо!
извините, хотел у вас спросить,

if ($_POST['passw'] !== @$_POST['passw_re']) {print '...';}


для чего сабака нужна? чтобы на будующее знать...

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:02)   письмо автору
 
   для: frisst   (08.01.2010 в 02:51)
 

сабака экранирует ошибки))) фу на неё)

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:01)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 02:49)
 


<?php
if (! isset($_POST['passw']))
    print 
'Вы не ввели пароль';
else{
    if((
strlen($_POST['passw']) <) || (strlen($_POST['passw']) >12 ))
        print 
'<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов и больше чем из 12!';
}else{
    if (
$_POST['passw'] !== @$_POST['passw_re']) 
        print 
'<b>Пароль</b> не совпадает с подтверждением!';
    else{
        
//мегаинструкции=)
    
}
}
?>


Надеюсь, тут тоже нет, а то залипаю=)

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:20)   письмо автору
 
   для: Boeing   (08.01.2010 в 03:01)
 

да, через иф-елсе более правильно, впринципе. В моем случае он может выдать сразу несколько предупреждений. Например, при пустом пароле, выдаст "Вы не ввели пароль. Пароль не может быть меньше 6 и больше 12 символов". Нельзя сказать, что это плохой вариант. Но вобщем-то, пустить через иф-элсе может быть и лучше (однако я в своих скриптах проверяю именно в таком духе, как показал, что дает возможность сразу вывести все ошибки, если не соблюдено несколько условий).
Что касается собаки, то она исключает необходимость проверять наличие $_POST['passw_re']. Если $_POST['passw_re'] нет, то без собаки выскочит ошибка. Но нам-то все равно, есть или нет, нам нужно, чтоб совпало с паролем (наличие которого проверяется в первом условии). Поэтому, ставим собаку. Если $_POST['passw_re'] нет, благодяря собаке ошибка не вискочит, но сравнение будет идти с фальшивым условием. Это все равно, как с пустой строкой. Сравнение НЕПУСТОГО пароля с пустой строкой приведет к сообщению о несовпадении пароля и подтверждения.
Вроде доступно объяснил... Если нет - смотрим справочник.

Посмотрел более внимательно на свой код, заметил пару косяков. Нужно так:
if (! isset($_POST['passw'])){print 'Вы не ввели пароль';}
if (strlen(@$_POST['passw']) <6 || strlen(@$_POST['passw']) >12 ) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов и больше чем из 12!';}
if (@$_POST['passw'] !== @$_POST['passw_re']) {print '<b>Пароль</b> не совпадает с подтверждением!';}

Или так:

if (! isset($_POST['passw'])){
print 'Вы не ввели пароль';
}else if (strlen($_POST['passw']) <6 || strlen($_POST['passw']) >12 ) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов и больше чем из 12!';
} else if ($_POST['passw'] !== @$_POST['passw_re']) {print '<b>Пароль</b> не совпадает с подтверждением!';
}
(по варианту от Boeing)

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:38)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:20)
 

Ну, на вкус и цвет...=) я предпочитаю грузить юзера поэтапно, а кое-в-каких местах вообще return'ом пользуюсь: ну не всю же логиику хакерам рассказывать, верно?:) Логика программная - это вообще вещь у каждого индивидуальная))) Когда нам в своё время давали задание сделать капчу и сгенерировать для неё случайную строку,... сразу было понятно, кто у кого списывал=)))... ибо у каждого своё мышление. Ещё пример, более простой, может быть: дано слово root. Надо сделать так, чтобы оно было написано с заглавной буквы. Те, кто не знал про ucfirst(), не сдались=))) они разобрали строку на части, выдернули первую букву... ну и т.д. Зато каждый показал, как можно "создать" встроенную функцию ucfirst() .=))) Была и куча заданий по воссозданию уже существующих встроенных функций... Но справились все=) и каждый по-своему)))

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 03:28)   письмо автору
 
   для: Boeing   (08.01.2010 в 03:01)
 

>if (! isset($_POST['passw'])) print 'Вы не ввели пароль';

- не совсем корректно вы не находите?
Поле может существовать но быть пустым.

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:35)   письмо автору
 
   для: tvv123456   (08.01.2010 в 03:28)
 

нахожу. Если оно пустое, будет выдано сообщение, что оно короче 6 символов ;)
Вообще, тут, наверное, лучше так проверять:
if (! @$_POST['passw']) - если его нет, или оно пустое...
Тут же не стоит задача сделать идиальный код. Мы между делом даем подсказки. Не мудрено, что они не самые идиальные. Но, по крайней мере, это рабочие варианты.

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 03:37)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:35)
 

хотя и проверяеться количество символов, но думаю немного получше будет:

if (empty($_POST['passw']))  print 'Вы не ввели пароль';

.

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:40)   письмо автору
 
   для: tvv123456   (08.01.2010 в 03:37)
 

чем if (! @$_POST['passw']) плох?

  Ответить  
 
 автор: frisst   (08.01.2010 в 12:44)   письмо автору
 
   для: tvv123456   (08.01.2010 в 03:37)
 

Я не стал использовать функцию empty() вместо strlen() , чтобы точнее провериль поле ввода.
Т.К. насколько я знаю, одна строка символов 0 имеет значение false согласно правилам логических вычислений PHP. Это означает, что если ктото напечатает в поле "0", элемент $_POST['поле'] с содержанием "0", empty($_POST['поле']) имеет значение true, что с точки зрения проверки корректности заполнения формы является неправильным...

правильно я думаю или нет?

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:40)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:35)
 

про empty - в десятку!=)))

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:41)   письмо автору
 
   для: Boeing   (08.01.2010 в 03:40)
 

а все таки, чем if (! @$_POST['passw']) плох?

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:42)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:41)
 

я про тот, который вместо isset, а if (! @$_POST['passw']) , по-моему, ничем))) просто кто как привык)))

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:46)   письмо автору
 
   для: Boeing   (08.01.2010 в 03:42)
 

на счет isset - да. Тут и я и ты пошли по линии, изначально заданной автором топика :)
Я просто сайт верстаю, иногда поглядывая на форум - внимание рассеяно.

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:49)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:46)
 

да я воще уже хочу три часа пойти спать))) ща сморю фильм))) Я всегда практически просо переписываю по-своему то, что мне дали, ну ты понял))) ну, чтоб работало. А более детальное рассмотрение - это уже тема отдельная.

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 03:47)   письмо автору
 
   для: Boeing   (08.01.2010 в 03:42)
 

Я дак лично if (! @$_POST['passw']) - вообще ниразу не встречал и не представляю что это значит

Я дак вообще вот как делаю:

<?
$pass 
mysql_escape_string(trim($_POST['pass1']));
$pass2 mysql_escape_string(trim($_POST['pass2']));
.....................
if(
$pass!=$pass2) {$error 1$dis .="-Пароли не совпадают<br>";}
.....................
if (!
preg_match ("|^[0-9A-Za-z]{6}[0-9A-Za-z]*$|",$pass)) {$error=1;
$dis .= "-В поле \"пароль\" нельзя использовать кириллицу, и пароль должен содержать больше 6 символов!<br>";}
..................



Кстати вроде из php6 убрали mysql_escape_string()(видел где-то на этом форуме, а сейчас не могу найти темы), а что-нибудь анологичное там есть?

  Ответить  
 
 автор: Boeing   (08.01.2010 в 03:53)   письмо автору
 
   для: tvv123456   (08.01.2010 в 03:47)
 

завтра с утра проанализирую))) а пока бросилось mysql_escape_string. Пииши лучше mysql_real_escape_string, потому что первого в 6 версии уже не будет, вроде, а переписывать всё, я думаю, тебе бы вряд ли хотелось.

Я делаю всё через фильтровальную функцию, посколько я жуть-ленивый))) писать всё по сто раз)))

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:59)   письмо автору
 
   для: Boeing   (08.01.2010 в 03:53)
 

я делаю так:
function check(&$item, $key) {/
    if (is_array($item)){
        array_walk($item, 'check');// пока не доберемся до строки
    }else{
        // всяко-разно, смотря, что делать с данными планируется
        // предположим, что их писать в базу, тогда так:
        if (get_magic_quotes_gpc()) {
            $item = stripslashes($item);
        }
        // Если переменная - число, то экранировать её не нужно
        // если нет - то окружим её кавычками, и экранируем
        if (!is_numeric($item)) {
            $item = "'" . mysql_real_escape_string($item) . "'";
        }


        $item=trim($item); 
    }
}


@array_walk($_GET, 'check');


И весь ввод обработан одним махом

  Ответить  
 
 автор: Boeing   (08.01.2010 в 04:08)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:59)
 

красиво) ладно я на боковую=) а то пятый час утра уже=)))

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 03:53)   письмо автору
 
   для: tvv123456   (08.01.2010 в 03:47)
 

А зачем их mysql_escape_string до внесения в базу? Если они не совпадают, записи не будет. Зачем тогда лишние движения? ;)
Да и зачем подтверждение mysql_escape_string? Сначала сравнить пароли, потом основной mysql_escape_string и в базу...
А на счет этого: if (! @$_POST['passw'])...
Копирайт ;)
Бери на вооружение, пока не запатентовал и не начал продавать лицензии ;)

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 04:07)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:53)
 

>А зачем их mysql_escape_string до внесения в базу?
Согласен не нужно их вообще, так как регулярка все равно кавычки не пропустит, а дальше все хешируеться, так что действительно лишние телодвижения, просто что-то автоматически получилось написать.

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 04:27)   письмо автору
 
   для: tvv123456   (08.01.2010 в 04:07)
 

кстати, $item=trim($item); нужно сделать до escape_string. Это я просто собирал 2 функции в одну и неправильно местами поставил (у меня проверка ввода идет отдельно от mysql_real_escape_string. Блок с mysql_real_escape_string вызывается только тогда, когда нуно писать в базу).

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 12:31)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 03:53)
 

if (@$_POST['passw']) то же самое, что if (!empty($_POST['passw'])), зачем лишние ! ставить?

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 13:10)   письмо автору
 
   для: neadekvat   (08.01.2010 в 12:31)
 

это неакадемический финт. К нему еще адаптироваться нужно ;)

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 12:30)   письмо автору
 
   для: tvv123456   (08.01.2010 в 03:47)
 

Либо я че-то путаю сейчас, либо если я введу такой пароль:
d'arta - вроде как шесть символов, но ведь вы их сначала экранируете - d\'arta - а потом длину проверяете. Итого у меня уже семь символов, а я буду в десятый раз печатать d'arta и не врубаться, где скрипт проверки нашел седьмой символ.
Да и вообще нахрен пошлют, типа низя такой пароль. А может я хочу, какое вам дело, будут в пароле кавычки или нет?
trim - еще ладно, но mysql_real_escape_string.. Пароли принято хранить в хэшированном виде. Так проверяйте на длину и хэшируйте :)

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 13:09)   письмо автору
 
   для: neadekvat   (08.01.2010 в 12:30)
 

я привел обобщенный пример проверки. Другие люди привели свои примеры, которые применяют они. Может им вообще не нужно хранить пароли в базе? Тут реч уже зашла не столько о паролях, сколько о методах проверки ввода как такового.
Что же касается трим и ескейпстринг в моем примере, то я указал, что это вариант для записи данных в базу (данных вообще). О том, что ескейпстринг должен применяться ПОСЛЕ проверки пароля, ы уже тоже тут переписывались.
Так что, кто тусовался тут ночью, нормально друг друга понял и обменялся мнениями. Если кто-то из пришедших спустя несколько часов, не въехал - мы не виноваты :)
Читай внимательно. Мы начали с конкретного примера и перешли на обсуждение абстрактных идей.

  Ответить  
 
 автор: frisst   (08.01.2010 в 13:12)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 13:09)
 

Спасибо всем за советы, сейчас буду извлекать общий урок из всего этого.

  Ответить  
 
 автор: kosta_in_net   (08.01.2010 в 13:18)   письмо автору
 
   для: frisst   (08.01.2010 в 13:12)
 

думаю, все участники согласятся, что есть два хороших варианта (полцченных нами в ходе обсуждения):

if (! @$_POST['passw']){print 'Вы не ввели пароль';}
if (strlen(@$_POST['passw']) <6 || strlen(@$_POST['passw']) >12 ) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов и больше чем из 12!';} 
if (@$_POST['passw'] != @$_POST['passw_re']) {print '<b>Пароль</b> не совпадает с подтверждением!';}

Или так:

if (! @$_POST['passw']){
print 'Вы не ввели пароль';
}else if (strlen($_POST['passw']) <6 || strlen($_POST['passw']) >12 ) {print '<b>Пароль</b> не может состоять меньше чем из <b>6</b> символов и больше чем из 12!';
} else if ($_POST['passw'] != @$_POST['passw_re']) {print '<b>Пароль</b> не совпадает с подтверждением!';
}


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

  Ответить  
 
 автор: frisst   (08.01.2010 в 13:40)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 13:18)
 

Да на денвере, но скоро нужно выгружать в инет...
Но проверку я сам напишу.
вот только скажите пожалуйста(я всего не знаю пока), что мне нужно запрещать?
думаю символы <>/ сто процентов надо запретить?

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 13:54)   письмо автору
 
   для: frisst   (08.01.2010 в 13:40)
 

Зачем в пароле что-то запрещать? В пароле ничего запрещать не надо.
И вообще, к чему все эти проверки на длину и т.д. Пусть пароль будет такой, какой он хочет сам.
Логин - это уже другой вопрос, т.к. он будет выводиться в интерфейс.
Посмотрте задачу 21.

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 13:52)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 13:18)
 

> На проверку ввода на всякие иньекции пока можешь внимания не обращать
Что за хрень вы говорите?! Вы понимаете вообще, что человеку советуете? Надо с первого же дня учить писать грамотно, без дыр в безопасности, а вы советуете забить на дыры. Так человек и сейчас забьет, и когда будет серьезный проект делать

  Ответить  
 
 автор: frisst   (08.01.2010 в 14:16)   письмо автору
 
   для: neadekvat   (08.01.2010 в 13:52)
 

Ну да... в логине нужно ведь проверку делать? длина, отсутствие кирилицы, и спец-символов?
Верно я рассуждаю? И нужно ли ещё чтото запретить в логине?

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 14:33)   письмо автору
 
   для: frisst   (08.01.2010 в 14:16)
 

Чем вам мешает, например, крестик в логине? Если пользователь хочет каждый раз вводить этот спец символ - пусть вводят (правда, когда-то админил форум, где все поголовно наставили крестиков и всякой фигни, а потом начали плакать и просить убрать эти символы из логина)

Смотря для чего вы хотите использовать логин. На каких-то сайтах логин используется только для авторизации и имеется возможность ввести свое имя (а то и вообще обязательно), которое будет показываться другим пользователям. А на каких-то сайтах логин является также повсеместно выводимым идентификатором на фоне других пользователей (на форумах, например).
По логике - первый вариант надежнее, т.к. потенциальный брутфорсер не знает даже логина. А, пардон, пару логин+пароль брутить - это каким же дебилом надо быть, что собственно касатеся и программиста - надо пресекать возможность тысячу раз за секунду пробовать залогиниться.

На длину логин проверять конечно же надо, т.к. наверняка в базе есть ограничение на длину строки. Ну и чисто логически не может быть нормальным логин в 1-2 символа (я не говорю про имена людей, ведь есть Ян, Ю и тд)

  Ответить  
 
 автор: frisst   (08.01.2010 в 14:42)   письмо автору
 
   для: neadekvat   (08.01.2010 в 14:33)
 

Просто я слышал пару раз про инъекции, что надо запрещать символы, с помощью которых можно писать теги...
Просто про опасности я можно сказать вообще ни чего не знаю.

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 15:13)   письмо автору
 
   для: frisst   (08.01.2010 в 14:42)
 

При добавлении в базу никакие теги взломщику не помогут, главное не забывайте про mysql_real_escape_string()
При выводе из базы используйте htmlspecialchars()

  Ответить  
 
 автор: kosta_in_net   (09.01.2010 в 02:48)   письмо автору
 
   для: neadekvat   (08.01.2010 в 13:52)
 

о том, как сделать прверку, здесь уже обсуждалось. Я привел алгаритм быстрой и качественной проверки получаемых скриптом данных. Однако, это другая часть скрипта и непосредственно к проверке соответствия знечений отношения не имеет. Поэтому я писал, что пока на это можно не обращать внимания.

  Ответить  
 
 автор: Trianon   (09.01.2010 в 11:20)   письмо автору
13.1 Кб
 
   для: kosta_in_net   (09.01.2010 в 02:48)
 

Быстрой и качественной - говорите?
А вот у меня пароли по 25-30 символов.
Догадываетесь, что я говорю в адрес такого горе web-программиста, который мне предлагает уложиться в 12?

  Ответить  
 
 автор: neadekvat   (08.01.2010 в 13:50)   письмо автору
 
   для: kosta_in_net   (08.01.2010 в 13:09)
 

Читать внимательнее я бы советовал вам, ибо мой пост был обращен к другому человеку.

  Ответить  
 
 автор: kosta_in_net   (09.01.2010 в 02:42)   письмо автору
 
   для: neadekvat   (08.01.2010 в 13:50)
 

я взял на себя смелость ответить за всех участников обсуждения, так как к тому моменту все ушли спать, остался я один.

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 16:57)   письмо автору
 
   для: neadekvat   (08.01.2010 в 12:30)
 

Насчет mysql_real_escape_string я уже признал ошибку и про хеширование написал, а что касаеться пароля, то я устанавливаю в правилах, что пароль и логин может содержать только цифры и латинские буквы, конечно с точки зрения пароля это не совсем граммотно, но как я успел заметить: пользователи натыкают всякой хрени в пароль, а потом забывают и далеко не на всех сайтах я могу позволить восстанавливать пароль на e-mail, поэтому если будет куча "забывчевых" пользователей, то сэтим могут возникнуть проблемы

  Ответить  
 
 автор: Trianon   (08.01.2010 в 17:16)   письмо автору
 
   для: tvv123456   (08.01.2010 в 16:57)
 

А есть существенная корреляция между нетривиальными символами в пароле и числом заявок на восстановление доступа?

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 17:59)   письмо автору
 
   для: Trianon   (08.01.2010 в 17:16)
 

Конечно количество забывших пароль уменьшаеться не в разы, но все-таки на примерах 2-х практически идентичных сайтах(пароль можно было восстановить только при обращении к администратору) разница была видна в отношении количество зарегистрированных пользователей и количество забывших пароль

  Ответить  
 
 автор: Trianon   (08.01.2010 в 18:58)   письмо автору
 
   для: tvv123456   (08.01.2010 в 17:59)
 

А еще мне интересно, на что рассчитывает человек, не указавший е-маил, забывший пароль и претендующий на восстановление доступа к эккаунту?
Какие аутентифицирующие аргументы он выдвигает?

  Ответить  
 
 автор: tvv123456   (08.01.2010 в 20:17)   письмо автору
 
   для: Trianon   (08.01.2010 в 18:58)
 

>Какие аутентифицирующие аргументы он выдвигает?
Ну, например, общение через внутреннию почту веб-мани(вмид указываеться при регистрации)(получить доступ к вмид гораздо сложнее чем доступ к e-mail).
Сейчас хочу разобраться как сделать автоматическое восстановление пароля с отправкой сообщения на кипер, так чтобы данные по дороге не перехватили

  Ответить  
 
 автор: Trianon   (09.01.2010 в 02:22)   письмо автору
 
   для: tvv123456   (08.01.2010 в 20:17)
 

А WMID подтверждается при регистрации?

  Ответить  
 
 автор: tvv123456   (09.01.2010 в 02:54)   письмо автору
 
   для: Trianon   (09.01.2010 в 02:22)
 

Он подтверждаеться при автоматическом переводе через merchant, если введеный вмид расходиться с тем с которого пользователь сделал платеж(ввел деньги в систему), то администратору высылаеться уведомление и дальше в переписке по e-mail устанавливаеться причина этого.
Но чаще всего я делаю определение вмида автоматически при первом вводе средств и в дальнейшем клиент может выводить деньги только на кошельки этого вмида

  Ответить  
 
 автор: kosta_in_net   (09.01.2010 в 02:59)   письмо автору
 
   для: tvv123456   (09.01.2010 в 02:54)
 

чё-то тема совсем ушла от темы :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования