<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

Подписавшись по 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

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