在使用htmlspecialchars的php mail()函数遇到问题时,每次页面加载时都会发送邮件 [英] Having trouble with php mail() function using htmlspecialchars, mail sends every time page loads

查看:219
本文介绍了在使用htmlspecialchars的php mail()函数遇到问题时,每次页面加载时都会发送邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经搜索并尝试了多种方式来完成这项工作,但似乎没有按计划进行。我试图设置一个联系表单并使用

 <?php echo htmlspecialchars($ _ SERVER [PHP_SELF]) ;?> 

作为表单动作,不知道现在是否需要这样做,但这就是为什么我问,不想进行任何注射。表单按照我希望的方式工作并发送邮件,除了在每次加载页面时发送邮件,包装箱中是否有信息或出现错误。
我希望在这里获得一些帮助。


  1. 正确地在< ;


  2. 我需要propper isset函数来使这个页面邮件程序工作,只有在POST时提交<按钮>被点击。


下面我将把当前所有的PHP和html表单代码。
先进的谢谢。

 <?php 
//定义变量并设置为空值
$ nameErr = $ emailErr = $ ethaddressErr = $ txhashErr = $ messagesErr =;
$ name = $ email = $ ethaddress = $ txhash = $ messages =;

if($ _SERVER [REQUEST_METHOD] ==POST){
if(empty($ _ POST [name])){
$ nameErr =名称是必需的;
} else {
$ name = test_input($ _ POST [name]);
//检查名称是否只包含字母和空格
if(!preg_match(/ ^ [a-zA-Z] * $ /,$ name)){
$ nameErr = 只允许使用字母和空格;



if(empty($ _ POST [email])){
$ emailErr =需要有效的电子邮件地址;
} else {
$ email = test_input($ _ POST [email]);
//检查电子邮件地址是否格式正确
if(!filter_var($ email,FILTER_VALIDATE_EMAIL)){
$ emailErr =电子邮件格式无效;



if(empty($ _ POST [ethaddress])){
$ ethaddress =;
} else {
$ ethaddress = test_input($ _ POST [ethaddress]);
if(!preg_match(/ ^(0x)?[0-9a-f] {40} $ / i,$ ethaddress)){
$ ethaddressErr =ETH地址格式无效;



if(empty($ _ POST [txhash])){
$ txhash =;
} else {
$ txhash = test_input($ _ POST [txhash]);
if(!preg_match(/ ^(0x)?[0-9a-f] {64} $ / i,$ txhash)){
$ txhashErr =Ethereum Transaction Hash Format无效 ;



if(empty($ _ POST [messages])){
$ messages =;
} else {
$ messages = test_input($ _ POST [messages]);
}

}

函数test_input($ data){
$ data = trim($ data);
$ data = stripslashes($ data);
$ data = htmlspecialchars($ data);
返回$ data;
}
?>

< form id =my-formmethod =postaction =<?php echo htmlspecialchars($ _ SERVER [PHP_SELF]);?>>
< div class =form-group has-feedback>
< label for =nameclass =control-label sr-only>名称< / label>
< input type =textname =namevalue =<?php echo $ name;?>必需的占位符=请输入您的姓名autofocus class =form-controlid =firstname/>< i aria-hidden =trueclass =form-control-feedback fa fa-user> < / I>< / DIV>
< span class =error><?php echo $ nameErr;?>< / span>
< div class =form-group has-feedback>
< label for =ethaddressclass =control-label sr-only> ETH地址< / label>
< input type =textname =ethaddressvalue =<?php echo $ ethaddress;?> placeholder =ERC20 Compliant ETH Addressclass =form-controlid =lastname/>< i aria-hidden =trueclass =form-control-feedback fa fa-link>< / I>< / DIV>
< span class =error><?php echo $ ethaddressErr;?>< / span>
< div class =form-group has-feedback>
< label for =txhashclass =control-label sr-only> TxHash< / label>
< input type =textname =txhashvalue =<?php echo $ txhash;?> placeholder =购买时的交易哈希,如果适用的话class =form-controlid =phonenumber/>< i aria-hidden =trueclass =form-control-feedback fa fa-hashtag> ;< / I>< / DIV>
< span class =error><?php echo $ txhashErr;?>< / span>
< div class =form-group has-feedback>
< label for =emailclass =control-label sr-only>电子邮件地址< / label>
< input type =textname =emailrequired value =<?php echo $ email;?> placeholder =请输入有效的电子邮件地址class =form-controlid =email/>< i aria-hidden =trueclass =form-control-feedback fa fa-envelope><< ; / I>< / DIV>
< span class =error><?php echo $ emailErr;?>< / span>
< div class =form-group has-feedback>
< label for =messagesclass =control-label sr-only>对团队的其他评论< / label>