Как на PHP обрезать URL после обновления или возвращения на страницу?
В начале, запрос на MS SQL проверяет логин и пароль пользователя, затем в случае если, они совпадают, то пользователя при помощи данного условия оправляет на simple.php:
$result = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
if(sqlsrv_num_rows($result) >= 1) {
header("Location: simple.php");
} else {header("Location: index.php?nologin=1");}
Иначе нас отправляют на псевдостраницу с параметром nologin=1. Методом GET, через JS выводится сообщение:
<?php if($_GET['nologin'] == 1) {
echo '<script type="text/javascript">alert("Неправильный логин или пароль");</script>';
} ?>
После того, как пользователь вернётся на окно авторизации или после получения сообщения об ошибке, затем обновит страницу, сообщение будет выведено снова. Как этого избежать? Вероятно это должно быть что-то вроде:
$url = "http://test/index.php";
strtok($url, '?');
Но как это правильно реализовать? Помогите решить проблему. Если возможно распишите для чайников.
Для тех кто не понял, нужно чтобы после вывода сообщения кидало снова на simple.php, без параметра. А в случае перехода обратно происходила переадресация на страницу без параметра.
Не передавай nologin в GET-параметре, а сохраняй в $_SESSION. А дельше:
if (!empty($_SESSION['nologin']) {
echo твой_js_код;
unset($_SESSION['nologin']);
}
Подробности: https://www.php.net/manual/ru/function.session-start.php