修复php中的错误

修复php中的错误,php,Php,我的php文件中出现以下错误: 注意:第13行的未定义索引:errStr in/clientdata/zeus-dynamic-1/c/r/crowndoor.com.au/www/crowndest/contact.php 注意:未定义索引:在第20行的/clientdata/zeus-dynamic-1/c/r/crowndoor.com.au/www/crowndest/contact.php中发送 将显示在浏览器窗口的顶部。 我已尝试使用以下命令关闭通知:错误报告(E_ALL ^E_通知

我的php文件中出现以下错误:

注意:第13行的未定义索引:errStr in/clientdata/zeus-dynamic-1/c/r/crowndoor.com.au/www/crowndest/contact.php

注意:未定义索引:在第20行的/clientdata/zeus-dynamic-1/c/r/crowndoor.com.au/www/crowndest/contact.php中发送

将显示在浏览器窗口的顶部。 我已尝试使用以下命令关闭通知:错误报告(E_ALL ^E_通知);但这似乎没有什么区别。我现在正试图修复未定义的索引。我的php如下所示:

<?php
session_name("fancyform");
session_start();


$_SESSION['n1'] = rand(1,20);
$_SESSION['n2'] = rand(1,20);
$_SESSION['expect'] = $_SESSION['n1']+$_SESSION['n2'];


$str='';
if($_SESSION['errStr'])
{
    $str='<div class="error">'.$_SESSION['errStr'].'</div>';
    unset($_SESSION['errStr']);
}
if (!isset($_POST['errStr'])) 
{
//If not isset -> set with dumy value 
$_POST['errStr'] = "undefine"; 
}

$success='';
if($_SESSION['sent'])
{
    $success='<h1>Thank you!</h1>';

    $css='<style type="text/css">#contact-form{display:none;}</style>';

    unset($_SESSION['sent']);
}
?>


如果有人对如何修复这些通知的出现有任何想法,那就太好了。

为什么不像使用
$\u POST['errStr']
一样使用
isset()

首先需要检查密钥是否存在

if(isset($_SESSION['errStr']) && $_SESSION['errStr']) {
更改第13行:

if($_SESSION['errStr'])
致:


这意味着您要查找的数组索引不存在。有两种处理方法,一种是确保它存在,然后此错误消息将指出应用程序中的逻辑缺陷。或者,如果索引可能合法不存在,请在访问它之前使用
isset
进行检查。请参阅。

但是,您可以在不干扰php.ini设置的情况下手动检查自己,因为在迁移服务器的某一天,这会增加部署的复杂性

要手动检查,请查看以下代码…您已经在代码中的某行中完成了检查

<?php
if (isset($_SESSION['sent'])) {
    $success='<h1>Thank you!</h1>';
    $css='<style type="text/css">#contact-form{display:none;}</style>';
        unset($_SESSION['sent']);
}
?>

通知轮换,如:

错误报告(E\u全部&~E\u通知

和/或首先检查数组键是否存在

$sent = array_key_exists('sent', $_SESSION) ? $_SESSION['sent'] : null;

在php页面顶部添加代码

<?php error_reporting(0); ?>

在生产过程中关闭通知,而不是在开发过程中。另外,使用isset($_SESSION['sent'])检查更容易,如果值为null,isset将返回“false”。在这种情况下,显式检查是键是否存在。
<?php error_reporting(0); ?>