|
|
Модератор форума: LightInDarkness |
Форум Web раздел Сайты / WWW для эмуляторов [Регистрация] Чистенькая страничка (Обновлено: 25.05.2013) |
[Регистрация] Чистенькая страничка |
Как то давно выкладывал страничку регистрации, решил довести до ума. * Простая. * Кроссбраузерная. * С использованием ajax.(регистрация без перезагрузки страницы) * Довольно симпатичная на взгляд. * Оочень простой код.( php 5.0 +) * Присутствует примитивная капча. Первая версия Список изменений(1 обновление): * Смена кнопки. * Возможность выбора несколько серверов. * Немного откорректирована капча, теперь каждый раз при получение ответа, она меняется(от любителей часто тыкать по кнопкам) Список изменений(2 обновление): * Добавлена возможность проверки занятости e-mail адреса. Настройка в конфиге. * Не большие корректировки касательно логики... * Добавлена возможность отсылать письмо с информацией(регистрационными данными) на почту(настройка в конфиге) * Добавлена возможность написать описание сайта -> конфиг. [b]Скачиваем: битбукет PS: Полностью мой код, подборка(сама черненькая форма была взята откуда то из зарубежного веб-сайта, не помню откуда и чуть допилина) дизайна тоже полностью моя.
Панки живут вечно!
|
я бы подключил нормальную библиотеку, которая сама работает с протоколами почты.. ибо mail блочится многими серверами. На гугл письма у меня не приходили, например. Ну и есть ещё фильтр для мэйла..
Код preg_match("/^[a-zA-Z0-9_]+$/", $_POST['account']) А ещё в логине есть . и @ И нахрен капчу в куки пихать? и она очень криво реализована, ибо при открытие нескольких окон регистрации будет работать только последняя капча.. что заранее глупо...
DumpMe v1.0 - система автоматического переноса персонажей
Вышла в свет первая стабильная версия. Писать в скайп - razart8 |
RazArt, Еще один, а ты знаешь что если в логине будет знак @, то клиент будет считать это за мыло, и тебя кинет на батлнет, начнется обновление.
Php почта(функция mail) отправляется абсолютно на все сервера. Позже я реализую еще один способ, через smtp. А зачем пользователю открывать несколько страниц регистрации? Зато это избавит от поточно определения капчи. 1 - браузер, 1 капча.
Панки живут вечно!
Сообщение # 3 написано 25.05.2013 в 18:43
|
Цитата (CraZyRock) 1 - браузер, 1 капча. И прям нужное, беззащитное число внутри куки. То же самое, что и отсутствие капчи. Рай для спамеров. Используй сессию. Она будет хранить сгенерированное число на сервере, а отдавать браузеру id сессии в куке. Даже если будет сессия, то такая капча легко распознаётся ботами по трафарету. Нужен лишний изврат ) Полосочки перечёркивающие символы, смена цвета, лишние символы на фоне и т.п. Тогда уже придётся использовать человека для определения капчи и сервисы на подобии антикапчи. И, это... на линуксе не полностью работает. Проверь регистр имён и пути. |
И еще раз я скажу, эта капча лишь для формальности. Ни один спамер(адекватный и опытный) не будет спамить базу аккаунтов, не имеет не малейшего смысла.
Цитата эквивалентно (в данном контексте) Цитата foreach($server as $i=>$key) { echo "<option value=$i>".$key['name']."</option>"; } Добавлено (26.05.2013, 12:45) Цитата preg_match("/^[0-9]+$/", $_POST['server_id']) Добавлено (26.05.2013, 14:20)
Панки живут вечно!
Сообщение # 5 написано 26.05.2013 в 14:20
|
Цитата (CraZyRock) Прадмур, да не в путях дело, причина почему так для меня крайне не понятна... Исправил во всяком случае. Для начала нужно INDEX.PHP переименовать в index.php. На линуксе - это разные файлы и могуть быть в одной директории. Не буду же я добавлять в настройки nginx'a ещё и INDEX.PHP рядом с index.php как индексный файл. По тем же причинам ARROW.PNG в папке с изображениями и ARROW.png в css - разные вещи и ничего не отображает. Остальное - мелочи. mysqli принимает порт пятым параметром, а не вместе с именем хоста. Поэтому и зарегистрироваться невозможно. Раз уж используешь mysqli, то вместо query, в которые ты подставляешь данные путём конкатенации, сделай подготовленные выражения. Так уж точно обезопасишь себя от sql инъекций.
Сообщение # 6 написано 26.05.2013 в 20:24
|
1) Все названия файлов прописанные буквами в верхнем регистре из за черепашки, все не могу нагуглить причину. Сам задолбался, если кто подскажет буду рад.
2) mysqli принимает порт пятым параметром, а не вместе с именем хоста, после mysql, пользовался в основном фраеймворками, не знал, теперь знаю спасибо. Но на саму регистрацию не как не влияет. Подготовленные выражение, здесь не очень впишутся.
Панки живут вечно!
Сообщение # 7 написано 26.05.2013 в 21:07
|
Цитата (CraZyRock) 1) Все названия файлов прописанные буквами в верхнем регистре из за черепашки, все не могу нагуглить причину. Сам задолбался, если кто подскажет буду рад. Использую гит и никогда не пользовался черепашкой. На битбакете есть git'овские репо так переходи на них. Так как репо открытый, то гитхаб - лучший вариант. Цитата (CraZyRock) Но на саму регистрацию не как не влияет. Влияет до такой степени, что регистрация с таким конфигом невозможна и получаешь ошибку: Connect Error (2005) Unknown MySQL server host 'localhost:3306' Меняем на localhost без порта - и всё нормально. Пробую на: php 5.4.9 nginx 1.2.6 mysql 5.5.31 Не знаю что там у тебя и странно, что вообще работает. Цитата (CraZyRock) Подготовленные выражение, здесь не очень впишутся. Они везде впишутся где есть запросы в которые нужно передавать параметры.
Сообщение # 8 написано 26.05.2013 в 21:31
|
Прадмур, тут всего 3 запроса. Мой php+mysql на винде древний и да, у меня работает, исправил вообщем то. По поводу верхнего регистра перелил все, вроде теперь все ок.
Добавлено (26.05.2013, 21:37) --------------------------------------------- Сейчас пишу свою капчу, поглядим что будет.
Панки живут вечно!
|
Ничего он в порядок не приведет.
Он даже не поймет, что в фреймворках делается! Ведь это человек, который каптчу хранит в КУКАХ!!!
Сообщение # 13 написано 27.05.2013 в 09:47
|
Quintessence, я не понимаю чем вас не устраивают куки? Они для того и придуманы чтобы в них хранить что то, да не спорю та капча что сейчас легко взламывается, я сотню раз про эту капчу сказал уже. Но если вы услышали что у меня плохая капча и теперь мне только этим будете тыкать, я делаю такой вывод что вы сами не чего не понимаете. Несколько человек мне сказали что у меня не так, все ок. Но вы в 10раз мне про эту капчу.
Панки живут вечно!
Сообщение # 14 написано 27.05.2013 в 10:58
|
Цитата (CraZyRock) Но если вы услышали что у меня плохая капча и теперь мне только этим будете тыкать, я делаю такой вывод что вы сами не чего не понимаете. Несколько человек мне сказали что у меня не так, все ок. Но вы в 10раз мне про эту капчу. Ни один нормальный человек увидев замечание и её последствия не оставит всё как есть. Напишешь кому-то сайт, тогда пригласи меня на сайт сервера, а дальше уже посмотрим зачем нужны подготовленные выражения и капчи в сессиях.
Сообщение # 15 написано 27.05.2013 в 11:23
|
Зачем только делать награмаждение кода, по-моему проще сделать так:
Код elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) { $register->set_tpl('{INFORMATION}', '<font id="warning">Проверьте формат ввода E-mail. <font color=lightblue>Пример: example@example.com</font></font>'); $register->set_tpl_html('{CONTENT}','./templates/default/modules/register_form.tpl'); } Тут уже и ООП присутствует, но суть думаю понять не трудно. Это конечно выдранный мой кусок кода, но вот ключевое место Код if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { <CODE> } |
| |||
| |||