Проблема со скриптом авторизации
Собственно, изначально система авторизации была рабочая, была построена на константах файла-конфига и имела следующий вид:
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 совсем, то тогда авторизация не срабатывает, то есть, невозможно разлогиниться... Помогите разобраться плиз. |
Никто не разбирается в авторизациях через php?
|
Все разбираются. Думать за вас никто не хочет.
Вы опубликовали очень много кода. Пожалуйста, локализуйте проблему! |
Весь код локализован в заглавном посте, где-то там сосредоточена проблема. Если бы я знал где она сосредоточена, тему бы не создавал.
|
ArmagedDance,
Думать за вас никто не хочет. Второе: вы не задали вопрос, поэтому вам никто и не отвечает. Цитата:
|
Gozar, очень остроумно.
|
Ну а какой еще ответ вы хотели? Или вы не учили английский и не понимаете, что должно быть в этих константах (хотя зачем пихать админские реквизиты в константы, непонятно)?
|
Цитата:
md5( $login.$pass."я ломал стекло".time() ); |
Часовой пояс GMT +3, время: 02:51. |