Решил сделать активацию пользователя но не догоняю как это можно реализовать. Может кто подскажет как это можно сделать ? Код самой регистрации таков. PHP: <? @session_start(); include "/home/localhost/www/phpsite/blocks/connect.php"; $login=$_POST['login']; $pass1=$_POST['pass1']; $pass2=$_POST['pass2']; $regemail=$_POST['regemail']; $realname=$_POST['realname']; $about=$_POST['about']; $country=$_POST['country']; $city=$_POST['city']; if (isset($login) && isset($pass1) && isset($pass2) && isset($regemail) && isset($realname) && isset($about) && isset($country) && isset($city) ) { if (!empty($login) && !empty($pass1) && !empty($pass2) && !empty($regemail) ) { $login=mysql_real_escape_string(htmlspecialchars($login)); $sql=mysql_query("SELECT * FROM pref_auth WHERE LOWER(login)='".strtolower($login)."'"); $string = $regemail; if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$string)) { if (!mysql_num_rows($sql)) { if (strlen($pass1)>=6) { $pass1=md5($pass1); $pass2=md5($pass2); if (strlen($login)>=2) { if (preg_match('/^[a-z\d_]{4,28}$/i', $login)){ if ($pass1==$pass2) { if(mysql_query("INSERT INTO pref_auth VALUES(NULL,'$login','$pass1', '$regemail', '$realname', '$about', '$country', '$city')") ) { $error="Вы успешно зарегистрированны"; }else{ $error="Системная ошибка, не могу занести информацию в БД"; } }else { $error="Ошибка: Пароли не совпадают"; } }else { $error="Ошибка: Name должен быть написан транслитом"; } }else { $error="Ошибка: Минимальная длина Name 2 символа "; } }else { $error="Ошибка: Минимальная длина пароля 6 символа"; } } else { $error="Ошибка: Такой пользователь уже существует"; } } else { $error="Ошибка: Задан не верный формат E-Mail (Пример: <b>petja@gmail.com)"; } }else { $error="Ошибка: Обязательные поля нужно заполнить"; } } print " ".($error?"<div align=center width=60% style='border:1px solid red'>$error</div><br>":"")." //сама форма заполнения ; ?>
PHP: $error="Вы успешно зарегистрированны"; }else{ $error="Системная ошибка, не могу занести информацию в БД"; } }else { $error="Ошибка: Пароли не совпадают"; } }else { $error="Ошибка: Name должен быть написан транслитом"; } }else { $error="Ошибка: Минимальная длина Name 2 символа "; } }else { $error="Ошибка: Минимальная длина пароля 6 символа"; } } else { $error="Ошибка: Такой пользователь уже существует"; } } else { $error="Ошибка: Задан не верный формат E-Mail (Пример: <b>petja@gmail.com)"; } }else { $error="Ошибка: Обязательные поля нужно заполнить"; } } Симпатичная лесенка..
добавляешь поле active и там отмечаешь товарища как pending, отправляешь ему мыло со ссылкой http://example.com/activate.php?key= и тут как фантазии хватит, проще всего md5(mysql_insert_id()); Когда человек проходит по ссылке, проверяешь есть ли в базе запись с MD5(id) из его ссылки и меняешь pending на active
также отмечаешь в базе время, когда отправил письмо с ссылкой. В письме пишешь, что ссылка действует 3 суток. Когда пользователь переходит, отмеряешь сколько времени прошло. Если вложился - молодец. Если нет - пишешь, что ссылка устарела и отправлена новая. Тут возвращаешься к началу алгоритма и отправляешь письмо, но уже с какой-нибудь другой ссылкой.
В этой регистрации не предусмотрено такой функции, чтобы её сделать, надо знать PHP и хоть немного SQL.