me@helium 8 lat temu
rodzic
commit
022d2bd90c
1 zmienionych plików z 63 dodań i 0 usunięć
  1. 63 0
      TemplateEngine/phphell.php

+ 63 - 0
TemplateEngine/phphell.php

@@ -0,0 +1,63 @@
+<?php
+	date_default_timezone_set("Europe/Kiev");
+	//правильный логин и пароль
+	$credentials = array("login" => "admin",
+						 "password" => "qwerty");
+	session_start();
+
+	$newUser	   = true; //этот флаг указывает, пытается ли пользователь залогиниться (что-то есть в $_POST), или только зашел на страницу. 
+	$passwordRight = false; //этот флаг указывает, правильный ли пароль и логин, если POST не пуст (пользователь пытается залогинится)
+	$login         = "";    //login из $_POST или пустая строка. Используется для заполнения поля ввода, что бы пользователю не приходилось опять вводить имя пользователя
+
+	if (isset($_GET['logout']) and $_GET['logout'] == 'true'):
+		$_SESSION['logged'] = false; //если пользователь нажал Выйти, то в мы сохраняем это в сессию
+	endif;
+
+	if (!isset($_SESSION['logged'])):
+		$_SESSION['logged'] = $passwordRight; //создаем ключ в сессии, если его нет
+	endif;
+
+	if (isset($_POST['login']) && isset($_POST['password'])): //попытка залогиниться
+		$newUser = false; //значит пользователь не только зашел
+		$login   = $_POST['login']; //сохраняем логин, он, возможно пригодится для поля ввода login
+		if (($_POST['login'] == $credentials['login']) && ($_POST['password'] == $credentials['password'])):
+			$passwordRight = true; //если пароль правильный, то записываем это в $passwordRight
+			$_SESSION['loginTimes'][] = time(); //и сохраняем время логина в сесси
+		endif; 
+		$_SESSION['logged'] = $passwordRight; //отмечаем в сессии успешность логина
+	endif;
+?>
+<html>
+	<head>
+		<title>
+			php template hell sample
+		</title>
+	</head>
+	<body>
+		<?php if (!$_SESSION['logged']): ?> <!-- Если пользователь не залогинен -->
+			<?php if (!$passwordRight && !$newUser): //и пароль неверный, но он пытался ?> 
+				<div style='color: red;'>
+					Your password are wrong!!!
+				</div>
+			<?php endif; ?>
+			<form method='post' action="">
+				Login: <input type='text' name='login' value="<?php echo $login; //сюда мы засовываем login из POST или пустую строку ?>"><br/>
+				Password: <input type='password' name='password'><br/>
+				<input type='submit' value='Login'>
+			</form>
+		<?php else: // Пользователь залогинен успешно ?>
+			<?php if ($passwordRight): // причем только что ?>
+				<div style='color: green;'> Welcome </div>
+			<?php endif; ?>
+			История логинов:
+			<table border='1'>
+			<?php foreach ($_SESSION['loginTimes'] as $time): ?>
+				<tr><td> <?php echo date("Y-m-d H:i:s", $time);  ?> </td></tr>
+			<?php endforeach; ?>
+			</table>
+			<a href='?logout=true'>Выйти</a>
+		<?php endif; ?>
+	</body>
+</html>
+
+