Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Продвинутая регистрация с подтверждением почты

UP! Скрипты были переделаны, а также были убраны дырки в коде. Надеюсь.
 
UP! Скрипты были переделаны, а также были убраны дырки в коде. Надеюсь.
Вместо подавления ошибок через @, лучше полностью убрать их показ через error_reporting(0);
$_POST['email'] не фильтруется.
Лучшей практикой будет использовать подготовленные sql выражения, http://ru2.php.net/manual/ru/mysqli.prepare.php - драйвер самостоятельно обезопасит данные.
 
Вместо подавления ошибок через @, лучше полностью убрать их показ через error_reporting(0);
$_POST['email'] не фильтруется.
Лучшей практикой будет использовать подготовленные sql выражения, http://ru2.php.net/manual/ru/mysqli.prepare.php - драйвер самостоятельно обезопасит данные.
C error_reporting(0); - я понял, но в этом коде я не буду менять @ на данную функцию. Поскольку это паб, если надо - сами пускай сделают. Ибо нефиг сидеть на "халяве". По поводу фильтра не понял.
Ну а если не взирать на выше упомянутые "недостатки", это уже не говнокод? Или всё еще он?
Забыл mysqli_real_escape_string();
 
Последнее редактирование:
C error_reporting(0); - я понял, но в этом коде я не буду менять @ на данную функцию. Поскольку это паб, если надо - сами пускай сделают. Ибо нефиг сидеть на "халяве". По поводу фильтра не понял.
Ну а если не взирать на выше упомянутые "недостатки", это уже не говнокод? Или всё еще он?
ПОНЯЛ ОШИБКУ!!! Забыл mysqli_real_escape_string();
Если кодер хороший - он хороший везде.
 
Вот я все вроде правильно настроил а когда проверяю создаю новый Ак и не выходит письмо чтобы вы пиришли на почту чтобы подвирдить свою почту
 
на счёт количество символов в пароле, можно сделать вот так preg_match("/\A(\w){6,20}\Z/", $_POST['password])
 
на счёт количество символов в пароле, можно сделать вот так preg_match("/\A(\w){6,20}\Z/", $_POST['password])
Я знаю, также можно и с логином. А также ограничить символы, которые можно использовать.
Вот я все вроде правильно настроил а когда проверяю создаю новый Ак и не выходит письмо чтобы вы пиришли на почту чтобы подвирдить свою почту
Напишите конфиг(с 10 по 21 строку). Также если Вы работаете на денвере, то вся почта сохраняется ПУТЬ_К_ДЕНВЕРУ\Denwer\tmp\!sendmail. Если же на хостинге, то скорее всего вы не создали почту.
Скоро, возможно, допишу авторизацию и еще загрузку скину. Что-то на подобие мини-лк
 
А если у меня отсутствует chek_reg?
 
Написано интересно. Но вот что меня волнует.
Зачем писать
`id` int(11) NOT NULL AUTO_INCREMENT,
если после мы выставляем
AUTO_INCREMENT=0

Не вижу смысла в использовании двойного хэширования с добавлением соли для такой не критичной вещи, как $validate. Лишняя трата сил. Используйте просто $validate = md5($login.time()). Компактнее и понятнее в разы. А вот пароль лучше хэшировать не 1 раз, а 2, с добавлением чего-то особенного именно для этого юзера при 2м хэшировании (например ID или тот же time(), ну на крайняк ту же соль, если нет фантазии)

Делать отправку сообщений, то добавьте изменяемые шапки, у меня они выглядят так:
Код:
           # шапки
            $headers .= "Content-type: text/html; charset=utf-8\r\n";
            # дополнительные шапки
            $headers .= "From: IA | MailTester <[email protected]>\r\n";
            $headers .= "Reply-To: [email protected]\r\n";
            .........
            # отправка сообщения
            mail($to, $subject, $message, $headers);

Также может возникать случай, когда паря попытался зарегаться, потом забыть про письмо, а через например месяц попытаться зарегаться снова, но в базе уже есть такой юзер, хоть и не активированный. Так что validate надо ставить по дефолту 0 и обдумывать как реализовывать.

Написал бы больше. Но почти все это есть в гугле
 

Поделиться этой страницей

Назад
Верх