Добро пожаловать на сайт посвещённый приставке PsP ( Life-PsP.RU )
На нашем сайте вы можете бесплатно скачать темы для psp, скины для psp, игры для psp, Фильмы и многое другое.
Наш сайт создан не для того что-бы на нём зарабатывать, а для того, что-бы приносить удовольствие людям !
Моя третья статья, о том, как сделать регистрацию. В интернете полно подобных стетеек, поэтому я решил не тупо "слизывать" и копипастить, а вообще : создать свою регистрацию. Тем более, что многие новички не могут позволить себе пользоваться большинством статей из-за того, что им не доступно MySQL.
Что умеет скрипт : Проверка cookies, регистрация ( e-mail, ник, связь, о себе, проверка по антиспаму, приветствие, выход, шифрование пароля в cookies и БД ( вроде бы всё написал ).
Сразу хочю развеять миф о том, что на файлах нельзя сделать регистрацию : 1 ) Надо записывать ВСЕХ пользователей в ОДИН файл. 2 ) Необходимо защитить файл от копирования и чтения. Всё это я сделал. Увидите ниже.
Насчёт скорости : чем больше посетителей, тем, естественно, медленнее скорость выполнения скрипта. Поэтому я внедрил свой антиспам, надеясь на меньшее кол-во пустых запросов к БД.
Начинаем! Теперь, к примеру, у вас есть домен, типа : мойсайт.ru
[1] Вам хочется сделать регистрацию пользователей, а для неё нужно создать файлы и папки :
[ Файл ] мойсайт.ru/conf.php -- отвечает за конфигурацию, название сайта, микс для хеша паролей Md5(); а также содержит все функции. [ Файл ] мойсайт.ru/index.php -- формы и проверки форм, обращения к БД. В общем - сама страница. [ Папка ]мойсайт.ru/data --- Папка с файлами: [ Файл ] random.php -- Коды проверки антиспама [ Файл ] users.php -- наши юзеры [ Папка ] мойсайт.ru/images --- Папка с файлами: [ Файл ]style.css -- таблица стилей [ Файл ]fon.gif -- картинка фона. ( )
Создаём файлы и папки, скачиваем картинку и ставим её в Images/
/* Проверка куков по БД, вдруг кто-то решил их подменить? */ If(isset($_COOKIE['cw'])) { $cooki = $_COOKIE['cw']; $cooky = base64_decode($cooki); $see = explode("|",$cooky); $user=$see[0]; $pass=$see[1]; if(!isset($_GET['a']) and !isset($_GET['b'])){ echo "<td colspan=\"5\" class=\"gTableBody1 noWrap\"> <b><u><a href=\"index.php?a=logout\">Выход</a></u></b> </td> <BR><center>Здравствуйте,<b> {$user}</b></center>";} if ($user!=null & $pass!=null) { $bd = @file("$basedir/users.php"); for ($i=1;$i<count($bd);$i++) { $dt = explode("|",$bd[$i]); if (strtolower($user)==strtolower($dt[0]) & $pass==$dt[1]) { $ruser=$user; $who="да";} } $stroka = $who; if (!isset($who)) {setcookie("cw","",time()); echo "<BR>Вы пытались войти, как : $see[0]<BR>"; die("[ Ошибка ] <BR>Cookie проблемы<BR>При работе с КУКИ произошёл сбой! <font color=red><B>Вы не сможете избежать этого сообщения без правильных cookie, обратитесь к администратору.</B></font><BR> Ваш логин и пароль не найдены в базе данных, попробуйте выполнить вход заного. Если ошибка повторяется - почините свои руки и пусть растут из плеч.");} } } // Проверка куков по БД. END. //без куков else{ if(!isset($_GET['a']) and !isset($_GET['b'])){ echo "<td colspan=\"5\" class=\"gTableBody1 noWrap\"> <b><u><a href=\"index.php?b=reg\">Регистрация</a></u></b> |</td><td colspan=\"5\" class=\"gTableBody1 noWrap\"> <b><u><a href=\"index.php?b=login\">Вход</a></u></b> </td>";} }
if(isset($_GET['a'])) { //Выход. if ($_GET['a']=="logout") {setcookie("cw","",time()); Header("Location: index.php"); exit;} //Выход.END
if ($_GET['a']=="reg2") { if (!isset($_POST['user']) & !isset($_POST['pass'])) {exit("$back введите ник и пароль!");} $user=str_replace("|","I",$_POST['user']); $pass=str_replace("|","I",$_POST['pass']); $svaz=str_replace("|","I",$_POST['svaz']); $random=$_POST['random']; try_code(); $dayreg=$date; $user=trim($user); $svaz=trim($svaz); if (isset($_POST['email'])) {$email=$_POST['email'];} else {$email="";} $email=strtolower($email); if (preg_match("/[^(\\w)|(\\x7F-\\xFF)|(\\-)]/",$user)) {exit("$back Ник содержит запрещённые символы. Разрешены русские и английские буквы, цифры и подчёркивание!");} if ($user=="" or strlen($user)>$maxuser or strlen($user)<'2') {exit("$back Ник пуст, возможно сликом короткий ( менее 2 символа ) ,или превышает $maxuser символов!</B></center>");} if ($pass=="" or strlen($pass)<1 or strlen($pass)>$maxuser) {exit("$back Вы не ввели пароль. Пароль не должен быть пустым.</B></center>");} if (!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email) or $email=="" or strlen($email)>40) {exit("$back и введите корректный E-mail адрес!</B></center>");} if (isset($_POST['about'])) {$about=$_POST['about'];} else {$about="";} $email=str_replace("|","I",$email); $about=str_replace("|","I",$about); $pass=md5("$pass+$md5"); $text="$user|$pass|$email|$dayreg|$about|$svaz|no-avatar.gif|"; $text=clear($text); $exd=explode("|",$text); $user=$exd[0]; $pass=$exd[1]; $email=$exd[3]; if ($user===$pass) {exit("$back. В целях Вашей безопасности, <B>запрещено равенство имени и пароля!</B>");} $login=strtolower($user); $lines=file("$basedir/users.php"); $i=count($lines); for($x=0; $x<$i; $x++){$rdt=explode("|",$lines[$x]); $rdt[0]=strtolower($rdt[0]); if ($rdt[0]===$login) {$bad="1"; $er="логином";} if ($rdt[4]===$email) {$bad="1"; $er="емайлом";} } if (isset($bad)) {exit("$back. Пользователь с таким <B>$er уже зарегистрирован</B>!</center>");}
$cw2="$user|$pass|"; $cw=base64_encode($cw2); setcookie("cw", $cw, time()+1728000); print"<html><head><link rel='stylesheet' href='images/style.css' type='text/css'></head><body> <script language='Javascript'>function reload() {location = \"index.php\"}; setTimeout('reload()', 2500);</script> <table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#80FF00 align=center valign=center width=60%><tr><td><center> <B>$user, зарегестрирован</B>.<BR><BR>Через несколько секунд Вы будете автоматически перемещены на главную страницу.<BR><BR> <B><a href='index.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"; exit; exit(); } /*-----------------------Регистрация пользователя.END.----------------------*/
/*-----------------------Авторизация.----------------------*/ if ($_GET['a']=="log") { if (!isset($_POST['user']) & !isset($_POST['pass'])) {exit("$back введите ник и пароль!");} $user=str_replace("|","I",$_POST['user']); $pass=$_POST['pass'];
$text="$user|$pass|"; $text=trim($text); if (strlen($text)<4) {exit("$back Вы не ввели ник или пароль!");} $text=clear($text); $exd=explode("|",$text); $user=strtolower($exd[0]); $pass=$exd[1]; $pass=md5("$pass+$md5");
<tr><td>E-mail адрес <font color="#FF0000" class="manStar">*</font>:</td><td class="manTd2" id="siM56"><input type="text" id="siF17" class="manFlaEmail" name="email" size="20" style="width:100%;" value="" maxlength="60" onchange="_uWnd.alert('Проверьте правильность вашего Email адреса, на этот адрес будет выслано письмо с информацией. Если email неверный, то вы не сможете вернуть свою учётную запись при каких-либо обстоятельствах.','',{w:250,h:100,tm:5000});" /></td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<tr><td>О себе:</td><td class="manTd2" id="siM29"><textarea name=about rows=9 cols=100 wrap="on"></textarea></td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr> <tr><td class="manTdBut" colspan="2" align="center" id="siM65"> DATA; // FOR FORM if($get_secret=='' or !isset($_SESSION['secret'])){random(); $get_info = explode("|",$ret); $b=$get_info[0]; $random=$get_info[1]; $_SESSION['secret']=$b;} echo $random; // FOR FORM END echo <<<DATA </td></tr>
<tr id="siM64"><td class="manTdBut" colspan="2" align="center" id="siM65"> DATA; // FOR FORM if($get_secret=='' or !isset($_SESSION['secret'])){random(); $get_info = explode("|",$ret); $b=$get_info[0]; $random=$get_info[1]; $_SESSION['secret']=$b;} echo $random; // FOR FORM echo <<<DATA <input class="manFlSbm" id="siF20" type="submit" name="sbm" value="Вход" /></td></tr> </table> </form><hr /> <div class="csTop" style="padding-bottom:7px;"> <BR></TD><TD class="tresc12"><BR></TD></TR><TR><TD class="tresc13"></TD><TD class="tresc14"></TD><TD class="tresc15" width="100%"><BR></TD><TD class="tresc16"></TD><TD class="tresc17"></TD></TR></TBODY></TABLE><BR> </TD> DATA;
} // Форма входа. END }[/spoiler]
Кто не понимает строки кода, пишем в теме, всё обьясню, а так вкратце : session_start(); include 'conf.php'; Начали сессию ( для антиспама ) и включили файл conf.php с настройками. if(!isset($_GET['a'])){ У нас регистрируются всего-лишь две переменные : a и b a отвечает за выполнение ( проверки, запись в БД ), а b отвечает за вывод форм и антиспама.
Далее код снабжён комментариями, а кто не понял или неработает что --- пишите в теме.
! Просмотрите заполнение файла users.php, важно! : Строка0. <?php die();?> Строка1. Ni|36b1884b2cf61a4d04bf8dd678c35e77|ni@ni.ni|22.06.2010|Просто так!|нету|no-avatar.gif| Строка2. Обязательно должна быть одна пустая строка! Для добавления.
Скриншот скрипта :
http://la2infox.ru/ - Всё для Lineage 2
Сообщение отредактировал FeNiKs - Понедельник, 26.07.2010, 11:00
Оформить деньги очень просто от 1.000 до 2000000 рублей Заполните форму и мы подберем займ от компаний и банков, готовых выдать Вам деньги Возраст: От 18 до 70 лет https://intercreditl.ru/offers/potrebitelskij-kredit/
Подбор микрозайм, кредитов, кредитных карт Размер: от 1.000 до 5.000.000 руб Срок: От 7 дней до 5 лет Время рассмотрения: сразу Получение денег: Банковская карта, наличными или через платежные системы Возраст: От 18 до 70 лет https://intercreditl.ru/offers/mikrozajmy/