if (isset($_POST['auth_name']))
{
$sql = "SELECT * FROM users WHERE name=?s";
$row = $db->getRow($sql, $_POST['auth_name']);
if ($row && password_verify($_POST['auth_pass'], $row['pass'])) {
$_SESSION['user_id'] = $row['id'];
}
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit;
}
if (isset($_GET['action']) AND $_GET['action']=="logout") {
session_start();
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST']."/");
exit;
}
if ($row && password_verify($_POST['auth_pass'], $row['pass'])) {
$_SESSION['user_id'] = $row['id'];
}
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit;
}
if (isset($_GET['action']) AND $_GET['action']=="logout") {
session_start();
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST']."/");
exit;
}
if ($row && password_verify($_POST['auth_pass'], $row['pass'])) {
if( $a && $b) {
выполнится если и $a и $b имеют значение TRUE или переводятся в него. Например "aaa" && "bbb"
. В вашем коде переменная $row и результат функции password_verify() должны быть не NULL, не FALSE, не 0, не пустой строкой.if (isset($_GET['action']) AND $_GET['action']=="logout") {
&&
и AND
– одно и то же. Единственное их отличие в приоритете выполнения по сравнению с другими операторами. // Если существует в пост запросе auth_name выполняется код в условии
if (isset($_POST['auth_name']))
{
$sql = "SELECT * FROM users WHERE name=?s"; // Запрос SQL
$row = $db->getRow($sql, $_POST['auth_name']); // выборка запроса с БД
// Если пароль пройдет проверку записывается значение в сессию
if ($row && password_verify($_POST['auth_pass'], $row['pass'])) {
$_SESSION['user_id'] = $row['id'];
}
// редирект на страницу
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
// выход из скрипта
exit;
}
// если в гет запросе есть action и он равен logout
if (isset($_GET['action']) AND $_GET['action']=="logout") {
// убивается сессия и происходит редирект
session_start();
session_destroy();
header("Location: http://".$_SERVER['HTTP_HOST']."/");
exit;
}