#php
Вопрос:
У меня возникли проблемы с использованием перенаправления на странице PHP. В принципе, я использую следующую функцию для перенаправления:
function redirect($url) { ob_start(); header('Location: '.$url); ob_end_flush(); die(); }
Затем, в начале страницы PHP, я проверяю значение var. Если это превышает пороговое значение, я перенаправляю на другую страницу:
lt;?php . . . if (var gt;= 100) { redirect('error1.html'); } ?gt; lt;htmlgt; lt;bodygt; lt;!-- HTML page here --gt; lt;/bodygt; lt;/htmlgt;
Хотя var превышает 100 (он печатается на экране), перенаправление не происходит. Есть идеи, почему? Это потому, что на странице есть HTML-контент?
Комментарии:
1. Где определена ваша функция «перенаправление»?
2. Обратите внимание, что
var
это отличается от$var
. Какой из них вы действительно используете? Пожалуйста, попробуйтеvar_dump(var);
(в случае, если вы используетеvar
), чтобы узнать, что это за значение.3. Вы не должны ничего отправлять в браузер до того, как выполните перенаправление с помощью заголовка(). Если вам это нужно, вы можете использовать ob_start() в начале вашего сценария или, по крайней мере, перед отправкой любого вывода и выполнить ob_end_flush() в конце. Эти функции непригодны для использования так, как вы используете их внутри функции перенаправления(9.
Ответ №1:
вы не можете использовать «если (var…)», потому что var является защищенным термином.
Я не знаю, является ли это примером, но правильный способ делать то, что вам нравится, должен быть:
function redirect( $code, $url ) { // Test code if( $code gt;= 100 ){ // If you will redirect you don't need OB function // ob_start(); ** removed // Redirect header('Location: '.$url); // ob_end_flush(); ** removed exit(); // better use function exit then die } // end if test code } ... lt;?PHP redirect( $code, 'error1.html'); ?gt; ´´´ Hope help you ! ;)
Комментарии:
1. Спасибо! это сработало! честно говоря, я не использовал «var» в качестве переменной. Я только что создал простой фрагмент кода. Тем не менее, это сработало с вашей помощью.
2. Идеальный. Рад вам помочь 🙂