You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP提示Undefined variable: Body报错的修复方案咨询

PHP未定义变量$Body报错修复方案

核心结论

你打算添加的$body = Trim(stripslashes($_POST['body']));语句完全修不了这个报错,属于无效改动,还会平白增加无意义的代码逻辑,不要加。

报错原因

  • PHP变量严格区分大小写:报错里提到的是大写B开头的$Body,你准备加的是小写b开头的$body,二者是完全无关的两个变量,根本对应不上。
  • 变量用途理解错了:这段代码里的$Body是用来拼接组装邮件正文的临时变量,根本不是用来接收前端POST提交的body参数,原代码逻辑里本来就不需要读取$_POST['body']。
  • 触发报错的直接原因:代码第一次操作$Body时直接用了.=拼接运算符,这个运算符的作用是把内容追加到已有变量的末尾,但这行之前从来没定义过$Body、也没给过初始值,所以才会抛出未定义变量的通知。

零风险修复方法

改动量极小,不会影响原有业务逻辑:

  1. 先把服务器上现有的email.php下载一份到本地存成备份,万一操作出错直接上传备份覆盖就能完全恢复,没有任何后遗症。
  2. 找到$human = Trim(stripslashes($_POST['human']));这行,在它下面、// prepare email body text注释的上面,加一行变量初始化代码即可,后面所有原有代码一点都不用改:
$human = Trim(stripslashes($_POST['human']));

// 初始化邮件正文变量,解决未定义报错
$Body = "";

// prepare email body text
$Body .= "Name: ";  // 原报错的第48行,添加初始化后不会再触发通知
$Body .= $name;
$Body .= "\n";
$Body .= "Phone: ";
$Body .= $phone;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $message;
$Body .= "\n";

改完保存上传覆盖原文件即可,错误日志里的这条通知会直接消失,表单发邮件的原有功能完全不受影响。


内容的提问来源于stack exchange,提问作者April W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:45:33