Собственно, изначально система авторизации была рабочая, была построена на константах файла-конфига и имела следующий вид:
session_start();
include("dbconnect.php");
if (isset($_POST["authorize"]))
$password=$_POST["password"];
$login=$_POST["login"];
{
if (!strcmp($_POST["login"], ADMIN_LOGIN) && !strcmp($_POST["password"], ADMIN_PASS))
{
$_SESSION["log"] = ADMIN_LOGIN;
$_SESSION["pass"] = ADMIN_PASS;
header("Location: index.php");
}
else $errorStr = "Invalid login and/or password";
}
а во всех файлах, в которых требуется авторизация, в начале стояла следующая проверка:
include ("dbconnect.php");
session_start();
include("checklogin.php");
if (!isset($_SESSION["log"]) || !isset($_SESSION["pass"])) //unauthorized
{
header("Location: access_admin.php");
die("<script>window.location='access_admin.php';</script>");
}
if (isset($_GET["logout"]))
{
$_SESSION["log"] = "";
$_SESSION["pass"] = "";
unset($_SESSION["log"]);
unset($_SESSION["pass"]);
die("<script>window.location='access_admin.php';</script>");
}
и файл checklogin.php:
if ((isset($_SESSION["log"]) && isset($_SESSION["pass"])) && (strcmp($_SESSION["log"], ADMIN_LOGIN) || strcmp($_SESSION["pass"], ADMIN_PASS)))
{
unset($_SESSION["log"]);
unset($_SESSION["pass"]);
}
Собственно, желая организовать авторизацию чеорез БД, я привел ее к следующему:
session_start();
include("dbconnect.php");
if (isset($_POST["authorize"]))
$password=$_POST["password"];
$login=$_POST["login"];
{
$authorize="SELECT login, password FROM admin WHERE login='$login'";
$authorize=mysqli_query($connector, $authorize);
while($row=mysqli_fetch_assoc($authorize)){
$real_pass=$row['password'];
$real_login=$row['login'];
}
if (!strcmp($login, $real_login) && !strcmp($password, $real_pass))
{
$_SESSION["log"] = $real_login;
$_SESSION["pass"] = $real_pass;
header("Location: index.php");
}
else $errorStr = "Invalid login and/or password";
}
Авторизация происходит, но вот при проверке в файле checklogin.php я не знаю чем заменить ADMIN_LOGIN и ADMIN_PASS. Пока происходит редирект на страницу авторизации без входа.
Если же убрать checklogin.php совсем, то тогда авторизация не срабатывает, то есть, невозможно разлогиниться...
Помогите разобраться плиз.