PHP联系表单提交后phone字段未在邮件内容显示问题排查
问题根因
你贴出的PHP代码本身逻辑没有问题:已经正确通过$_POST['phone']获取手机号,做了非空、纯数字校验,$e_reply变量也确实把$phone拼接到了邮件内容中。
出现你描述的问题,核心是你服务器上实际运行的表单处理代码不是你贴出的这一版:
你贴的代码里邮件模板是英文纯文本格式,但你实际收到的是中文HTML格式的邮件,说明你部署的php/contact.php还是旧版本,里面的中文邮件模板没有插入手机号变量,才会出现电话位置为空的情况。
另外你贴的代码存在冗余逻辑:开头引入了PHPMailer的自动加载文件,但全程没有调用PHPMailer相关能力,还是用原生mail()函数发信,这部分代码可以直接清理。
修复方案
- 找到服务器上实际运行的
php/contact.php文件,定位到中文邮件内容的拼接代码段,在“电话”字样的后面补充插入$phone变量即可。 - 如果你确定要用你贴出的这版代码,直接覆盖服务器上的旧版
contact.php文件就能正常显示手机号,注意这版代码默认发英文纯文本邮件,你可以自行修改$e_body、$e_content、$e_reply的内容为中文模板。
内容的提问来源于stack exchange,提问作者BYBB
相关产品推荐
相关产品推荐

