Проблема авторизации на сессиях в IE, Chrome

1. Вова (22.07.2011 / 18:32)
Написал скрипт авторизции на сессиях с Opera заходит все на ура и работает отлично на как толь пытаюсь зайти через IE или Chrome страница грузится постоянно незнаю что делать и в чем проблема. Единственное помогает когда я отключаю проверку на существование сессии.
<?php 
//Скрипт проверки на авторизацию 
session_start (); 
if (isset($_SESSION['id'])){ 
    header ("Location: ../index.php"); 
} 
else 
{ 
    header ("Location: ../login.php"); 
} 
?>


2. Андрей (22.07.2011 / 18:42)
Ну так где назначается $_SESSION['id']?
Это просто опера видит что там бесконечная переадрисация и перестаёт. Всё правельно делают IE и Chrome.

3. Вова (22.07.2011 / 18:49)
3. ZiGR, попробывал всеравно ничего не происходит =*(

Добавлено через 00:56 сек.
вот сам скрипт авторизации
<?php
session_start ();
//Подключаем базу данных
include ('db.php');
//POST-данные приравниваем к обычным переменным
if (isset ($_POST['username'])) {$UserName = $_POST['username']; if ($UserName == '') {unset ($UserName);}}
if (isset ($_POST['password'])) {$Password = $_POST['password']; if ($Password == '') {unset ($Password);}}
//Делаем проверку на POST данные
if (isset ($UserName) && isset($Password))
{
	//Сравниваем данные из БД с данными из формы
	$ReadLogin = mysql_query("SELECT `id` FROM users WHERE user='".$UserName."' AND password='".$Password."'",$connect);
	$result = mysql_fetch_array($ReadLogin);
	if (isset($result['id']))
	{
		//Записываем сессию и делаем перехож на главную стр.
		$_SESSION['id'] = $result['id'];
		header ('Location: index.php');
		exit;
	}
	else
	{
		//Вывод ошибки на экран
		echo '<div class="status"><img src="style/False.png" width="128" height="128" alt="" longdesc="" /><br/><br/><b>Пароль или логин неверный.<br/><br/>Идёт перенаправление...</b></div>';
		echo "<meta http-equiv='refresh'; content='3; url=login.php'> ";
	}
}
else
{
	//Вывод ошибки на экран
	echo '<div class="status"><img src="style/False.png" width="128" height="128" alt="" longdesc="" /><br/><br/><b>Вы заполнили не все поля!<br/><br/>Идёт перенаправление...</b></div>';
	echo "<meta http-equiv='refresh'; content='3; url=login.php'> ";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Внимание</title>
<link rel="shortcut icon" href="style/favicon.ico" />
<link href="style/book.css" rel="stylesheet" type="text/css" />
</head>
<body>
</body>
</html>


4. ramzes (22.07.2011 / 19:03)
header ('Location: index.php'); SID не передан, куки не используются,
конечно не будет работать, сессия то обрывается

5. Вова (22.07.2011 / 19:13)
я чет не понял что мне сделать !

6. ramzes (22.07.2011 / 19:15)
header ('Location: index.php?'.session_name().'='.session_id());
так попробуй, а лучше куки включи и хранение ид сессии в них

7. Вова (22.07.2011 / 19:19)
поменял всеравно не грузится =(

Добавлено через 01:50 сек.
8. ramzes, отпиши пожалуйста в icq352559304

8. ramzes (22.07.2011 / 20:31)
а ты уверен что авторизация проходит?
убери редирект, включи вывод ошибок, проверь в общем что бы запрос точно возвращал не пустой id
потом уже сессию проверяй

9. Вова (23.07.2011 / 12:53)
сессия существует после авторизцаии в opera я вывожу сессиию и там все норм sad но в IE полная лажа

10. Вова (23.07.2011 / 14:11)
я уже подключил cokkies всеравно IE,Chromem,FireFox грузятся постоянно. Сессия и cokkie присутствуют я подозреваю что у меня не правельно написан скрипт проверки на авторизацию.
<?php  
//Скрипт проверки на авторизацию  
if (isset ($_COOKIE['User']))
{
	header ("Location: /index.php");
}
else
{
	header ("Location: /login.php");
}
?>


11. ramzes (23.07.2011 / 14:46)
тогда саму структуру опиши, имена файлов, и какой что делает, где проверка, где редиректы и куда
<?php
//Скрипт проверки на авторизацию
if (isset ($_COOKIE['User']))
{
header ("Location: /index.php");
}
else
{
header ("Location: /login.php");
}
?>
надеюсь ты это не в index.php пишешь то?

12. Вова (23.07.2011 / 15:40)
нет это detected.php
<?php 
//Скрипт проверки на авторизацию 
if (isset ($_COOKIE['User'])) 
{ 
 header ("Location: /index.php"); //переход на главну стр. сайта
} 
else 
{ 
 header ("Location: /login.php"); //переход на форму со свходом
} 
?>

далее скрипт самой авторизации

<?php
session_start ();
//Подключаем базу данных
include ('db.php');
//POST-данные приравниваем к обычным переменным
if (isset ($_POST['username'])) {$UserName = $_POST['username']; if ($UserName == '') {unset ($UserName);}}
if (isset ($_POST['password'])) {$Password = $_POST['password']; if ($Password == '') {unset ($Password);}}
//Делаем проверку на POST данные
if (isset ($UserName) && isset($Password))
{
	//Сравниваем данные из БД с данными из формы
	$UserName = mysql_escape_string($UserName);
	$Password = mysql_escape_string($Password);
	$ReadLogin = mysql_query("SELECT `id` FROM users WHERE user='".$UserName."' AND password='".$Password."'",$connect);
	$result = mysql_fetch_array($ReadLogin);
	if (isset($result['id']))
	{
		//Записываем сессию и делаем перехож на главную стр.
		$_SESSION['id'] = $result['id'];
		SetCookie("User",$_SESSION['id'],time()+3600);
		header ('Location: index.php');
		exit;
	}
	else
	{
		//Вывод ошибки на экран
		echo '<div class="status"><img src="style/False.png" width="128" height="128" alt="" longdesc="" /><br/><br/><b>Пароль или логин неверный.<br/><br/>Идёт перенаправление...</b></div>';
		echo "<meta http-equiv='refresh'; content='3; url=login.php'> ";
	}
}
else
{
	//Вывод ошибки на экран
	echo '<div class="status"><img src="style/False.png" width="128" height="128" alt="" longdesc="" /><br/><br/><b>Вы заполнили не все поля!<br/><br/>Идёт перенаправление...</b></div>';
	echo "<meta http-equiv='refresh'; content='3; url=login.php'> ";
}
?>


13. Вова (25.07.2011 / 11:35)
Тема закрыта я уже сам разобрался.

URL: https://visavi.net/topics/23482