Нужна помощь, как сделать перенаправление на страничку(анкету) после авторизации пользователя.Кто поможет в этом деле вознаграждение обязательно будет.
Вот собственно и пример :
index.php
Цитата |
|
Цитата |
<meta http-equiv="content-type" content="text/html"; charset="windows-1251" /> <?php if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} } //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт { exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); } //если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести $login = stripslashes($login); $login = htmlspecialchars($login); $password = stripslashes($password); $password = htmlspecialchars($password); //удаляем лишние пробелы $login = trim($login); $password = trim($password); // заменяем новым******************************************** // подключаемся к базе include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь // минипроверка на подбор паролей $ip=getenv("HTTP_X_FORWARDED_FOR"); if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }//извлекаем ip mysql_query ("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");//удаляем ip-адреса ошибавшихся при входе пользователей через 15 минут. $result = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);// извлекаем из базы количество неудачных попыток входа за последние 15 у пользователя с данным ip $myrow = mysql_fetch_array($result); if ($myrow['col'] > 2) { //если ошибок больше двух, т.е три, то выдаем сообщение. exit("Вы набрали логин или пароль неверно 3 раз. Подождите 15 минут до следующей попытки."); } $password =($password);//шифруем пароль $password =($password);// для надежности добавим реверс $password =($password); //можно добавить несколько своих символов по вкусу, например, вписав "b3p6f". Если этот пароль будут взламывать методом подбора у себя на сервере этой же md5,то явно ничего хорошего не выйдет. Но советую ставить другие символы, можно в начале строки или в середине. //При этом необходимо увеличить длину поля password в базе. Зашифрованный пароль может получится гораздо большего размера. $result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); //извлекаем из базы все данные о пользователе с введенным логином //мы дописали «AND activation='1'», то есть пользователь будет искаться только среди активированных. Желательно добавить это условие к другим подобным проверкам данных пользователя $myrow = mysql_fetch_array($result); if (empty($myrow['id'])) { //если пользователя с введенным логином и паролем не существует //Делаем запись о том, что данный ip не смог войти. $select = mysql_query ("SELECT ip FROM oshibka WHERE ip='$ip'"); $tmp = mysql_fetch_row ($select); if ($ip == $tmp[0]) {//проверяем, есть ли пользователь в таблице "oshibka" $result52 = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db); $myrow52 = mysql_fetch_array($result52); $col = $myrow52[0] + 1;//прибавляем еще одну попытку неудачного входа mysql_query ("UPDATE oshibka SET col=$col,date=NOW() WHERE ip='$ip'"); } else { mysql_query ("INSERT INTO oshibka (ip,date,col) VALUES ('$ip',NOW(),'1')"); //если за последние 15 минут ошибок не было, то вставляем новую запись в таблицу "oshibka" } exit ("Извините, введённый вами логин или пароль неверный."); } else { nbsp; //если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел! $_SESSION['password']=$myrow['password']; $_SESSION['login']=$myrow['login']; $_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь //Далее мы запоминаем данные в куки, для последующего входа. //ВНИМАНИЕ!!! ДЕЛАЙТЕ ЭТО НА ВАШЕ УСМОТРЕНИЕ, ТАК КАК ДАННЫЕ ХРАНЯТСЯ В КУКАХ БЕЗ ШИФРОВКИ if (isset($_POST['save'])){ //Если пользователь хочет, чтобы его данные сохранились для последующего входа, то сохраняем в куках его браузера setcookie("login", $_POST["login"], time()+9999999); setcookie("password", $_POST["password"], time()+9999999); setcookie("id", $myrow['id'], time()+9999999); } if (isset($_POST['autovhod'])){ //Если пользователь хочет входить на сайт автоматически setcookie("auto", "yes", time()+9999999); setcookie("login", $_POST["login"], time()+9999999); setcookie("password", $_POST["password"], time()+9999999); setcookie("id", $myrow['id'], time()+9999999);} } echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";//перенаправляем пользователя на главную страничку, там ему и сообщим об удачном входе ?> |
Цитата |
<meta http-equiv="content-type" content="text/html"; charset="windows-1251" /> <?php include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички else { exit("Вы зашил на страницу без параметра!");} //если не указали id, то выдаем ошибку if (!preg_match("|^[\d]+$|", $id)) { exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку } if (!empty($_SESSION['login']) and !empty($_SESSION['password'])) { //если существует логин и пароль в сессиях, то проверяем, действительны ли они $login = $_SESSION['login']; $password = $_SESSION['password']; $result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'",$db); $myrow2 = mysql_fetch_array($result2); if (empty($myrow2['id'])) { //Если не действительны (может мы удалили этого пользователя из базы за плохое поведение) exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); } } else { //Проверяем, зарегистрирован ли вошедший exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); } $result = mysql_query("SELECT * FROM users WHERE id='$id'",$db); $myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует ?> <html> <head> <title><?php echo $myrow['login']; ?></title> </head> <body> <h2>Пользователь "<?php echo $myrow['login']; ?>"</h2> <?php print <<<HERE |<a href='page.php?id=$myrow2[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br> HERE; //выше вывели меню if ($myrow['login'] == $login) { //Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения print <<<HERE <form action='update_user.php' method='post'> Ваш логин <strong>$myrow[login]</strong>. Изменить логин:<br> <input name='login' type='text'> <input type='submit' name='submit' value='изменить'> </form> <br> <form action='update_user.php' method='post'> Изменить пароль:<br> <input name='password' type='password'> <input type='submit' name='submit' value='изменить'> </form> <br> <form action='update_user.php' method='post' enctype='multipart/form-data'> Ваш аватар:<br> <img alt='аватар' src='$myrow[avatar]'><br> Изображение должно быть формата jpg, gif или png. Изменить аватар:<br> <input type="FILE" name="fupload"> <input type='submit' name='submit' value='изменить'> </form> <br> <h2>Личные сообщения:</h2> HERE; $tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC",$db); $messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху if (!empty($messages['id'])) { do //выводим все сообщения в цикле { $author = $messages['author']; $result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора $myrow4 = mysql_fetch_array($result4); if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили) $avatar = $myrow4['avatar']; } else {$avatar = "avatars/net-avatara.jpg";} printf(" <table> <tr> <td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td> <td>Автор: <a href='page.php?id=%s'>%s</a><br> Дата: %s<br> Сообщение:<br> %s<br> <a href='drop_post.php?id=%s'>Удалить</a> </td> </tr> </table><br> ",$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']); //выводим само сообщение } while($messages = mysql_fetch_array($tmp)); } else { //если сообщений не найдено echo "Сообщений нет"; } } else { //если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений print <<<HERE <img alt='аватар' src='$myrow[avatar]'><br> <form action='post.php' method='post'> <br> <h2>Отправить Ваше сообщение:</h2> <textarea cols='43' rows='4' name='text'></textarea><br> <input type='hidden' name='poluchatel' value='$myrow[login]'> <input type='hidden' name='id' value='$myrow[id]'> <input type='submit' name='submit' value='Отправить'> </form> HERE; } ?> </body> </html> |