Вот я решил сделать для своего мониторинга регистрацию пользователей.
Там есть запрещенные ссылки по которым гость сайта не должен зайти.
Вот как выглядит зарегистрированный пользователь:
_ttp://www.imagepost.ru/?v=578/08.02.png
Его ссылка выглядит так: _ttp://site/3-us_page.html
Вот как незарегистрированный:
Прохажу по той же ссылке ( _ttp://site/3-us_page.html )
_ttp://www.imagepost.ru/?v=578/kMnwh0v.png
Как сделать чтобы незарегистрированный пользователь видел только :
"Вход на эту страницу разрешен только зарегистрированным пользователям!"
Вот код:
Код: Выделить всё
session_start();
include ("bd.php");
//файл bd.php должен быть в той же папке, что и все остальные,
//если это не так, то просто измените путь
if (isset($_GET['user'])) {$id =$_GET['user']; } //id "хозяина" странички
else
{ $main.=("<div class='block' style='width: 960px;'>
<div class='bodyBlock'>Вы зашили на страницу без параметра!</div></div>");} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
$main.=("<div class='block' style='width: 960px;'><div class='bodyBlock'>
<p>Неверный формат запроса! Проверьте URL</p></div></div>");//если 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']))
{
//Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
$main.=("<div class='block' style='width: 960px;'>
<div class='bodyBlock'>Вход на эту страницу разрешен только зарегистрированным пользователям!</div></div>");
}
}
else {
//Проверяем, зарегистрирован ли вошедший
$main.=("<div class='block' style='width: 960px;'>
<div class='bodyBlock'>Вход на эту страницу разрешен только зарегистрированным пользователям!</div></div>"); }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
if (empty($myrow['login'])) { $main.=("<div class='block' style='width: 960px;'>
<div class='bodyBlock'>Пользователя не существует! Возможно он был удален.</div></div>");} //если такого не существует
if ($myrow['login'] == $login) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения
$navigation.= "$myrow[login]";
$main.= "
<div class='block' style='width: 960px;'><div class='bodyBlock'>
<form action='update_user.html' method='post'>
Ваш логин <strong>$myrow[login]</strong>. Изменить логин:<br>
<input name='login' type='text'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>
<form action='update_user.html' method='post'>
Изменить пароль:<br>
<input name='password' type='password'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>
<form action='update_user.html' method='post' enctype='multipart/form-data'>
Ваш аватар:<br>
<img alt='аватар' class='border' src='$myrow[avatar]'><br>
Изображение должно быть формата jpg, gif или png. Изменить аватар:<br>
<input type='FILE' name='fupload'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>
<h2>Личные сообщения:</h2>
";
$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 = "user/avatars/net-avatara.jpg";}
$main.=("
<table>
<tr>
<td><a href='$myrow4[id]-us_page.html'><img class='border' alt='аватар' src='$myrow4[avatar]'></a></td>
<td>Автор: <a href='$myrow4[id]-us_page.html'>$author</a><br>
Дата: $messages[date]<br>
Сообщение:<br>
$messages[text]<br>
<a href='user/drop_post.php?id=$messages[id]'>Удалить</a>
</td>
</tr>
</table><br>
");
//выводим само сообщение
}
while($messages = mysql_fetch_array($tmp));
}
else {
//если сообщений не найдено
$main.= "Сообщений нет</div></div>";
}
}
else
{
//если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений
$navigation.= "$myrow[login]";
$main.= "
<img alt='аватар' class='border' src='$myrow[avatar]'><br>
<form action='post.html' 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>
";
}