Как данные с одной страницы переместить на другую? PHP
Ребят, я попробовал решить одну задачу, которую я придумал, оно с базой данных. У меня есть 3 страницы: "Авторизация", "Регистрация", "Главная страница". В главную страницу можно зайти только после авторизации на странице авторизации. Так вот, я вошел через Авторизацию на главную страницу. В странице авторизации я говорил под кем мне зайти(у меня уже была регистрация). Но мне нужно когда я захожу на главную страницу под кем я уже зашёл чтобы подклются на главной страницы, к базе данных. Допустим у меня два аккаунта: админовский и обычный. Я авторизуюсь допустим под обычный. Как мне главной странице сказать что я зашёл под обычным аккаунтом чтобы использовать именно обычный аккаунт в базе данных? Простите если вы меня не поняли.
Код страницы авторизации:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<center>
<div id="form-center-block" align="left" style="padding-left: 700px">
<form action="" method="POST">
<label for="">Введите логин:  </label>
<input id="login" type="text" placeholder="Введите логин" name="login">
<br/><br/>
<label for="password">Введите пароль:  </label>
<input id="password" type="password" placeholder="Введите пароль" name="password">
<br/><br/>
<input type="submit" name="submitted" value="Войти">
</form>
<?php
if (isset($_POST['submitted'])) {
$userLogin = $_POST['login'];
$userPassword = $_POST['password'];
$mysqli = new mysqli("www.ajax.test.local", "root", "root", "accounts");
$userQuery = $mysqli->query("SELECT * FROM `account_data` WHERE `login` LIKE '$userLogin' AND `password` LIKE '$userPassword'");
if ($userQuery->num_rows > 0) {
echo "<script>document.location.href = '/game/index.php'</script>";
}
}
?>
</div>
</center>
</body>
</html>
Ответы (2 шт):
- Никаких "админских" аккаунтов для подключения быть не должно, это полная ересь. Аккаунт для подключения к БД должен быть один.
- Для того чтобы "переместить данные" что, как я понимаю, в данном случае означает просто узнать, авторизован ли пользователь, и какой у него статус, необходимо использовать СЕССИИ.
- Поскольку в коде цветет и пахнет SQL инъекция, все эти защиты смысла не имеют всё равно кто угодно сможет зайти куда угодно вообще без пароля.
Если у Вас данные о пользователях хранятся в базе данных, то Вы можете создать ещё 2 страницы с ролями и связующую страницу для ролей и юзеров (если например хотите иметь много ролей
username: admin;
role: { admin, moderator, user }
username: user;
role: { user }
username: moderator;
role: { moderator, user }
Не уверен что правильно понял вопрос. Но чтоб перенести сам факт авторизации в системе на другие страницы обычно используют cookies или session
[edit]
<?php
if (isset($_POST['submitted'])) {
$userLogin = $_POST['login'];
$userPassword = $_POST['password'];
$mysqli = new mysqli("www.ajax.test.local", "root", "root", "accounts");
$userQuery = $mysqli->query("SELECT * FROM `account_data` WHERE `login` LIKE '$userLogin' AND `password` LIKE '$userPassword'");
if ($userQuery->num_rows > 0) {
// Записать в сессию какие-то данные, и делать проверку на другой странице что там что-то записано.
$_SESSION['auth-user'] = $userQuery;
echo "<script>document.location.href = '/game/index.php'</script>";
}
}
?>