|
|
|
| Я хотел бы скрыть какой нибуть текст от не зарегистрированных пользователей.
Если пользователь авторизирован то текст покажем.
Как реализовать это я даже не могу понять.
Хотелось бы увидеть маленький пример. | |
|
|
|
|
|
|
|
для: Алексей Рябченко
(29.01.2008 в 14:38)
| |
$query = "SELECT nic, pass FROM users WHERE nic='$nic' AND pass='$pass'";
$ath = mysql_query($query);
if(@mysql_num_rows($ath) != 0)
{
echo "<br>$nic, Добро пожаловать на наш сайт! Читайте наши статьи, посетите форум!";
}
else
{
echo "<br>Вы не прошли авторизацию, так что никаких статей мы вам не покажем!";
}
|
:-) Это при авторизации.
А так можно с помощью cookie сделать, как на соффтайме. | |
|
|
|
|
|
|
|
для: Mookapek
(29.01.2008 в 15:06)
| | Хотелось бы подробно узнать от регистрации до авторизации пользователя.
ведь после каждой перезагрузки страницы не будешь вводить логин и пароль. | |
|
|
|
|
|
|
|
для: Алексей Рябченко
(29.01.2008 в 18:16)
| | >после каждой перезагрузки страницы не будешь вводить логин и пароль.
Использовать сессии. | |
|
|
|
|
|
|
|
для: Mookapek
(29.01.2008 в 15:06)
| | >А так можно с помощью cookie сделать, как на соффтайме.
Думаю как на софттайме, именно так не стоит делать. Пароль в куках хранится в явном виде.
И все равно сначала надо зарегистрироваться, а потом для автологина можно ставить куку, но подумать, что в ней должно содержаться. | |
|
|
|
|
|
|
|
для: Faraon
(29.01.2008 в 22:08)
| | index.php
<?php
@session_start(); // Открытие сессии
?>
<form action="handler.php" method="post">
<input name="name" type="text" value="<?php echo $_SESSION['user']; ?>"><br>
<input name="password" type="password" value="<?php echo $_SESSION['password']; ?>"><br>
<input name="" type="submit" value="Отправить">
<input name="session_id" type="hidden" value="<?php echo session_id(); ?>">
</form>
<?php
if ($_SESSION['auth'] = true){
echo "Здравствуйте, ".$_SESSION['name']."! <a href='index.php?exit'>Выход</a>";
}
if (isset($_GET['exit'])){
session_unset($_SESSION['session_id']);
echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=index.php'>
</head></html>";
exit();
}
?>
|
headler.php
<?php
// Устанавливаем соединение с базой данных
include("config.php");
/*
Сравниваем переданный идентификатор из формы
с текущим идентификатором сессии
*/
session_start();
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['password'])) {$password = $_POST['password'];}
if (isset($_POST['session_id'])) {$session_id = $_POST['session_id'];}
if ($_POST['session_id'] != $session_id){
exit("Попытка передачи данных с другого хоста. скрипт остановлен.");
}
// Формируем и выполняем sql-запрос: имеется ли пользователь с именем $_POST['name']
$query = "SELECT name, pass FROM user WHERE name='$name' AND pass='$password'";
$ath = mysql_query($query);
if(@mysql_num_rows($ath) != 0)
{
$_SESSION['auth'] = true;
$_SESSION['name'] = $name;
$_SESSION['session_id'] = $session_id;
echo "<br>".$_SESSION['name'].", Добро пожаловать на наш сайт! Читайте наши статьи, посетите форум!<br>
<a href='index.php'>перейти на главную</a>";
}
else
{
echo "<br>Вы не прошли авторизацию, так что никаких статей мы вам не покажем!";
}
?>
|
Вроде все работает,
хотелось бы увидеть ваше мнение Что здесь нужно править.
Правильно ли я Уничтожаю сессию? | |
|
|
|
|
|
|
|
для: Алексей Рябченко
(30.01.2008 в 12:29)
| | Сессию убивать
session_unset($_SESSION['session_id']);
|
или можно
| |
|
|
|