Сессии Ведут Себя Очень Странно

staromand

New member
05.02.2012
0
0
#1
в общем есть такой файл, который проверяет при загрузке страницы "index.php", залогинен ли пользователь

этот файл включен в "index.php"
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"logincheck.php"</div></div><div class="sp-body"><div class="sp-content">
PHP:
<?php

if (isset($_GET['out'])) {
unset($_SESSION['login']);
unset($_SESSION['id']);
setcookie("login", "", 100);
setcookie("id", "", 100);
};
if (!isset($_SESSION['login']) or !isset($_SESSION['id'])) {
unset($const_logined);
};
if (empty($_SESSION['login']) or empty($_SESSION['id'])) {
$const_logined = FALSE;
} else {
$const_logined = TRUE;
};
?>
а также есть файл, который проверяет при вводе логина с паролем валидность введенных данных и ищет по базе нужный "id"

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"login.php"</div></div><div class="sp-body"><div class="sp-content">
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="windows-1251"/>
<link rel="stylesheet" href="../style.css" type="text/css">
<title>Добро пожаловать! - firstsite</title>
</head>
<body>
<div id="ref">
<?php
session_start();

if (isset($_POST['login'])) {
$login = $_POST['login'];
if ($login == '') {
unset($login);
};
};

if (isset($_POST['password'])) {
$password=$_POST['password'];
if ($password =='') {
unset($password);
};
};

if (empty($login) or empty($password)) {
exit ("<div id=\"ref_err\">Вы ввели не всю информацию, вернитесь <a href='../index.php'>назад</a> и заполните все поля!</div>");
};

include ("dbase.php");

$login = stripslashes($login);
$login = mysql_escape_string($login);
$login = htmlspecialchars($login);
$login = trim($login);$password = stripslashes($password);
$password = mysql_escape_string($password);
$password = htmlspecialchars($password);
$password = trim($password);
$password = md5($password);
$query = "
SELECT `login`, `password`, `id`
FROM `usersdb`
WHERE `login` = '{$login}'
";
$result = mysql_query($query, $db);
$myrow = mysql_fetch_assoc($result);
if (empty($myrow['password'])) {
exit ("<div id=\"ref_err\">Извините, введённое вами имя пользователя или пароль неверны. <a href='../index.php'>Главная страница</a></div>");
} else {
if ($myrow['password']==$password) {
$_SESSION['login']=$myrow['login']; 
$_SESSION['id']=$myrow['id'];
if(isset($_POST['savelogin'])) {
//setcookie("login", $_SESSION['login'], time() + 60*60*24*30);
//setcookie("id", $_SESSION['id'], time() + 60*60*24*30);
};
header('Refresh: 3; URL=../index.php');
echo "<div id=\"ref_ok\">Вы вошли! Через 2 сек. вы будете перенаправлены на главную страницу.<br>Если Ваш браузер не поддерживает автоматическое перенаправление, перейдите по <a href=\"../index.php\">этой ссылке</a></div>";
} else {
exit ("<div id=\"ref_err\">Извините, введённый вами login или пароль неверный. <a href='../index.php'>Главная страница</a></div>");
};
};
?>
</div>
</body>
</html>
при входе шаблон входа сменяется с такого вида:
Посмотреть вложение 4993
на такой:
Посмотреть вложение 4994

это наглядный индикатор того, вошел или нет

вопрос - почему, когда сразу вхожу он работает на ура, а как только уже под сессией прохожу по какой-либо странице внутри сайта форма ввода показывается (как будто не залогинен)? вся мистика в том, что когда ЕЩЁ РАЗ прохожу по любой ссылке формы нет и видно, что я вошел на протяжении всей сессии вплоть до выхода.
 

Вложения

  • 8.6 КБ Просмотры: 38
  • 3.4 КБ Просмотры: 42

-master-

Well-known member
14.01.2012
616
12
#3
да и зачем там вообще 2 значения хранить, держите что-то одно, на худой конец сразу зафетченый ассоц
 

staromand

New member
05.02.2012
0
0
#4
спасибо за предложенную помошь
уже не актуально, конечно, но будет полезно другим, столкнувшимся с подобной проблемой
проблема была в кэшировании страниц