|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2009, 19:15 | #1 |
Регистрация: 08.01.2009
Сообщений: 6
|
Скрипт регистрации
Все привет! Нужна помощь!
Есть идея написать скрипт регистрации пользователей на сайте. При регистрации в базу данных MySQL записывается: Логин, Пароль, E-mail. Форма ввода данных состоит из полей: 1) Логин($name) 2) Пароль($pass) 3) Подтверждения пароля($pass2) 4) E-mail($email) 5) Кнопка($submit) Ниже приведен код формы: Код HTML:
<form action="index.php" method="post"> Логин:<br> <input type="text" maxlength="25" name="name" size="20"><br> Пароль:<br> <input type="password" maxlength="25" name="pass"size="20"><br> Подтверждения пароля:<br> <input type="password" maxlength="25" name="pass2" size="20"><br> E-mail:<br> <input type="text" maxlength="25" name="email" size="20"><br> <input name="submit" type="submit" class="submit" value="Голосовать"> </form> Теперь надо проверить данные: PHP код:
Вопрос №2 От чего надо защищать формы? Вопрос №3: Как грамотно написать сам код и обработчик ошибок? |
03.03.2009, 01:23 | #2 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
2) Если вы будете использовать БД, то от sql-иньекций.
3) Для этого нужно проверить по пунктам - Всё ли обязятельные поля заполнены и имеют корректную длинну if (strlen($name)<6 or strlen($name)>30) die("Ошибка - некоретная длинна"); - Проверить, совпадают ли пароли И первый пароль не пустой if ($pass!=$pass2 or $pass=='') die ("ошибка - пароли не совпадают"); - Отсечь все символы, которые могли б способствовать иньекции, включая пробел. - Проверить в БД, есть ли такой пользователь (по полю name) SELECT FROM userv WHERE name="$name" - Если есть, добавить INSERT INTO users VALUES(... Вот собса и всё)
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
03.03.2009, 05:54 | #3 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 62
|
Dj_smart, про капчу забыл сказать
|
03.03.2009, 13:08 | #4 |
Регистрация: 08.01.2009
Сообщений: 6
|
|
03.03.2009, 14:01 | #5 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
Есть некая база, так вот иньекция это внесение злоумышленником в базу нежелательной записи, которая дает ему права администатора/удаляет то, что он хотел/вставляет подобные записи.
На примере: SELECT FROM users WHERE name="$name" AND password="$pass" всё хорошо, скрипт примёт юзера, если найдет такую запись. НО! Если например вместо $pass в поле ввести sdd" OR "1 то запрос будет таким SELECT FROM users WHERE name="sdd" OR "1" AND password="$pass" (в MySql единица считается правдой) и ЛЮБОГО ПОЛЬЗОВАТЕЛЯ СКРИПТ ПУСТИТ. Просто неразрешив пользователю употреблять пробелы, кавычки (" ' `), т.е разрешив только A..z, _ , 0..9 мы отсечем такие возможности.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг |
03.03.2009, 15:31 | #6 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 62
|
|
03.03.2009, 16:48 | #7 |
Регистрация: 08.01.2009
Сообщений: 6
|
To Dj_smart, FANATID
Спасибо вам! Теперь я приблизительно понял! После ваших объяснений у меня получилось следующие: PHP код:
PHP код:
Какие ещё будут замечания? Спасибо вам за помощь!!! |
09.03.2009, 23:17 | #8 |
beneto.ru
Форумчанин
Регистрация: 09.03.2009
Сообщений: 174
|
PHP код:
Свой код замени на: PHP код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
мой сайт взломали и в коды скриптов добавили вот этот скрипт. Что за скрипт? | nsbox | JavaScript, Ajax | 9 | 21.01.2010 18:19 |
Реализация регистрации | Sanek777 | Безопасность, Шифрование | 1 | 08.11.2008 17:46 |
Форма регистрации | Esenin | Фриланс | 8 | 31.05.2008 18:16 |
запрет повторной регистрации | bllem | PHP | 12 | 27.11.2006 10:24 |