Примеры решения задач

Задача

Задача. Сделайте две страницы: index.php и hello.php. При заходе на index.php спросите с помощью формы имя пользователя, запишите его в сессию. При заходе на hello.php поприветствуйте пользователя фразой "Привет, %Имя%!".

Решение:

Страница index.php:

<form action="" method="GET">
	<input type="text" name="username">
	<input type="submit">
</form>

<?php
	//Если форма была отправлена и имя не пустое:
	if (!empty($_REQUEST['username'])) {
		session_start(); //стартуем сессию
		$_SESSION['username'] = $_REQUEST['username']; //пишем в сессию
	}
?>

Страница hello.php:

<?php
	session_start(); //стартуем сессию

	//Если есть данные в сессии об имени пользователя:
	if (!empty($_SESSION['username'])) {
		echo $_SESSION['username']; //выведем имя на экран
	}
?>

Задача

Задача. Спросите у пользователя телефон с помощью формы. Затем сделайте так, чтобы в другой форме (поля: имя, фамилия, телефон) при ее открытии поле телефон было автоматически заполнено.

Спрашиваем телефон:

<form action="" method="GET">
	<input type="text" name="phone">
	<input type="submit">
</form>

<?php
	//Если форма была отправлена и телефон не пустой:
	if (!empty($_REQUEST['phone'])) {
		session_start(); //стартуем сессию
		$_SESSION['phone'] = $_REQUEST['phone']; //пишем телефон в сессию
	}
?>

Другая форма:

<?php
	session_start(); //стартуем сессию

	//Если телефон есть в сессии - запишем его в переменную $phone:
	if(!empty($_SESSION['phone']))
		$phone = $_SESSION['phone'];
	else
		$phone = '';
?>

<form action="" method="GET">
	<input type="text" name="name">
	<input type="text" name="surname">

	<!-- Заполним атрибут value переменной $phone: -->
	<input type="text" name="phone" value="<?php echo $phone ?>">

	<input type="submit">
</form>

Задачи для решения

Работа с сессиями

Сделайте две страницы: index.php и test.php. При заходе на index.php спросите с помощью формы страну пользователя, запишите ее в сессию. При заходе на test.php выведите страну пользователя.

Запишите в сессию время захода пользователя на сайт. При обновлении страницы выводите сколько секунд назад пользователь зашел на сайт.

Спросите у пользователя email с помощью формы. Затем сделайте так, чтобы в другой форме (поля: имя, фамилия, пароль, email) при ее открытии поле email было автоматически заполнено.

Сделайте счетчик обновления страницы пользователем. Данные храните в сессии. Скрипт должен выводить на экран количество обновлений. При первом заходе на страницу он должен вывести сообщение о том, что вы еще не обновляли страницу.

Сделайте две страницы: index.php и form.php. При заходе на index.php спросите с помощью формы город и возраст пользователя. На form.php сделайте форму с полями 'Имя', 'Возраст', 'Город'. При заходе на form.php сделайте так, чтобы поля 'Возраст' и 'Город' уже были заполнены.

Добавьте в предыдущую задачу страницу logout.php. При заходе на нее разрушайте сессию пользователя.

Реализуйте тест по принципу 'одна страница сайта - одна задача'. Запомните результаты ответов пользователя в сессию.