2013-07-28 36 views
0

預先感謝您,我想阻止未到達某些網頁 LOGGED_IN visiters我知道我可以做到這一點在SESSION_ cheking價值觀和並顯示出php - 如何隱藏HTML部分,當沒有session_start();

<?php echo '<html>...</html>'; ?> 

的HTML的一部分,但我有一個很長的HTML內容與''&「」文本分隔符,因爲它不僅是HTML有一些JavaScript,所以我正在尋找另一種方法,而不是用ECHO打印代碼,在這種情況下,我不能混合PHP和HTML代碼。我有任何解決方案或其他想法從非成員看到它的安全頁面,

,我可以使用此代碼來收回他們希望頁面(?:

<?php header("Refresh: 0;url=http://index.php/"); ?> 

是安全

+0

你可以使用'include $ file;'而不是'echo'code'' – Dunno

回答

0

,所以我正在尋找另一個梅索德而不是打印與 ECHO代碼,

使用[here文檔]風格或打印所有HTML outsi德PHP的標籤:

1- [here文檔]

echo <<<HEREDOCS 
any string here ' or " 
HEREDOCS; 

注:符號應該是在每一行的開始和沒有任何空間或縮進與換行符結束。

2-分離邏輯

<?php 
//here is php 
//close php 
?> 
<html> 
<head> 
</head> 
<body> 
<p>This will also be ignored by PHP and displayed by the browser.</p> 
.... 
</body> 
<?php 
//php again 
?> 
+0

關於分離邏輯,我知道但我不想在用戶沒有登錄時顯示任何內容我希望它是空白只有像404 NOT FOUND這樣的錯誤信息,沒有別的,所以頁面的內容將改變取決於用戶的情況 –

0

當回聲出同時使用「和」,就逃避符合你開始和結束標記的是,像這樣的字符代碼:

echo '<p class="someclass">This can\'t be the end.</p>'; 

echo "<p class=\"someclass\">This can't be the end.</p>"; 
0

如果您擔心「&」文本參數,您應該j ust使用文本編輯器如sublime來替換所有「to」

並且爲「在textarea中,您可以用&#34替換;

然後執行

回聲 「< A HREF = '#' 值= '{$ VAR1}'>雙引號意味着&#34; </A>一些其他大規模代碼」;

因此,你可以只使用一個<?php和?>從頁的開頭,直到頁面

+0

謝謝你們,這是有益的 –

0

什麼你也許可以做的就是在文件開始執行的會話變量的檢查結束如果用戶未登錄,請使用標題('Location:index.php');後面跟着一個exit();.如果您確實需要根據echo語句之後出現的邏輯發送頭並且更改語句的順序不可行,請使用輸出緩衝。另外,不要在代碼文件中包含HTML和Javascript,而應考慮使用模板引擎,使用include或file_get_contents和echo的組合(如果使用內容佔位符,可能還需要字符串替換)。 Heredocs和Nowdocs可以更輕鬆地在字符串中包含單引號和雙引號。編輯:如果你想顯示未經認證的用戶是一個錯誤信息,你可以將它們重定向到一個錯誤頁面,或者使用PHP die('');語句(就像一個回聲和一個退出的組合)。