Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停留在页面上,不要';当php中出现Javascript警报时,不能重置表单字段_Javascript_Php_Forms - Fatal编程技术网

停留在页面上,不要';当php中出现Javascript警报时,不能重置表单字段

停留在页面上,不要';当php中出现Javascript警报时,不能重置表单字段,javascript,php,forms,Javascript,Php,Forms,我对php中的一个表单和其中嵌入的一些Javascript代码有问题 我希望留在页面上,不要在Javascript警报后重置表单字段。显示警报时,页面将重新加载,表单中的所有字段都将重置 代码如下: if (!empty($_REQUEST['captcha'])) { if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) { echo "

我对php中的一个表单和其中嵌入的一些Javascript代码有问题

我希望留在页面上,不要在Javascript警报后重置表单字段。显示警报时,页面将重新加载,表单中的所有字段都将重置

代码如下:

if (!empty($_REQUEST['captcha'])) {
if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {

      echo "<script type=\"text/javascript\">

      alert(\"El texto no coincide, por favor vuelva a intentarlo\");

      return false;

      </script>"; 


} else {

     $para = 'xxx';
     $asunto = 'Mensaje de mi sitio xxx';
     $nombre = $_GET['nombre'];
     $email = $_GET['email'];
     $contenido = "Mensaje enviado por " . $nombre . " \r\n";
     $contenido .= "e-mail es: " . $email . " \r\n";
     $contenido .= "Mensaje: " . $_GET['texto'] . " \r\n";
     mail($para, $asunto, $contenido);
     echo "<script type=\"text/javascript\">

     alert(\"Gracias por contactar con nosotros, nos pondremos en contacto lo antes posible.\");
     document.contacto.captcha.select();
     return false;

     </script>"; 

}
$request_captcha = htmlspecialchars($_REQUEST['captcha']);

unset($_SESSION['captcha']);

}
if(!empty($\u请求['captcha'])){
if(空($_会话['captcha]])trim(strtolower($_请求['captcha]])!=$_会话['captcha'])){
回声“
警报(\'El texto no EXCLE,por FOUR vuelva a INTENTTARLO\');
返回false;
"; 
}否则{
$para='xxx';
$asunto='Mensaje de mi sitio xxx';
$nombre=$_GET['nombre'];
$email=$_获取['email'];
$contenido=“Mensaje enviado por”。$nombre.\r\n;
$contenido.=“电子邮件:”.$email.\r\n”;
$contenido.=“Mensaje:”.$\u GET['texto']。“\r\n”;
邮件($para、$asunto、$contenido);
回声“
警报(\“可能发生的情况下,请联系我们,不要联系我们。”);
document.contacto.captcha.select();
返回false;
"; 
}
$request\u captcha=htmlspecialchars($request['captcha']);
取消设置($_会话['captcha']);
}
非常感谢你的帮助


祝您度过愉快的一天。

您的表单是否已发布到此php?我想您已经将表单HTML从您的问题中删除了。如果希望以这种方式验证表单,则需要根据$\u请求在表单HTML中填写值


更好的解决方案是使用AJAX验证表单。

您的PHP代码应该获取$\u POST请求上的数据,并在重新加载后将其发送回页面。 然后,在表单内部,您应该检查每个变量,如果它不是空的,则预填充表单上的字段

如果您不使用框架(如代码所示),那么这对于作为开发人员的您来说是非常耗时的。
试试最流行的一款,它可以为您提供出色的表单和验证处理功能,如Symfony2、Laravel、Zend Framework2。

您的代码没有显示任何重新加载功能。您在哪里这样做?使用JS解析submit()上的提交并防止默认提交行为(除非表单验证)。此外,还存在电子邮件头注入漏洞: