There are 3 files: session_form.html, session_set.php, session_get.php
session_form
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <form name="entry" action="session_set.php" method="POST"> <fieldset> <legend>Введите имя пользователя и пароль. В имени пользователя используйте только буквы, а в пароле только буквы и цифры.</legend> Имя пользователя: <input type="text" name="user"><br> Пароль: <input type="password" name="pass"><br><br> <input type="submit" value="Авторизоваться"> </fieldset> </form> </body> </html>
session_set
<?php function reject($entry) { echo "Недопустимо: $entry.<br>"; echo 'Пожалуйста, <a href="session_form.html">авторизуйтесь</a><br>'; } if (isset($_POST["user"], $_POST["pass"])) { $user = trim($_POST["user"]); $pass = trim($_POST["pass"]); if (!ctype_alpha($user)) { reject("имя пользователя"); $user = null; } if (!ctype_alnum($pass)) { reject("пароль"); $pass = null; } if ($user != null && $pass != null) { $_SESSION["user"] = $user; $_SESSION["pass"] = $pass; header("Location: session_get.php"); } } else { header("Location: session_form.html"); } session_get
<?php if (isset($_SESSION["user"])) { $user = $_SESSION["user"]; echo "$user, вы успешно авторизовались.<hr>"; echo '<a href="session_data.php">Просмотреть данные сессии</a>'; } else { echo 'Пожалуйста, <a href="session_form.html">авторизуйтесь</a>'; } Output: Please log in. Why, if $ _SESSION ["user"] was set in the session_set.php file
session_startto start a session .. you don’t open it at all - InDevX