|
|
|
| Здравствуйте друзья!
Возник вопрос с нормальным выходом их сессии.
Файл главной страницы:
<?php
session_start();
if(isset($_POST['userid']) && isset($_POST['password']))
{
$userid = $_POST['userid'];
$password = $_POST['password'];
$db_conn = new mysqli('localhost', 'root', '1', 'netshop');
if(mysqli_connect_errno())
{
echo 'К сожеление не возможно подключиться к базе данных' .mysqli_connect_error();
exit();
}
$query_admin = "select * from adminrules where login='".$userid."' and password=MD5('".$password."')";
$query_users = "select * from userrules where login='".$userid."' and password=MD5('".$password."')";
$result_admin = $db_conn->query($query_admin);
$result_users = $db_conn->query($query_users);
}
if($result_admin->num_rows > 0)
{
$_SESSION['valid_user']='admin';
}
if($result_users->num_rows > 0)
{
$_SESSION['valid_user']='user';
}
if($_SESSION['valid_user']='admin')
{
include("admin/index.php");
}
if($_SESSION['valid_user']='user')
{
include("users/index.php");
}
?>
|
Там соответственно ест форма на этой же главной странице, которая передает userid и password.
Код файлы инклудит нормально.
Допустим содержание файла "admin/index.php" такое:
<body>
<h1>Я Админ!</h1><br />
<a href=logout.php>Выход</a>
</body>
|
файл выхода logout.php:
<?php
session_start();
$old_user = $_SESSION['valid_user'];
print ($_SESSION['valid_user']);
unset($_SESSION['valid_user']);
session_unregister('valid_user');
if (!empty($old_user))
{
echo 'Успешный выход';
}
else
{
echo 'Вы не входили, так что не откуда выходить';
}
?>
<br />
<a href="index.php">На главную</a>
|
И вот тут сама суть вопроса. После нажатия на ссылку "На главную", на главной странице остается сессия с определенным userid, а хотелось бы что она прерывалась, для того что бы заново можно было ввести данны userid и password. как это можно реализовать? =) если ест замечания по коду, было бы очень здорово! =) первый раз работаю с сессией! :D | |
|
|
|
|
|
|
|
для: ADmexture
(08.11.2010 в 16:59)
| | магическими кавычками спасаетесь? Ну-ну... | |
|
|
|
|
|
|
|
для: ADmexture
(08.11.2010 в 16:59)
| | Здравствуйте! )))
<?php
session_start();
if(isset($_POST['userid']) && isset($_POST['password']))
{
$userid = $_POST['userid'];
$password = $_POST['password'];
if(!get_magic_quotes_gpc(){
$userid = mysql_real_escape_string($userid);
$password = mysql_real_escape_string($password);
}
$db_conn = new mysqli('localhost', 'root', '1', 'netshop');
if(mysqli_connect_errno())
{
echo 'К сожеление не возможно подключиться к базе данных' .mysqli_connect_error();
exit();
}
$query_admin = "select * from adminrules where login='".$userid."' and password=MD5('".$password."')";
$query_users = "select * from userrules where login='".$userid."' and password=MD5('".$password."')";
$result_admin = $db_conn->query($query_admin);
$result_users = $db_conn->query($query_users);
}
if($result_admin->num_rows > 0)
{
$_SESSION['valid_user']='admin';
}
if($result_users->num_rows > 0)
{
$_SESSION['valid_user']='user';
}
if($_SESSION['valid_user']='admin')
{
include("admin/index.php");
}
if($_SESSION['valid_user']='user')
{
include("users/index.php");
}
?>
|
Так следует исправить код главного скрипта. | |
|
|
|
|
|
|
|
для: Rolex
(08.11.2010 в 17:31)
| | UP! =) ребят помогите разобраться с сессией пожалуйста!!! =) за кавычки спс =) забыл =) | |
|
|
|
|
|
|
|
для: ADmexture
(08.11.2010 в 20:00)
| | 1) В сессии хранятся ещё какие-нибудь данные, необходимые для корректной работы скрипта?
Если нет - тогда попросту удалите её. А на главной стартует новая )))) | |
|
|
|
|
|
|
|
для: Rolex
(08.11.2010 в 21:09)
| | на данный момент не хранятся. А почему переменная отстается зарегистрированной? | |
|
|
|
|
|
|
|
для: ADmexture
(09.11.2010 в 07:38)
| | Скорее всего сессия удаляется на стороно сервера при session_destroy, потому что на тсранице logout при повторном ее обновлении оператор if показывает, что сессия была удалена и переменная больше не регистрируется. А вот при переходе на главную страницу опять все как по маслу, сессия сохранилась, но уже скорее всего на стороне клинета. Как решить такую задачку? Кто нибудь знает? | |
|
|
|
|
|
|
|
для: ADmexture
(09.11.2010 в 11:06)
| | На [url]php.su[/url] в разделе работа с сессиями, помнится, имеется описание функций для удаления переменных. Навскидку содержание статьи я не помню. | |
|
|
|