| |
|
|
| | Привет всем,
Переехали на новый сервер, там в настройках отключены register_globals (на прошлом были включены).
В результате - не могу залогиниться в собственную панель :(
Есть инклюдящийся ко всем модулям файлик au.php
session_start();
if (!isset($_SESSION['AdminLogin']))
{
header("Location: login.php?path=$REQUEST_URI");
}
|
Собственно фрагмент логина в файле login.php выглядит так:
session_start();
$dta=mysql_fetch_array($res);
$AdminLevel=$dta['level'];
$AdminName=$dta['name'];
$_SESSION['AdminLogin']=$AdminLogin;
$_SESSION['AdminLevel']=$AdminLevel;
$_SESSION['AdminName']=$AdminName;
header("Location: ".$path);
|
Смысл в том, что переменная AdminLogin не устанавливается... в au.php пробовал выводить ее - пусто.
В чем дело, где копать?
.htaccess содержит только инструкции по логину (пароли по .htpasswd), никаких- сессионнных настроек там нет.
Заранее спасибо за хэлп! | |
| |
|
|
| |
|
|
| |
для: LouD
(09.07.2007 в 00:21)
| | | А вообще в login.php не видно чтобы задавалась сама переменная $AdminLogin | |
| |
|
|
| |
|
|
| |
для: parczynski
(09.07.2007 в 00:49)
| | | эта строчка была выше:
$AdminLogin=trim(html_entity_decode($_POST['AdminLogin']));
|
этот login.php как бы из двух частей - то есть проверка на метод передачи параметров, если передача по POST - он обрабатывает переданные параметры; если GET - то рисуется форма:
<div STYLE="position:absolute; left:40%; top:100px; width:200px; background-color:#0099FF; border:2px solid #3366EE; text-align:center;">
<form METHOD="post" NAME="login">
Логин: <input TYPE="TEXT" NAME="AdminLogin" SIZE="15" MAXLENGTH="15"> <br>
Пароль: <input TYPE="PASSWORD" NAME="pass" SIZE="15" MAXLENGTH="15"> <br><br>
<input TYPE="SUBMIT" VALUE="Войти...">
</form>
</div>
|
| |
| |
|
|
| |
|
|
| |
для: LouD
(09.07.2007 в 00:21)
| | | Вместо $REQUEST_URI и им подобных, следует писать $_SERVER['REQUEST_URI']; | |
| |
|
|
| |
|
|
| |
для: Trianon
(09.07.2007 в 01:50)
| | | Да, согласен - осталось от старого варианта с global...
Поправить-то поправил, только все равно главная проблема не решена :( | |
| |
|
|
| |
|
|
| |
для: LouD
(09.07.2007 в 07:51)
| | | так может надо написать явно $AdminLogin = $_SESSION['AdminLogin']; ? | |
| |
|
|
| |
|
|
| |
для: Trianon
(09.07.2007 в 09:47)
| | | Мне кажется, мы не совсем друг друга понимаем... :)
В модуле login.php эта переменная берется из переданного формой POST-запроса.
А в модуле проверки au.php я проверяю ее (сессионную переменную AdminLogin на существование.
И честно говоря, я не вижу разницы в коде -
писать
if (!isset($_SESSION['AdminLogin']))
|
либо
$AdminLogin=$_SESSION['AdminLogin'];
if (is_null($AdminLogin))
|
все равно не срабатывает...
"не сработка" выглядит так, что меня снова перебрасывает на пустую форму ввода логина/пароля. То есть факт моего логина в системе не зарегистрирован... | |
| |
|
|
| |
|
|
| |
для: LouD
(09.07.2007 в 22:45)
| | | собственно все заработало...
главная проблема и причина всех ошибок - невнимательность. Для меньшего самобичевания это можно назвать "глаз замылился" :)
Короче причина: не для всех старых глобально-считываемых переменные явно прописал инициализацию... + оставил старый метод $REQUEST_METHOD вместо $_SERVER['REQUEST_METHOD']
спасибо всем, кто пробовал помочь! | |
| |
|
|