猿问

无法修复代码中的“PHP 通知:未定义变量”和“未定义索引”

我已经运行 Web 应用程序有一段时间了。即使在多个 PHP 错误之后,该应用程序也能正常工作,但错误日志文件每隔几周就会不断占用我的 1 GB 空间,迫使我手动删除它们。错误存在于 faucet.php 文件中


我不熟悉 Php,我已经尽我所能来解决这个错误,甚至检查了类似的问题,但没有一个被证明是我的问题的固定装置。


这是四个错误消息,并且在一天中不断重复。


Undefined variable


PHP Notice:  Undefined variable: refer_file in /home/countnet/public_html/faucet/network/mine/doge/faucet.php on **line 318**


PHP Notice:  Undefined variable: refer_file in /home/countnet/public_html/faucet/network/mine/doge/faucet.php on **line 393**


And Undefined index


PHP Notice:  Undefined index: status in /home/countnet/public_html/faucet/network/mine/doge/faucet.php on **line 604**


PHP Notice:  Undefined index: status in /home/countnet/public_html/faucet/network/mine/doge/faucet.php on **line 608**




**Line 318**     if (!$refer_file) {


**Line 393**     if (!$refer_file) { // the user was referred and the referral isn't saved 


**Line 604**     echo '\'status\': \'' . htmlspecialchars($result['status'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED|ENT_HTML5) . '\',';


**Line 608**


echo '<dl><dt>Status</dt><dd>' . htmlspecialchars($result['status'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED|ENT_HTML5) . '</dd><dt>Message</dt><dd>' . htmlspecialchars($result['message'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED|ENT_HTML5) . '</dd></dl>';

任何帮助将不胜感激,即使出现这些错误,该应用程序也能正常工作,但随着流量的增长,它们现在正成为一场噩梦。


SMILET
浏览 154回答 2
2回答

神不在的星期二

您需要使用isset()或empty()来检查变量或数组索引是否已定义。第 318 和 393 行可以更改为if&nbsp;(!empty($refer_file))&nbsp;{对于第 604 行和 608 行,在第 604 行之前添加如下内容:$result['status']&nbsp;=&nbsp;isset($result['status'])&nbsp;?&nbsp;$result['status']&nbsp;:&nbsp;'default_status'; $result['message']&nbsp;=&nbsp;isset($result['message'])&nbsp;?&nbsp;$result['message']&nbsp;:&nbsp;'default_message';

RISEBY

使用 isset 检查数组的变量/索引是否存在。if (isset($refer_file)) {&nbsp; &nbsp; if (!$refer_file) { // the user was referred and the referral isn't saved&nbsp;&nbsp; &nbsp; if(isset($result['status']) && isset($result['message'])){&nbsp; &nbsp; &nbsp; &nbsp; echo '\'status\': \'' . htmlspecialchars($result['status'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED|ENT_HTML5) . '\',';}&nbsp; &nbsp; &nbsp; &nbsp; echo '<dl><dt>Status</dt><dd>' . htmlspecialchars($result['status'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED|ENT_HTML5) . '</dd><dt>Message</dt><dd>' . htmlspecialchars($result['message'], ENT_QUOTES|ENT_SUBSTITUTE|ENT_DISALLOWED|ENT_HTML5) . '</dd></dl>';&nbsp; &nbsp; }
随时随地看视频慕课网APP
我要回答