<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

В курсе Вы узнаете всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

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

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

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

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

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

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

Как сохранять данные в форме

Как сохранять данные в форме

Думаю, многие из Вас встречали сайты, где Вы полчаса заполняли какую-нибудь форму, затем у Вас была какая-то ошибка, и Вы возвращались обратно к форме, однако, все данные были стёрты. Чтобы так не бесить пользователей, надо обязательно позаботиться о сохранении данных в форме. И об этом я сегодня расскажу.

Начнём с самого простого, а именно с использования атрибута autocomplete:

<form autocomplete="on">

Теперь браузер будет сохранять введённые ранее в эту форму данные. Однако, есть один нюанс. Это сохранение зависит от настроек браузера, и далеко не всегда, во-первых, сработает, а, во-вторых, сработает как надо. Поэтому я использую второй, более сложный, но и более надёжный способ.

Состоит он в том, что после передачи формы, все данные оттуда сохраняются в сессию, а при возврате обратно данные из сессии подставляются в форму. Например, вот такой PHP-скрипт всё это делает:

<?php
  session_start();
  $_SESSION["name"] = $_POST["name"];
  $_SESSION["email"] = $_POST["email"];
  header("Location: ".$_SERVER["HTTP_REFERER"]);
  exit;
?>

И теперь HTML-код формы:

<form name="myform" action="request.php" method="post">
  <input type="text" name="name" value="<?=$_SESSION["name"]?>" />
  <input type="text" name="email" value="<?=$_SESSION["email"]?>" />
  <input type="password" name="password" />
</form>

Вот так подставляются сохранённые данные в форму. Более того, Вы вправе выбирать, какие данные сохранять, а какие нет. Например, пароль сохранять однозначно не стоит, так же не стоит сохранять ввод капчи и другие аналогичные данные.

Таким образом, Вы теперь уже должны знать, как сохранять данные в форме.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (6):

kuller kuller 08.04.2013 10:10:59

при этом к $_SESSION следует добавлять хотя бы strip_tags

Ответить

vkibalyuk@gmail.com vkibalyuk@gmail.com 08.04.2013 18:24:29

Лучше использовать Ajax при отправке данных с формы обработчику пхп(данные формы так и останутся на странице пользователя), иначе сохранение куков с важными данными у клиента может произвести к краже куков через уязвимости сайта, например с помощью XSS атаки.

Ответить

andrew11 andrew11 20.11.2013 17:08:32

Михаил, как вы считаете, что луше писать <?php echo $a; ?> или <?=$a?> ?

Ответить

tikkiwiki tikkiwiki 20.11.2013 17:20:03

Здравствуйте Андрей. Пишите как Вам удобнее и как привыкли, разницы нет никакой, соответственно лучше или хуже быть ни то ни другое не может. И <?=$a?> этот вариант мне вообще не понятен. Возможно Вы имели ввиду: <? echo $a; ?>

Ответить

ODYBAN ODYBAN 06.02.2015 22:38:47

Мне кажется, что было б лучше сделать так: $_SESSION["name"] = htmlspecialchares($_POST["name"]);

Ответить

coolm coolm 30.10.2015 17:03:51

Подскажите, пожалуйста, возможно ли уже введенные данные в течении сессии сразу направить на конкертный e-mail?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.