簡體   English   中英

修復php中的錯誤

[英]Fixing Errors in php

我的php文件中出現以下錯誤:

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

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

它出現在瀏覽器窗口的頂部。 我嘗試使用以下命令關閉通知:error_reporting(E_ALL ^ E_NOTICE); 但它似乎沒有任何區別。 我現在正在嘗試修復未定義的索引。 我的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']);
}
?>

如果有人有任何想法如何解決這些通知出現那將是偉大的。

這意味着您正在尋找的數組索引不存在。 處理它的兩種方法是確保它存在,然后此錯誤消息將指出您的應用程序中的邏輯缺陷。 或者,如果索引可能合法地不存在,請在訪問之前使用isset進行檢查。 請參閱PHP的權威指南isset並為空

在php頁面的頂部添加代碼。

<?php error_reporting(0); ?>

你為什么不像使用$_POST['errStr']一樣使用isset()

您需要先檢查密鑰是否存在。

if(isset($_SESSION['errStr']) && $_SESSION['errStr']) {

改變第13行:

if($_SESSION['errStr'])

至:

if(isset($_SESSION['errStr']))

但是,您可以自己手動檢查而不會干擾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']);
}
?>

通知如下:

error_reporting(E_ALL & ~E_NOTICE

和/或首先檢查數組鍵的存在。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM