为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
SMILET 2021-06-22 17:12:14
我已经运行 Web 应用程序有一段时间了。即使在多个 PHP 错误之后,该应用程序也能正常工作,但错误日志文件每隔几周就会不断占用我的 1 GB 空间,迫使我手动删除它们。错误存在于 faucet.php 文件中我不熟悉 Php,我已经尽我所能来解决这个错误,甚至检查了类似的问题,但没有一个被证明是我的问题的固定装置。这是四个错误消息,并且在一天中不断重复。Undefined variablePHP 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 indexPHP 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>';任何帮助将不胜感激,即使出现这些错误,该应用程序也能正常工作,但随着流量的增长,它们现在正成为一场噩梦。
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

您需要使用isset()empty()来检查变量或数组索引是否已定义。

第 318 和 393 行可以更改为

if (!empty($refer_file)) {

对于第 604 行和 608 行,在第 604 行之前添加如下内容:

$result['status'] = isset($result['status']) ? $result['status'] : 'default_status';
$result['message'] = isset($result['message']) ? $result['message'] : 'default_message';


查看完整回答
反对 回复 2021-06-25
?
RISEBY

TA贡献1856条经验 获得超5个赞

使用 isset 检查数组的变量/索引是否存在。


if (isset($refer_file)) {


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

    if(isset($result['status']) && isset($result['message'])){

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

        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>';

    }


查看完整回答
反对 回复 2021-06-25
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信