Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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 用于在表单提交时发回错误/成功消息的路由_Php_Javascript_Validation - Fatal编程技术网

Php 用于在表单提交时发回错误/成功消息的路由

Php 用于在表单提交时发回错误/成功消息的路由,php,javascript,validation,Php,Javascript,Validation,无论客户机是否启用了javascipt,我都在努力使我的联系人表单提交过程同样有效 如果启用了javascript,则当触发调用my validateContactForm()函数的onsubmit事件时,将在客户端处理验证: <form method="POST" action="email_processing.php" onsubmit="return validateContactForm();"> 如果返回false,则不提交表单,并指示客户纠正错误 如果valida

无论客户机是否启用了javascipt,我都在努力使我的联系人表单提交过程同样有效

如果启用了javascript,则当触发调用my validateContactForm()函数的onsubmit事件时,将在客户端处理验证:

<form method="POST" action="email_processing.php" onsubmit="return validateContactForm();">

如果返回false,则不提交表单,并指示客户纠正错误

如果validateContactForm()返回true或禁用javascript,则表单将提交到电子邮件_processing.php脚本。php脚本然后重新验证数据,如果一切正常,它会发送一封电子邮件

如果我依赖javascript,我可以使这个过程异步,让php脚本返回一条消息,该消息将由客户端回调函数处理。这可能是一条错误消息,也可能是一条成功消息

但是因为我想让javascript被禁用的人可以使用,所以我不能这样做

如果出现错误,我需要返回联系人表单页面,在联系人表单中显示错误消息,如果成功,我可能应该删除联系人表单,在表单原来的位置显示“感谢”消息

我想知道stackoverflow用户是否会:

  • 将表单提交到一个php脚本,然后该脚本将重定向到另一个php/html页面

  • 在contact us php页面顶部具有验证/电子邮件发送功能,每次加载contact us页面时,我们都会检查是否设置了某些变量,如果设置了,那么我们就知道需要验证和发送电子邮件,并显示正确的格式/消息

  • 如果我不这么想的话。这一定是一种非常常见的情况,我在lttle应用程序中为自己做了很多次,我知道我会启用javascript,但我需要为客户机做这件事,我想确保它做得正确


  • 事先非常感谢

    以下是我的工作。首先,我使用(这就是我验证的方式),如果有错误,就会显示错误,并且不允许用户在没有验证的情况下继续

    然后我发送表单提交,当它到达服务器时,我还使用php进行双重检查,这允许我进行双重保护,并将错误发送回服务器

    如果用户在提交表单时未启用javascript,则会显示验证完成错误消息


    这确实是一个非常常见的情况

    所以有两种验证:客户端和服务器端。服务器端是最重要的,我认为客户端验证更多的功能。例如,如果您正在填写表单,在不发送请求的情况下查看表单是否正确填写“很好”,但出于安全原因,您仍然应该执行服务器端验证

    您可能希望始终执行服务器端验证,但实际上最好同时执行这两种验证。以下是您应该如何设计它:

    表单操作应将用户发送到.php文件。如果内容经过验证,很好,给他一个ok消息。如果内容未经验证,请将其发送回表单页面并显示错误消息


    如果您正在寻找一个不那么抽象的解决方案,请告诉我。

    谢谢您的回复。我以前曾按照您建议的方式使用JQuery进行过验证,但是如果禁用了javascript,那么在服务器端完成验证之后,错误或成功消息是如何发送回来的?我认为,需要返回一个全新的页面,因为我们无法进行任何ajax dom操作,所以我需要重定向到“错误”或“成功”页面,或者表单提交到的实际“.php”页面需要是实际的联系人表单页面,不是吗?这就是让我困惑的地方。是的,如果没有javascript,他们应该返回到同一页面,并显示错误消息右侧,谢谢。在这种情况下,脚本如何知道它是否是通过启用javascript的方式发送的?您是否在POST请求中添加了一个额外的变量?哦,我明白您的意思了,是的,您可以这样做,但只需检查$_服务器['HTTP_X_REQUESTED_WITH']='XMLHttpRequest',这样我就知道它是否是ajax请求。谢谢你的回复。真正让我困惑的是,当你说“给他一个OK消息”时,如果你没有使用ajax,那么你要么需要将他重定向到“OK消息页面”,要么表单发送到的实际的“.php”页面应该是带有表单的页面,表单可以根据响应进行配置,不是吗。你会怎么处理?谢谢,同样地,当发送回表单页面时,它必须是某种重定向(重定向应该如何最好地完成?),或者表单页面本身应该以某种方式进行配置。嘿,很抱歉评论太晚(我需要了解如何在收到评论时发送邮件)。好的,下面是:您可以使用GET请求将用户重定向回表单页面,即页眉(“Location:page.php?error_msg=invalid_format”);。然后在表单页面上,您可以使用if($\u GET['error\u msg']==“invalid\u format”)displayError();