Intereting Posts
php, как перемешать / рандомизировать порядок ассоциативного массива, сохраняя пары ключ / значение FACEBOOK SDK v4 возвращает пустой адрес электронной почты Новый содержащий div после каждых 3 записей рекурсивный обход дерева – Как отслеживать уровень рекурсии? Попытка создать лидерство в динамическом CRM с использованием API в PHP Обходной путь для ограничения 990 символов для почтовых серверов Php – заменить базовый цвет прозрачного png изображения выберите первый дочерний узел корневого узла в файле XML, используя php PHP-элемент вставки XML после (или до) другого элемента Интеграция Magento и Moodle Создавать объект без вызова его конструктора в PHP PHP exec python не работает Ошибка PHP и MYSQLI, вызов функции-функции члена () для не-объекта Как конвертировать IPv6 из двоичного файла для хранения в MySQL Поставщик услуг Laravel, не привязанный к контракту

Как перенаправить с расположением заголовка в php при использовании ob_start?

<?php ob_start(); echo "<body><p>Hello " if ($condition) { header( "Location: http://www.google.com/" ); exit; } echo " World!</p></body>"; ob_end_flush(); ?> 

Когда $condition true, я получаю следующее:

 <body>Hello 

То, что я хочу, это когда $condition будет истинным, тогда перейдите в Google!

Я не знаю, что происходит, вы можете объяснить или дать мне решение !?

Благодарю.

Просто добавьте ob_end_clean(); перед вызовом заголовка.

Все должно работать, просто положите ; после эха " <body><p>Hello ", и все будет хорошо ..

Если бы я был вами, я бы начал то, что может пойти не так, а затем обработать.

Пример

 $exit_condition_1 = some_value1; $exit_condition_2 = some_value2; if($exit_condition_1 == false){ //Redirect //Exit } if(!$exit_condition_2){ //Redirect //Exit } //start the buffer ob_start() //show some HTML //flash the buffer ob_end_clean() there is no point of starting the buffer then if something goes wrong close it and redirect. Just do value testing at the begining then process the request. An example: lets say that you want to view a product's info and you have a function that will do that function view_product($product_id){ if(!$product = getProductById($product_id)){ //product does not exist, redirect } if(the user does not have enough access rights){ //show a message maybe //redirect } //everything is alright then show the product info }