Здравствуйте. Помогите пож. с проблемкой.
У меня значит на индексе сначала идёт проверка правильности ввода:
Далее, собственно, сама админка - таблицы с сообщениями, ссылками на удаление и т.д
И в самом конце - форма ввода пароля и логина.
Проблема в следующем - судя по всему после ввода пароля идёт редирект обратно на форму ввода, хотя должна открываться сама админка, ну, то, что после последней строчки описанного выше кода.
Я менял локейшн на главную страницу сайта - открывает как положено.
Наверное
куки не инициализируются, не знаю. Надеюсь на вашу помощь
Спустя 7 минут, 48 секунд (13.10.2009 - 22:37) twin написал(а):
В куку нелзя поместить массив в чистом виде Нужно сериализовать его функцией serialize()
Упс, прошу пардона, слона и не заметил
Спустя 6 минут, 57 секунд (13.10.2009 - 22:44) Oyeme написал(а):
не подавляй ошибки через "@"
ВЫведи массив Cookie
print_r($_COOKIE);
Пересмотри все переменный пере дынные постом,значит что-то true.
Спустя 2 минуты, 35 секунд (13.10.2009 - 22:47) twin написал(а):
Попробуй это.
PHP |
<?php $cookie = "А вот и кука. <a href='?delet=1'>Удалить</a>"; $test = "Нет куки. <a href='?install=1'>Поставить</a>"; if(isset($_GET['delet'])) { setcookie("test", "", time()-3600*24, "/" ); header("location: ".$_SERVER['PHP_SELF']); } elseif(isset($_GET['install'])) { setcookie("test", $cookie, time()+3600*24*30, "/"); header("location: ".$_SERVER['PHP_SELF']); } $test = isset($_COOKIE['test'])?$_COOKIE['test']:$test; echo $test; |
Проблема с кукисами где то у тебя. Скрипт рабочий вообще то, я проверил.
Спустя 6 минут, 40 секунд (13.10.2009 - 22:54) Хозяин Огня написал(а):
Да, на денвере и у меня работает. Не работает после заливки на хост.
twin, а это куда сувать? Или это чисто для проверки работы куков?
Спустя 2 минуты, 46 секунд (13.10.2009 - 22:56) twin написал(а):
Цитата |
Или это чисто для проверки работы куков? |
да. залей на сервак и поклацай
Спустя 13 минут, 8 секунд (13.10.2009 - 23:10) Хозяин Огня написал(а):
Проблемка разрешилась - оказывается был косяк с экранированием кавычек. Всем спасибо за отзывчивость.
Спустя 17 минут, 55 секунд (13.10.2009 - 23:27) Хозяин Огня написал(а):
А не подскажите, как сделать то же самое только с помощью сессий?
Спустя 11 минут, 1 секунда (13.10.2009 - 23:38) Gram написал(а):
Спустя 1 час, 42 минуты, 8 секунд (14.10.2009 - 01:21) twin написал(а):
Цитата |
А не подскажите, как сделать то же самое только с помощью сессий? |
Ну если прям тоже самое
PHP |
<? include "../config.php"; session_start(); if (isset ($_POST['login']) && ($_POST['login']==$adm) && isset ($_POST['pass']) && ($_POST['pass']==$ps)) { $_SESSION['session'] = array ("login" => $adm, "pass" => md5($ps)); header ("Location: index.php"); // редирект на эту же страничку exit; } else if ( isset ($_SESSION["session"]) ) { // Вход уже выполнен, проверяем корректность данных в сессии: if ( isset ($_SESSION["session"]["login"]) && $_SESSION["session"]["login"] == $adm && isset ($_SESSION["session"]["pass"]) && $_SESSION["session"]["pass"] == md5($ps)) { |
Спустя 5 часов, 32 минуты, 51 секунда (14.10.2009 - 06:53) Хозяин Огня написал(а):
Gram , в том смысле что кроссовки не одевают под смокинг или что это то же самое, тока вид чуть другой?
twin , спасибо. А какой способ предпочтительнее? Или без разницы?
Спустя 2 часа, 17 минут, 19 секунд (14.10.2009 - 09:11) glock18 написал(а):
Хозяин Огня
Оба варианта имеют право на жизнь. Во только с куками нужно быть осторожнее - ты кладешь в них в незашифрованном виде логин и пароль пользователя. В случае с куками, лучше всегда их шифровать (мое имхо) + никогда не хранить в них (даже в зашифрованном виде) пароль и логин. валидность куки лучше проверять как раз при помощи шифрования, а не авторизацие по приходящим кукам.
Второй вариант: ограничить отправку кук (всех кроме сессионной) только по защищенному протоколу. Хотя и в этом случае желательно их кодировать.
Спустя 2 минуты, 15 секунд (14.10.2009 - 09:13) twin написал(а):
Если сравнивать именно эти два варианта, то на сессиях предпочтительнее, потому что
а)
Куки могут быть отключены
б) В
кукис выносить пароль даже в шифрованном виде небезопасно.
Но. Сессия живет пока открыт браузер и по умолчанию 24 минуты. Если нужна аунтификация на долго, то без куккиса не обойтись.
PS синхронно как
Спустя 3 часа, 52 минуты, 3 секунды (14.10.2009 - 13:05) Хозяин Огня написал(а):
Не сходится:
Цитата (glock18) |
никогда не хранить в них (даже в зашифрованном виде) пароль и логин. |
и
Цитата (twin) |
Если нужна аунтификация на долго, то без куккиса не обойтись. |
twin, попробовал твой последний пример. Сессия кончается с закрыитем браузера. А если нужно чтобы можно было заканчивать сессию собственноручно? Типа кнопки "выход"?
Сделал так:
PHP |
<form method="POST"> <input type=submit name="destroy_sess" value="Выход"> <? if (isset($_POST['destroy_sess'])) session_destroy();
|
но выходит только после второго нажатия.
Спустя 7 минут, 39 секунд (14.10.2009 - 13:13) glock18 написал(а):
Хозяин Огнясходится. если построить диаграмму Эйлера Венна, то и не такое сойдется
хранить в куках стоит разве что id или временный хэш. пароль хранить в незакодированном виде... а ты знаешь, что все
куки элементарно перехватываются? так хотя бы пароль не подавать для входа.
Спустя 1 час, 18 минут, 47 секунд (14.10.2009 - 14:31) twin написал(а):
Цитата |
Сделал так:PHP <form method="POST"> <input type=submit name="destroy_sess" value="Выход"> <? if (isset($_POST['destroy_sess'])) session_destroy();
но выходит только после второго нажатия. |
Нужно перед уничтожением сессии удалить переменные. Потому что они уже в оперативке и сессия тут не при чем. Надо так:
PHP |
if (isset($_POST['destroy_sess'])) { session_unset(); session_destroy(); } |
Только обнулятся все переменные. Если нужно какие то оставить, то удалять надо по одной, функцией unset();
Спустя 7 часов, 3 минуты, 18 секунд (14.10.2009 - 21:35) Хозяин Огня написал(а):
glock18 , понятно.
twin, всё равно выходит только после второго нажатия
Спустя 2 часа, 7 минут, 34 секунды (14.10.2009 - 23:42) Gram написал(а):