注意:未定义的索引:消息

时间:2011-07-14 08:02:43

标签: php

注意:第27行的C:\ xampp \ htdocs \ mywebsite \ Untitled9.php中的未定义索引:消息

    <?php  session_start(); 
if ($_GET['message'] == "success" && $_SESSION['revisit'] == "0") {     
$_SESSION['revisit'] = "1";     ?>     
<script type="text/javascript">window.alert('Message successfully posted.');</script>     
<?php } ?>

第27行是......

if ($_GET['message'] == "success" && $_SESSION['revisit'] == "0") { 

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

您需要检查数据message中是否存在包含<{1}}的项目

$_GET

同样的规则适用于会话项的第二次比较。所以完整的代码看起来像

isset($_GET['message'])

即使有人建议您使用if (isset($_GET['message']) && $_GET['message'] == "success" && isset($_SESSION['revisit']) && $_SESSION['revisit'] == "0") { - 也不要相信它们。这是邪恶的。按照我提出的方式。

答案 1 :(得分:0)

不要假设已设置message参数:

if (isset($_GET['message']) && $_GET['message'] == 'success' && ...) {
  ...
}

或者,您可以提供默认值:

$message = isset($_GET['message']) ? $_GET['message'] : 'no_message';
if ($message == 'success' && ..) {...

答案 2 :(得分:0)

试试这个:

if (isset($_GET['message']) && $_GET['message'] == "success" && $_SESSION['revisit'] == "0") { 

答案 3 :(得分:0)

这是notice而不是fatal error,表示您可以通过更改error_reporting设置来抑制此错误,在代码行前面添加@ ,或检查变量是否首先存在。

if(isset($_GET['message']))

最后一个可能是最优雅的,因为它可以防止错误而不是压制错误。然而,压抑不是问题,因为它不会影响您的代码。