Skip to content

Instantly share code, notes, and snippets.

@deuterium7
Last active July 28, 2017 10:32
Show Gist options
  • Save deuterium7/3a884458592f5447c9efc603bd605dc5 to your computer and use it in GitHub Desktop.
Save deuterium7/3a884458592f5447c9efc603bd605dc5 to your computer and use it in GitHub Desktop.
Zabornyi Alex
<!DOCTYPE html>
<html>
<head>
	<title>Работа с формами</title>
	<style type="text/css">
		.send, .error { margin-top: 15px; }
		.send { border: 1px solid green; }
		.error { border: 1px solid red; }
	</style>
</head>
<body>
	<form method="POST">
		<div>
			<p><strong>Тестовая форма</strong></p>
			<p>Имя пользователя: <input type="text" name="user" value="<?= (isset($_POST['user'])) ? $_POST['user'] : ""; ?>"></p>
			<p>Пароль: <input type="password" name="password" value="<?= (isset($_POST['password'])) ? $_POST['password'] : ""; ?>"></p>
			<p>Повторите пароль: <input type="password" name="password2" value="<?= (isset($_POST['password2'])) ? $_POST['password2'] : ""; ?>"></p>
			<p>Скрытое поле hidden<input type="hidden" name="hidden" value="SECRET!!!"></p>
			<hr>	
		</div>
		<div>
			<p>Независимые переключатели (checkbox):</p>
			<span><input type="checkbox" name="check1" value="one">Вариант первый</span>
			<span><input type="checkbox" name="check2" value="two">Вариант второй</span>
			<span><input type="checkbox" name="check3" value="three" checked>Вариант третий (по умолчанию)</span>
			<hr>
		</div>		
		<div>
			<p>Зависимые переключатели (radio):</p>
			<span><input type="radio" name="radio" value="Yes" checked>Да</span>
			<span><input type="radio" name="radio" value="No">Нет</span>
			<hr>	
		</div>
		<div>
			<p>Многострочное текстовое поле (textarea):</p>
			<p><textarea rows="10" cols="60" name="text">Текст по-умолчанию</textarea></p>
			<hr>
		</div>
		<div>
			<p>Список с единственным выбором:</p>
			<p>
				<select name="day_s">
					<option value="day1">Понедельник</option>
					<option value="day2">Вторник</option>
					<option value="day3" selected>Среда</option>
					<option value="day4">Четверг</option>
					<option value="day5">Пятница</option>
					<option value="day6">Суббота</option>
					<option value="day7">Всокресенье</option>
				</select>
			</p>
			<p>Список с множественным выбором (multiple):</p>
			<p>
				<select name="day_m[]" multiple size="7">
					<option value="day1" selected>Понедельник</option>
					<option value="day2">Вторник</option>
					<option value="day3">Среда</option>
					<option value="day4">Четверг</option>
					<option value="day5">Пятница</option>
					<option value="day6">Суббота</option>
					<option value="day7">Всокресенье</option>
				</select>
			</p>
			<hr>
		</div>
		<div>
			<span><input type="submit" name="send" value="Отослать форму"></span>
			<span><input type="reset" name="reset" value="Очистить форму"></span>
		</div>
		<div class="error">
		<?php 
			$bool = true; // главный флажок об отсутствии ошибок

			for (;;) {
				// стартовые поля
				$elems = array('user','password','password2','hidden','radio','text','day_m');
				foreach ($elems as $value) {
					if (!isset($_POST["$value"]) || empty($_POST["$value"])) {
						echo "Ошибка! Не все поля заполнены!";
						$bool = false;
						break 2;
					}

					if ($value == 'day_m' && count($_POST[$value]) < 2) {
						echo "Ошибка! Хотя-бы два multiselect'а должны быть выбраны!";
						$bool = false;
						break 2;
					}
				}

				// проверка паролей
				if ($_POST['password'] != $_POST['password2']) {
					echo "Ошибка! Пароли не совпадают!";
					$bool = false;
					break;
				}

				// checkbox'ы
				$checks = array('check1','check2','check3');
				$ch = 0;
				foreach ($checks as $value) {
					if (isset($_POST["$value"]) || !empty($_POST["$value"])) {
						$ch++;
						break;
					}
				}

				if ($ch == 0) {
					echo "Ошибка! Хотя-бы один checkbox должен быть заполнен!";
					$bool = false;
					break;
				}

				break;
			}
		?>
		</div>
		<div class="send">
		<?php
			if ($bool) {
				echo "Переданные параметры:<br>";
				echo "name: ".$_POST['user']."<br>";
				echo "password1: ".$_POST['password']."<br>";
				echo "password2: ".$_POST['password2']."<br>";
				echo "hidden: ".$_POST['hidden']."<br>";

				foreach ($checks as $key => $value) {
					if (isset($_POST["$value"]) || !empty($_POST["$value"])) {
						$num = $key + 1;
						echo "checkbox #$num: ".$_POST["$value"]."<br>";
					}
				}

				echo "radio: ".$_POST['radio']."<br>";
				echo "textarea: ".$_POST['text']."<br>";
				echo "day_s: ".$_POST['day_s']."<br>";
				echo "day_m: ", var_dump($_POST['day_m']);
			}
		?>
		</div>
	</form>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment