Проблема авторизации на сессиях в 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 я вывожу сессиию и там все норм
но в 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