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

Задача

Задача. Спросите город пользователя с помощью формы. Результат запишите в переменную $city. Выведите на экран фразу 'Ваш город: %Город%'.

Решение:

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

<?php
	//Если форма была отправлена и город не пустой:
	if (!empty($_REQUEST['city'])) {
		$city = $_REQUEST['city'];
		echo 'Ваш город: '.$city;
	}
?>

Задача . Запрет ввода тегов

Решим предыдущую задачу так, чтобы пользователь не мог вводить теги и сломать нам сайт. Для этого при записи содержимого поля в переменную $city обработаем его (содержимое, то есть $_REQUEST['city']) функцией strip_tags, которая удалит теги (можно вместо нее обработать функцией htmlspecialchars):

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

<?php
	//Если форма была отправлена и город не пустой:
	if (isset($_REQUEST['city'])) {
		$city = strip_tags($_REQUEST['city']);
		echo 'Ваш город: '.$city;
	}
?>

Задача . Скрываем форму после отправки

Давайте сделаем так, чтобы форма после отправки скрывалась:

<?php
	//Если город пустой - покажем форму
	if (isset($_REQUEST['city'])) {
?>
		<form action="" method="GET">
			<input type="text" name="name">
			<input type="submit">
		</form>
<?php
	}
?>

<?php
	//Если форма была отправлена и город не пустой:
	if (isset($_REQUEST['city'])) {
		$city = strip_tags($_REQUEST['age']);
		echo 'Ваш город: '.$age;
	}
?>

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

Формы

Спросите имя пользователя с помощью формы. Результат запишите в переменую $name. Выведите на экран фразу 'Привет, %Имя%'.

Решение:

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

<?php
	if (isset($_REQUEST['name'])) {
		$name = $_REQUEST['name'];
		echo 'Привет,'.$name;
	}
?>

Спросите у пользователя имя, возраст, а также попросите его ввести сообщение (его сделайте в textarea). Выведите эти данные на экран в формате, приведенном под данной задачей. Позаботьтесь о том, чтобы пользователь не мог вводить теги (просто удаляйте их) и таким образом сломать сайт.

Привет, Дмитрий, 25 лет.
Твое сообщение: ...

Решение:

<form action="" method="GET">
	<input type="text" name="name">
	<input type="text" name="age">
	<textarea name="message"></textarea>
	<input type="submit" name="submit">
</form>

<?php
	if (isset($_REQUEST['submit'])) {
		$age = strip_tags($_REQUEST['age']);
		$name = strip_tags($_REQUEST['name']);
		$message = strip_tags($_REQUEST['message']);
		echo "Привет, $name, $age <br> твое сообщение: $message";
	}
?>

Спросите возраст пользователя. Если форма была отправлена и введен возраст, то выведите его на экран, а форму уберите. Если же форма не была отправлена (это будет при первом заходе на страницу) - просто покажите ее.

Решение:

<?php
	if (!isset($_REQUEST['age'])) {
?>
		<form action="" method="GET">
			<input type="text" name="age">
			<input type="submit">
		</form>
<?php
	}
?>

<?php
	if (isset($_REQUEST['age'])) {
		$age = strip_tags($_REQUEST['age']);
		echo 'Ваш возраст: '.$age;
	}
?>

Спросите у пользователя логин и пароль (в браузере должен быть звездочками). Сравните их с логином $login и паролем $pass, хранящихся в файле. Если все верно - выведите 'Доступ разрешен!', в противном случае - 'Доступ запрещен!'. Сделайте так, чтобы скрипт обрезал концевые пробелы в строках, которые ввел пользователь.

Решение:

<form action="" method="GET">
	<input type="text" name="login">
	<input type="password" name="pass">
	<input type="submit" name="submit">
</form>

<?php
	if (isset($_REQUEST['submit'])) {
		$login = 'user';
		$pass = '123456';
		$formLogin = trim($_REQUEST['login']);
		$formPass = trim($_REQUEST['pass']);
		if ($login == $formLogin and $pass == $formPass) {
			echo 'Доступ разрешен!';
		} else {
			echo 'Доступ запрещен!';
		}
	}
?>

Атрибуты value и placeholder

Спросите имя пользователя с помощью формы. Результат запишите в переменную $name. Сделайте так, чтобы после отправки формы значения ее полей не пропадали.

Решение:

<form action="" method="GET">
	<input name="name" value="<?php if (isset($_GET['name'])) echo $_GET['name']; ?>">
	<input type="submit">
</form>
<?php
	if (isset($_REQUEST['submit'])) {
		$name = $_REQUEST['name'];
		echo $name;
	}
?>

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

Решение:

<form action="" method="GET">
	<input name="name" value="<?php if (isset($_GET['name'])) echo $_GET['name']; ?>">
	<textarea name="message">
		<?php if (isset($_GET['message'])) echo $_GET['message']; ?>
	</textarea>
	<input type="submit">
</form>