2010-05-24 182 views
0

當我第一次進入頁面時,我該如何得到這個不顯示?if else語句php

if ($error) { 
echo "Error: $error<br/>"; 
} 
if ($keycode) { 
echo "Keycode: $keycode<br/>"; 
} 
+0

哪裏$錯誤和$鍵碼被設置? – 2010-05-24 19:50:48

+1

您沒有發佈足夠的代碼。如果未定義'$ error',則消息不會顯示。你在哪裏定義它? – 2010-05-24 19:51:45

+1

你的代名詞在「我如何得到這個不顯示」中含糊不清。你不想出現什麼東西? 「錯誤」? 「關鍵代碼」?還有別的嗎? – Pops 2010-05-24 19:57:20

回答

1
<?php 

if ($error){ echo "Error: $error 
"; } if ($keycode) { echo "Keycode: $keycode 
"; } 
+2

這是怎麼回事? – webbiedave 2010-05-24 20:21:05

+0

我認爲他的問題是「如何不出現此文本」。在我看來,他的問題的答案是PHP不解析他的文件,因爲沒有<?php標記。除非我在原作者的某個地方錯過了一些說明,否則這個問題的大部分答案完全在左邊的領域。 – 2010-05-24 20:38:06

3
<?php 
session_start(); 

if ($_SESSION['been_here'] == true) { 
    // show what you need to show 
} 
else { 
    // don't show it 
    $_SESSION['been_here'] = true; 
} 
?> 

的這裏的一點是,$ _SESSION變量 「最後」(只要你在session_start())。 谷歌「PHP會議」瞭解更多信息,並在必要時提出更多關於SO的問題。 :)

使用session_destroy();破壞會議。

+0

會話啓動可能不適用於我,因爲我已經在頁面上發送了標頭.. – user154107 2010-05-24 19:52:40

+0

在發送輸出之前使用session_start()... – 2010-05-24 19:53:55

+0

是的,請使用session_start();甚至在_any whitespace_之前。這可能有點煩人,直到你習慣它,但它必須是這樣。 :) – 2010-05-24 19:56:24

0

根據評論,似乎你的條件在評估爲真之前,你期望它。沒有看到更多的代碼,這只是一個猜測,但我相信你的問題是,當你創建它並不意味着錯誤時,你給變量$error一個默認/臨時值。例如:

$error = "default error message, change me later"; 

// Later... 
if ($error) { // This evaluates to true 
    echo "Error: $error<br/>"; 
} 

如果是的話,你會想看看PHP's documentation on casting to booleans,也許(從Christian's answer與貢獻),可以這麼用:

$error = "0"; // Default error message, change it later 

// Later... 
if($_SESSION['been_here'] == true) 
    $error = "This is the real error message."; 

// Even later... 
if ($error) { 
    echo "Error: $error<br/>"; 
} 
0

這可能對你有用:

if (isset($error) && !empty($error)) { 
    echo "Error: $error<br/>"; 
} 

我不能說更多,因爲你沒有指定$error的價值可能是什麼。

或者你只需​​要引入一個標誌,指示出現了錯誤:

$error = 'Error message.'; 
$has_error = false; 

if(!empty($_POST) && some_condition) { // means it is a POST request 
    $has_error = true; 
} 

if($has_error) { 
    echo "Error: $error<br/>"; 
}