2013-10-05 3 views
-1

кажется die() и exit() только блок для запуска ниже php, но не html.использовать php die/exit для блокировки html из execute?

Как использовать выражение php if else для отображения html? Я не предпочитаю эхо, потому что я хотел бы запретить пользователю видеть весь мой код (от <body> до </body>)

+2

Пожалуйста, разместите код, который у вас есть, и объясните, что вы хотите сделать. Все, что отправлено 'echo' _will_, будет видимым для браузера клиента. –

ответ

0
<?php 
if(false){ 
    die(); 
}else{ php?> 
    <body> 

    </body> 
<?php }?> 

Это очень некрасиво, но я думаю, что это то, что вы ищете

+0

Я хочу защитить мою страницу входа .. isset недостаточно. Ур код для этого? или есть лучший способ? –

+0

Ну, это зависит от того, что вы точно защищаете, но мой код просто предотвратит отображение html пользователям, если условие ложно. – Linas

1

die() или exit()останавливает все сценарии, даже HTML вывод, когда файл выполняется PHP:

<?php 
header('Content-Type: text/plain; charset=utf-8'); 
?> 

<html> 

<?php exit(); ?> 

</html> 

Выход:

<html> 

Другой альтернативой является использование return, чтобы остановить общий сценарий:

<?php 
header('Content-Type: text/plain; charset=utf-8'); 
?> 

<html> 

<?php return; ?> 

</html> 

Но он останавливается только текущий сценарий.


Да, вы можете использовать условный оператор для управления выводом так:

<?php 
header('Content-Type: text/plain; charset=utf-8'); 

$showbody = false; 
?> 

<html> 

<?php if($showbody): ?> 
    <body> 
     Here is the body! 
    </body> 
<?php endif; ?> 

</html> 

Выход:

<html> 


</html> 
0

Вы хотите использовать Output buffering функции PHP.

В принципе, если у вас нет выходной буферизации, включенной, когда что-то эхо-сигнал, печатается или отображается html, он сразу же начинает получать отправленный клиенту. При включенной буферизации вывода все будет сохранено, и вы сможете контролировать, когда или даже если он будет отправлен.

Смежные вопросы