<MyRusakov.ru />

JavaScript, jQuery и Ajax с Нуля до Гуру

JavaScript, jQuery и Ajax с Нуля до Гуру

Видеокурс "JavaScript, jQuery и Ajax с Нуля до Гуру" научит Вас "вдыхать жизнь" в страницы, делая их с потрясающими эффектами и максимальным удобством для пользователя.

Курс научит Вас писать скрипты на JavaScript, а также обучит использованию библиотеки jQuery и технологии Ajax.

Практически любой красивый сайт (с красивыми галереями изображений, слайдерами, плавными переходами и так далее) использует jQuery. А практически на любом серьёзном сайте вовсю используется технология Ajax, которая делает работу с сайтом максимальной удобной.

Поэтому курс "JavaScript, jQuery и Ajax с Нуля до Гуру" Вам просто необходим, если Вы хотите создавать по-настоящему достойные сайты.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Кнопка “запомнить“ при авторизации
17.07.2012 06:06:45 Кнопка “запомнить“ при авторизации Сообщение #1
Default

Default

Эксперт

Эксперт

Дата регистрации:
12.06.2012 15:20:27

Сообщений: 102

Удалил и снова установил денвер и стало все нормально.
index.php

<?php session_start();
if(isset($_COOKIE['remember'])){
header("Location:room.php";
}
if(isset($_POST['go'])){
if(isset($_POST['name'])){
$_SESSION['name'] = $_POST['name'];
if(isset($_POST['remember'])){

setcookie('remember',$_SESSION['name'], time()+60);

}

header("Location:room.php";

}

}
?>
<form action = '' method = 'POST'>
Имя:<br/>
<input type = 'text' name = 'name' ><br/>
<input type = 'checkbox' name = 'remember' ><br/>
<input type = 'submit' name = 'go' value = 'Пошел'>
</form>

room.php

<?php session_start();
if(!isset($_SESSION['name']))
header("Location:index.php";
echo "Wello, ".$_SESSION['name'];
?>

имя отображается, все хорошо, но только до закрытия броузера! после закрытия броузера и его открытия перехеода по адресу index.php либо room.php выдает в броузере такую ошибку "На этой странице обнаружена циклическая переадресация" - это значит, что кука на странице index.php установлена, поэтому меня перенапровляет на room.php, а на странице room.php идет проверка существует ли $_SESSION['name'] которая по сути должна быть записанная в куках, короче, он не находит эту $_SESSION['name'] и перенаправляет снова на index.php и гоняет туда - суда. вопрос, почему так? ведь $_SESSION['name'] записан в куках и должен работать нормально и при вызове $_SESSION['name'] после повторного открытия браузера должен срабатывать.
И еще если на странице room.php делать так, то нормально все будет после закрытия и снова открытия броузера

<?php session_start();
$_SESSION['name'] = $_COOKIE['remember'];
echo "Wello, ".$_SESSION['name'];
?>

ну или

<?php session_start();
$_COOKIE['remember'];
echo "Wello, ".$_COOKIE['remember'];
?>
Профиль Ответить
17.07.2012 10:41:52 Кнопка “запомнить“ при авторизации Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Всё правильно, сессия на она и сессия, что служит только до закрытия браузера. А вот куки уже для того, чтобы сохранить данные межу заходами. В Вашем примере сохраняется кука remember с именем пользователя, поэтому только из неё у Вас и получается восстановить имя пользователя.
Профиль Ответить
17.07.2012 17:54:01 Кнопка “запомнить“ при авторизации Сообщение #3
Default

Default

Эксперт

Эксперт

Дата регистрации:
12.06.2012 15:20:27

Сообщений: 102

То есть надо сделать приблизительно следующее:

if(!isset($_SESSION[login]) && isset($_COOKIE['remember'])){
$_SESSION['login'] = $_COOKIE['remember']
// а в случаи если нет кук, то делать проверку есть ли $_SESSION['login']
}

так?
Профиль Ответить
17.07.2012 19:29:03 Кнопка “запомнить“ при авторизации Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Да, суть такая.
Профиль Ответить