Всем привет! Ваш покорный слуга - студент кафедры ОИТ. Столкнулся с задачей на зачет - форма регистрации на php, код имеется, рабочий. Проблема в том , что из массива сессии не достается Email и username. Кто может быстро посмотреть? Код (PHP): <?php include "base.php"; ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Регистрация</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id="main"> <?php if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) //проверка, не зареган ли ползеватль { ?> <h1>раздел для зарегестрированых юзеров</h1> <p>Привет, <b><?=$_SESSION['Username']?></b>. Твоя почта - <b><?=$_SESSION['EmailAddress']?></b>.</p> <p>[url="logout.php"]Выход[/url]</p> <?php } elseif(!empty($_POST['username']) && !empty($_POST['password'])) //проверка, зарегистрировался и отправил ли свои данные юзер { //$_POST это массив пхп который хранит логины и пароли $username = mysql_real_escape_string($_POST['username']); //функция очищения ввода данных $password = md5(mysql_real_escape_string($_POST['password'])); // ШИФРОВАНИЕ ПАРОЛЯ!!11 (‡▼益▼) //CАМАЯ БЕЯЧАЯ ДИЧЬ $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'"); //достаем все из таблицы юзеров,на соответсвие логин-пароль if(mysql_num_rows($checklogin) == 1) { $row = mysql_fetch_array($checklogin);//Возвращает массив с обработанным рядом результата запроса, или FALSE, если рядов больше нет. $email = $row['EmailAddress']; $_SESSION['Username'] = $username; //http://php.ru/manual/reserved.variables.session.html $_SESSION['EmailAddress'] = $email; $_SESSION['LoggedIn'] = 1; echo "<h1>Получилось!</h1>"; echo "<p>Сейчас вы будете перенаправлены в закрытый раздел.</p>"; echo "<meta http-equiv='refresh' content='2;index.php'>";//обновление страницы , с пройденой авторизацией } else { echo "<h1>Ошибка</h1>"; echo "<p>Аккаунт не найден <a href=\"index.php\">попробовать ещё раз</a>.</p>"; } } else { ?> <h1>Авторизация</h1> <p>Здравствйте! Если у вас нет аккаунта, то [url="register.php"]зарегистрируйтесь[/url].</p> <form method="post" action="index.php" name="loginform" id="loginform"> <fieldset> <label for="username">Логин:</label><input type="text" name="username" id="username"><br> <label for="password">Пароль:</label><input type="password" name="password" id="password"><br> <input type="submit" name="login" id="login" value="Войти"> </fieldset> </form> <?php } ?> </div> </body> </html>
Что там? mysql_* устарела и убрана из PHP7, используй PDO, mysqli_* Хеширование, а не шифрование XSS если $_SESSION['Username'] будет содержать html, javascript код Тут нужно быть осторожнее, чтобы не выстрелить себе в ногу, обычно после перенаправления нужно прервать выполнение программы через exit например