[英]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.