[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите справиться с циклической переадресацией
xew
Здраствуйте, начал делать свой движок (впервые) столкнулся с проблемой циклической переадресации не могу найти где эна просиходит помогите чем сможете. Так же прикрутил шаблонизатор как на DLE может там в чем то проблема. Заранее спасибо!


<?php session_start();

$name = $_POST["name"];
$password = $_POST["password"];
$submit = $_POST["submit"];
$_SESSION["error"] = "";

if (isset($_GET["do"]) and $_GET["do"]=="login")
{
$content = 'login.tpl';
}
else
{
$content = 'content.tpl';
}

if (isset($_SESSION["logged_user"]))
{
header("Location: index.php");

if (isset($_GET["do"]) and $_GET["do"]=="logout")
{
session_destroy();
header("Location: index.php?do=login");
}
}

else
{
header("Location: index.php?do=login");
if($submit){
if(($name=="admin")&&($password=="zzz"))
{
$_SESSION["logged_user"] = $name;
header("Location: index.php");
exit;
}
else
{
$_SESSION["error"] = "<br><div class='error'>Имя или пароль введены не правильно!</div>";
}
}
}


define("ROOT", dirname(__FILE__));
include_once(ROOT . "/classes/templates.php");

$tpl = new Template; //инициируем класс
$tpl->dir = 'templates'; //задаём местоположение папки с шаблонами
$tpl->load_template('main.tpl'); //загружаем каркас
$tpl->set('{content}', $tpl->sub_load_template($content)); //подключаем код блока

//подставляем значения переменных

$tpl->set('{user_name}', $_SESSION["logged_user"]);
$tpl->set('{title}', 'Титл)');
$tpl->set('{error}', $_SESSION['error']);

$tpl->compile('main'); //собираем шаблон
echo $tpl->result['main']; //выводим результат работы
$tpl->global_clear(); //очищаем все переменные для возмож

?>




Спустя 7 минут, 18 секунд (26.12.2011 - 09:01) alexbel2404 написал(а):
а переадресовывает куда? в этот файл?

Спустя 2 минуты, 21 секунда (26.12.2011 - 09:03) xew написал(а):
Да. На опере загружает нормально только с задержкой а в Сафари Хром и Мозиле пишет "На этой странице обнаружена циклическая переадресация" !

Как я понимаю проблема вот здесь:


if (isset($_SESSION["logged_user"]))

header("Location: index.php");

if (isset($_GET["do"]) and $_GET["do"]=="logout")
{
session_destroy();
header("Location: index.php?do=login");
}
}

else
{
header("Location: index.php?do=login");
if($submit){
if(($name=="admin")&&($password=="zzz"))
{
$_SESSION["logged_user"] = $name;
header("Location: index.php");
exit;
}
else
{
$_SESSION["error"] = "<br><div class='error'>Имя или пароль введены не правильно!</div>";
}
}
}



Но если не сделать этой проверки то в content можно попасть просто написав index.php ((

Спустя 1 час, 44 минуты, 5 секунд (26.12.2011 - 10:47) alexbel2404 написал(а):
if (isset($_SESSION["logged_user"]))

header("Location: index.php");

вот тут, если ты авторизован, то все время будет переадресовывать на index.php, конечно если код, который ты показал из файла index.php

Спустя 3 часа, 31 секунда (26.12.2011 - 13:48) xew написал(а):
спс да чет я тут протупил ) сделал так переместил строки:


<?php session_start();
$name = $_POST["name"];
$password = $_POST["password"];
$submit = $_POST["submit"];
$_SESSION["error"] = "";

if (isset($_SESSION["logged_user"]))
{
header("Location: index.php");

if (isset($_GET["do"]) and $_GET["do"]=="logout")
{
session_destroy();
header("Location: index.php?do=login");
}
}

else
{
header("Location: index.php?do=login");
if($submit){
if(($name=="admin")&&($password=="mapping"))
{
$_SESSION["logged_user"] = $name;
header("Location: index.php");
exit;
}
else
{
$_SESSION["error"] = "<br><div class='error'>Имя или пароль введены не правильно!</div>";
}
}
}

?>


в auth.php

но вот теперь не знаю как мне сделать так чтобы контент не показывался если человек не залогинен если просто перейти по ссылке index.php

Спустя 28 минут, 33 секунды (26.12.2011 - 14:16) alexbel2404 написал(а):
if (!isset($_SESSION['logged_user']))
{
header("Location: auth.php");
}


вставь в index.php

Спустя 18 минут (26.12.2011 - 14:34) xew написал(а):
if (!isset($_SESSION['logged_user']))
{
header("Location: auth.php");
}


Опять таки циклическая переадрессация. (( Видимо без файла login.php тут не обойтись ?

Спустя 3 часа, 41 минута, 43 секунды (26.12.2011 - 18:16) Guest написал(а):
Сразу после header нужно ставить либо die() либо exit; на ваш вкус smile.gif

Спустя 15 часов, 2 минуты, 49 секунд (27.12.2011 - 09:19) xew написал(а):
спс за помощь die не помогло придумал кое что другое )))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.