2010-05-24 142 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/>"; 
}