注意:未定义的索引:消息在C:'xampp'htdocs'mywebsite'Untitled9.php第27行
<?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") {
如何解决这个问题?
您需要检查数组$_GET
中是否存在键为message
的项
isset($_GET['message'])
,同样的规则应用于会话项的第二次比较。所以完整的代码看起来像
if (isset($_GET['message']) && $_GET['message'] == "success" && isset($_SESSION['revisit']) && $_SESSION['revisit'] == "0") {
即使有人建议你用@
代替,也不要相信他们。这是邪恶的。照我说的做
这是notice
而不是fatal error
,这表明您可以通过更改error_reporting
设置来抑制此错误,在代码行前添加@
,或者检查变量是否首先存在。
if(isset($_GET['message']))
最后一个可能是最优雅的,因为它可以防止错误而不是抑制错误。但是,这里的抑制不是问题,因为它不会影响您的代码。
不假设已经设置了message
参数:
if (isset($_GET['message']) && $_GET['message'] == 'success' && ...) {
...
}
或者,您可以提供一个默认值:
$message = isset($_GET['message']) ? $_GET['message'] : 'no_message';
if ($message == 'success' && ..) {...
try this:
if (isset($_GET['message']) && $_GET['message'] == "success" && $_SESSION['revisit'] == "0") {