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

Форум PHP

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

 

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

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

тема: Помогите инфой
 
 автор: hazy   (16.02.2005 в 18:00)   письмо автору
 
 

Я новичёк и никак не могу разобратся!
Мне нужно замутить регистрацию на сайте.
Искал статейки, но они написаны слишком заумным языком.
Помогите пожалуйста!

   
 
 автор: Sin   (16.02.2005 в 20:42)   письмо автору
 
   для: hazy   (16.02.2005 в 18:00)
 

Тогда попробуй скачать какойнибудь простой бесплатный скрипт и распотраши его, найдешь много чего полезного. А лучше всего скачай форум из Донлоуда и разбирайся на нем, там весь код закоментирован

   
 
 автор: elenaki   (16.02.2005 в 20:46)   письмо автору
 
   для: hazy   (16.02.2005 в 18:00)
 

если по-простому, то возьмите лист бумаги и напишите все те действия, которые потом будете автоматизировать с помощью РНР.
1. посетители будут сами регистроваться? значит, нужно форма для занесения данных. образцы форм (анкет) с проверками заполнения и правильности тут есть.
2. данные будут храниться в базе? скорее всего. тогда после проверки заносим данные в базу.
3. чтобы избежать липовых регистраций (иногда можно внести какие угодно данные, придумать свой пароль и зайти с ним, а то еще и на рассылки подписаться), надо пароль формировать автоматически (тут тоже были примеры), а потом посылать ссылку на е-мейл, только после клика на которую, запись активизируется (меняется одно поле в таблице) и после этого можно заходить с данным именем и паролем. так вы убедитесь. что введенный е-мейл действительно существует, а не придуман.
4. обязательно предусмотреть "отписку" - кто-то может передумать и захочет "выписаться".
5. ну и форма для входа - имя, пароль, кнопка входа.

это просто алгоритм.

   
 
 автор: Никоза   (16.02.2005 в 22:28)
 
   для: elenaki   (16.02.2005 в 20:46)
 

Постараюсь полностью избежать "заумного языка". :-))
Сначала делаете страницу под названием reg.htm
с формой:
В форме делаете 3 строки ввода
логин
пароль
e-mail
И кнопку внизу...
Форма должна передавать данные скрипту... скажем... reg.php

Вот полный код страницы с формой:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1251">
</head>

<body>
<div align="center">
<form name="form1" method="post" action="reg.php">
<table width="190" border="1">
<tr>
<td width="79">login</td>
<td width="95"><input name="login" type="text" id="login" value="" size="15" maxlength="9"></td>
</tr>
<tr>
<td>pass</td>
<td><input name="pass" type="text" id="pass" value="" size="15" maxlength="9"></td>
</tr>
<tr>
<td>e-mail</td>
<td><input name="mail" type="text" id="mail" value="" size="15" maxlength="35"></td>
</tr>
</table>
<p>
<input type="submit" name="Submit" value="зарегистрироваться">
</p>
</form>
</div>
</body>
</html>

теперь открывайте блокнот, и пишите в нём следующее:

<?
if ((login =="") || ($pass =="") || ($mail ==""))
{
header ("Location: http://localhost/reg.htm");
//если какая-то строка не заполнена - возвращаем назад...
exit;}
$login=substr($login,0,9);
$pass=substr($pass,0,9);
$login=strtr($login,"$?<>=+%&^([{*", "#############");
$pass=strtr($pass,"$?<>=+%&^([{*", "#############");
//обрезаем строки до 9 знаков, и чистим вручную от хакеров.
if(!preg_match("|[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}|i", $mail))
{
echo "введите, пожалуйста, настоящий e-mail";
exit;
}
echo "$login";
echo "регистрация прошла успешно!";
$newfile=fopen ($login, "w");
fwrite($newfile,$pass);
fwrite($newfile,"\n");
fwrite($newfile,$mail);
fwrite($newfile,"\n");
fwrite($newfile,$select);
fwrite($newfile,"\n");
fclose ($newfile);
?>

теперь закройте блокнот, и сохраните этот файл как reg.php
Вот и всё. Держите это всё в одной директории. Теперь при нажатии кнопки на форме в директории появится файлик под названием (логин, которым регились) с регистрационными данными. А вот как проверку делать - этого я не знаю пока ещё и сам. Учусь... :-))
Может, кто подскажет.

   
 
 автор: glsv (Дизайнер)   (16.02.2005 в 22:57)   письмо автору
 
   для: hazy   (16.02.2005 в 18:00)
 

Можете прочитать статью про авторизацию по ссылке

http://www.softtime.ru/info/articlephp.php?id_article=34

   
 
 автор: Valeri   (17.02.2005 в 10:29)   письмо автору
 
   для: glsv (Дизайнер)   (16.02.2005 в 22:57)
 

вообще-то по идеи если в логине или пароле будут запрещенные символы и их подчистит
$login=strtr($login,"$?<>=+%&^([{*", "#############");
$pass=strtr($pass,"$?<>=+%&^([{*", "#############");
то надо бы так же выбрасывать на страницу регистрации с указанием, что используются запрещеные символы.
а то получается, что они заменяются а пользователь этого не знает, он может их ввести без злого умысла, но в таком случае он не сможет авторизоваться.

   
 
 автор: Никоза   (17.02.2005 в 11:46)
 
   для: Valeri   (17.02.2005 в 10:29)
 

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

   
 
 автор: Никоза   (17.02.2005 в 11:50)
 
   для: Никоза   (17.02.2005 в 11:46)
 

Впрочем, каждый спецсимвол можно заменять СВОЕЙ латинской буквой. Тогда ещё лучше. А основной момент такой же - пусть пишет что хочет. Лишь бы не раздражать... Всё равно при проверке всё совпадёт.

   
 
 автор: Valeri   (17.02.2005 в 11:55)   письмо автору
 
   для: Никоза   (17.02.2005 в 11:46)
 

это почему же он с легкостью авторизуется ? если он ввел к примеру ?, то будет замена на #, при авторизации он вводит ?, при проверке символы не совпадают, аторизация не проходит.
если учесть что при авторизации так же все заменяется на #, тогда он сможет авторизоваться, но в таком случае пусть маленький % но существует такая возможность, что два пользователя ввели одни запрещенные но разные символы и все они заменились на #, и что тогда ?
конечно можно поставить проверку что если ткой-то логин и пароль уже есть, то возвращает на регистрацию, но это мне кажется только еще больще ухудшит дело.
к чему городить такой огород с такими проверками ?

   
 
 автор: glsv (Дизайнер)   (17.02.2005 в 12:41)   письмо автору
 
   для: Valeri   (17.02.2005 в 10:29)
 

В принципе, я с вами согласен.

   
 
 автор: Никоза   (17.02.2005 в 12:47)
 
   для: glsv (Дизайнер)   (17.02.2005 в 12:41)
 

Потому-то я и добавил уточнение - каждый спецсимвол заменять не решеткой, а СВОЕЙ латинской буквой. Каждому символу - своя латинская буква. Тогда уж совпадения исключены.
Постоянные сообщения об каких-то ошибках могут оттолкнуть человека от сайта. А таким способом мы разрешаем ему вводить любые пароли. Например, кто-то захочет красиво написать вот такой логин <<<$>>>
Ну и пусть пишет... :-)))

   
 
 автор: Никоза   (17.02.2005 в 13:17)
 
   для: Никоза   (17.02.2005 в 12:47)
 

А можно вообще разрешить выводить эти спецсимволы. Возможно, я неправ, но... Я вот подумал - спецсимвол ведь опасен не сам по себе, а только в сочетании. (кусок кода). Поэтому можно фильтровать так:
Функция фильтрации мата, только запрещает СОЧЕТАНИЯ СИМВОЛОВ.
php, perl, fopen, =$, !=, ($, [, {, login, pass, и так далее... Я не все функции знаю пока ещё, (я вообще кроме асмы и делфи ничего не знаю :-)),
но принцип Вы поняли... Тут можно будет писать в логине любые символы которые в голову взбредут... Этакая "думающая" функция... Хотя возможно тут я что-то не предусмотрел?

   
 
 автор: glsv (Дизайнер)   (17.02.2005 в 16:04)   письмо автору
 
   для: Никоза   (17.02.2005 в 12:47)
 

Так то оно так, но…
В политике безопасности безотказно действует принцип – лучше разрешить только нужное, чем запрещать ненужное. Гораздо безопаснее ограничить логин, например, только буквами и цифрами. Есть афоризм: в каждой программе есть одна неотлаженная ошибка.
Можно проглядеть/не заметить возможных проблем. Поэтому лучше уж разрешить только ввод определенных символов, а остальное безжалостно вырезать.

   
 
 автор: hazy   (17.02.2005 в 16:26)   письмо автору
 
   для: glsv (Дизайнер)   (17.02.2005 в 16:04)
 

Всё понятно!
Большое ВСЕМ спасибо.

   
Rambler's Top100
вверх

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