Проблема с скриптом авторизации - не могу убить сессии.

Armageddance

Новичок
Собственно, изначально система авторизации была рабочая, была построена на константах файла-конфига и имела следующий вид:

PHP:
session_start();
	include("dbconnect.php");   
	if (isset($_POST["authorize"]))
            $password=$_POST["password"];
            $login=$_POST["login"];
	{       
		if (!strcmp($_POST["login"], ADMIN_LOGIN) && !strcmp($_POST["password"], ADMIN_PASS))
		{ 
			$_SESSION["log"] = ADMIN_LOGIN;
			$_SESSION["pass"] = ADMIN_PASS;
			header("Location: index.php");
		}
		else $errorStr = "Invalid login and/or password";
	}

а во всех файлах, в которых требуется авторизация, в начале стояла следующая проверка:

PHP:
include ("dbconnect.php");
session_start();
include("checklogin.php");
if (!isset($_SESSION["log"]) || !isset($_SESSION["pass"])) //unauthorized
	{
		header("Location: access_admin.php");
		die("<script>window.location='access_admin.php';</script>");
	}
	if (isset($_GET["logout"])) 
	{   
		$_SESSION["log"] = "";
		$_SESSION["pass"] = "";
		unset($_SESSION["log"]);
		unset($_SESSION["pass"]);
		die("<script>window.location='access_admin.php';</script>");
	}
и файл checklogin.php: 
if ((isset($_SESSION["log"]) && isset($_SESSION["pass"])) && (strcmp($_SESSION["log"], ADMIN_LOGIN) || strcmp($_SESSION["pass"], ADMIN_PASS)))
	{
		unset($_SESSION["log"]);
		unset($_SESSION["pass"]);
	}

Собственно, желая организовать авторизацию чеорез БД, я привел ее к следующему:

PHP:
session_start();
	include("dbconnect.php");   
	if (isset($_POST["authorize"]))
            $password=$_POST["password"];
            $login=$_POST["login"];
	{       
                $authorize="SELECT login, password FROM admin WHERE login='$login'";
            $authorize=mysqli_query($connector, $authorize);
            while($row=mysqli_fetch_assoc($authorize)){
                $real_pass=$row['password'];
                $real_login=$row['login'];
                 }
                if (!strcmp($login, $real_login) && !strcmp($password, $real_pass))
                {
                        $_SESSION["log"] = $real_login;
			$_SESSION["pass"] = $real_pass;
			header("Location: index.php");
                }
                else $errorStr = "Invalid login and/or password";
	}

Авторизация происходит, но вот при проверке в файле checklogin.php я не знаю чем заменить ADMIN_LOGIN и ADMIN_PASS. Пока происходит редирект на страницу авторизации без входа.
Если же убрать checklogin.php совсем, то тогда авторизация не срабатывает, то есть, невозможно разлогиниться...

Помогите разобраться плиз.
 
переделай дефайны define('ADMIN_LOGIN', $_SEESION['log']);
 
все равно скрипт работает не корректно...
авторизация происходит, но разлогиниться невозможно...
 
PHP:
include ("dbconnect.php");
session_start();
define('ADMIN_LOGIN', $_SESSION['log']);
define('ADMIN_PASS', $_SESSION['pass']);
include("checklogin.php");
if (!isset($_SESSION["log"]) || !isset($_SESSION["pass"])) //unauthorized
	{
		//show authorization form
		header("Location: access_admin.php");
		die("<script>window.location='access_admin.php';</script>");
	}
	//logout?
	if (isset($_GET["logout"])) //logout
	{   
		//show authorization form

		$_SESSION["log"] = "";
		$_SESSION["pass"] = "";
		unset($_SESSION["log"]);
		unset($_SESSION["pass"]);
		die("<script>window.location='access_admin.php';</script>");
	}

и файл checklogin.php:
PHP:
if ((isset($_SESSION["log"]) && isset($_SESSION["pass"])) && (strcmp($_SESSION["log"], ADMIN_LOGIN) || strcmp($_SESSION["pass"], ADMIN_PASS)))
	{
		unset($_SESSION["log"]);
		unset($_SESSION["pass"]);
	}
разлогиниваюсь
PHP:
php if (isset($_SESSION["log"]) && isset($_SESSION["pass"])) echo "<a href='access_admin.php?logout'>Выйти</a>";
 
а зачем ты в checklogin, ансетишь данные из сессии?
 
Если честно, вообще не понимаю нафига этот checklogin нужен. Отключил его.
Но все разлогиниться не могу.
 
заработало вот в таком виде:

PHP:
//error_reporting(E_ALL);
include ("dbconnect.php");
session_start();
if (empty($_SESSION["log"]) || empty($_SESSION["pass"])) //unauthorized
	{       
		header("Location: access_admin.php");
		die("<script>window.location='access_admin.php';</script>");
	}
	//logout?
	if (isset($_GET["logout"])) //logout
	{   
		//show authorization form

		$_SESSION["log"] = "";
		$_SESSION["pass"] = "";
		unset($_SESSION["log"]);
		unset($_SESSION["pass"]);
		die("<script>window.location='access_admin.php';</script>");
	}
 
PHP:
        $_SESSION["log"] = "";
        $_SESSION["pass"] = "";
        unset($_SESSION["log"]);
        unset($_SESSION["pass"]);
Предлагаю модернизировать этот кусок:
PHP:
        while(strlen($_SESSION["log"])) $_SESSION["log"]= substr($_SESSION["log"],0,-1);
        while(strlen($_SESSION["pass"])) $_SESSION["pass"]= substr($_SESSION["pass"],0,-1);
        unset($_SESSION["log"]);
        unset($_SESSION["pass"]);
 
Блин, в Firefox сайт не открывается, пишет "Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится."
 
вот фаир гавно да??

P.s. оттащите мну от ящика ну!!!
 
Да причем тут файр, просто я накосячил с сессиями что-то, третие сутки не могу разобраться как правильно сделать, наверное придется отказаться от авторизации через базу данных.
 
Сверху