Примеры решения задач
Задача
Задача. Спросите город пользователя с помощью формы. Результат запишите в переменную $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>