#php #echo
#php #эхо
Вопрос:
Я столкнулся с этой проблемой с помощью пользовательского скрипта входа в систему; Перенаправления работают нормально, но это не повторяет предупреждение вот мой код:
if ($_POST['submit']) {
sleep(6);
$expire = time() (24 * 60 * 60);
$cookie = 'level of clearence';
if ($passcode == ($level4||$level3||$level2||$level1)) {
echo '<script>alert("Happy Hacking");</script>';
// setcookie($cookie, 'level4', $expire);
header('Location: home.php');
}
else if ($passcode != ($level4||$level3||$level2||$level1)) {
echo '<script>alert("Incorrect PassCode");</script>';
header('Location: index.php');
}
}
Комментарии:
1. Кроме того, печать, похоже, ничего не меняет
2. Здесь нельзя использовать перенаправление PHP. Вместо этого используйте перенаправление JavaScript.
3. Это Ajax-скрипт? Если это так, используйте перенаправление JavaScript. Если нет, сценарий оповещения не будет отображаться, потому что вы перенаправляетесь на совершенно другую страницу.
4. Это ничего не повторяет, потому что это не то, как работают ответы на перенаправление. Если
Location
заголовок указывает браузеру перенаправить, браузер игнорирует любое содержимое и просто выдает новый направленный запрос.5. Перенаправления Javascript не работают, вместо этого они обновляют страницу
Ответ №1:
Вы не можете выдавать заголовки после того, как выходные данные уже отправлены.
echo '<script>alert("Incorrect PassCode");</script>';
header('Location: index.php'); // This wont work after your echo
Этот код не будет работать. Вы можете изменить это на перенаправление JavaScript
echo '<script>
alert("Incorrect PassCode");
location.href="index.php";
</script>';
Согласно руководству по PHP
Помните, что функция header() должна вызываться перед отправкой любого фактического вывода, будь то с помощью обычных тегов HTML, пустых строк в файле или из PHP.