我可以只用jQueryvalidation还是需要PHP?

我理解两种语言之间的区别,但是当涉及到表单validation时。 jQuery足够吗?

我可以在jQuery / JavaScript中validation我的表单,然后进行AJAX调用以将完成的表单发送到电子邮件地址吗? 是否可以使用JavaScript将表单数据发送到电子邮件地址?

或者用PHP做一切是否更安全?

我问这个是因为使用PHP是我习惯的,但是,我最近开始使用更高级的JavaScript和jQuery。

你应该做这两个validation – jQuery用户友好的响应用户丢失或输入错误 – 来自客户端的asap反馈。

您无法信任客户端,因此您始终必须执行服务器端数据检查以确保正确输入所有内容。

最好传递数据并在服务器端再次检查然后完成您的操作(电子邮件,数据库插入,输出)

您可以在JQuery中创建更加用户友好的UI。 但是,您还应该在PHP(服务器端)中进行validation,因为如果您没有人可以通过关闭JavaScript来绕过validation。 还有其他方法可以解决这个问题,但作为一般规则,永远不要相信客户端进行validation。

换句话说,客户端validation(JQuery / JavaScript)不能取代服务器端validation。 JQuery更多地用于用户体验。

既然你担心AJAX,这里有一个代码示例:

PHP

//if there is an error: header('HTTP/1.1 500 Internal Server Error'); header('Content-Type: application/json; charset=UTF-8'); die(json_encode(array('message' => 'ERROR', 'code' => 1337))); //if there is not an error: header('Content-Type: application/json'); echo json_encode(array("message"=>"All good here!")); 

JQuery的

 //this is on submit, but you could do other events $(document).ready(function(){ $("form").submit(function(e) { e.preventDefault(); $.ajax({ type: "post", url: "path/to/your.php", data: $('form').serialize(), success: function(data) { alert(data.message); }, error: function(xhr, status, error) { var err = eval("(" + xhr.responseText + ")"); alert(err.Message); }, dataType: "json"}); }}); }); 

注意:我没有测试上面的代码,但它可能会让你知道该怎么做。

无论您是否决定进行任何客户端validation,您始终都希望进行服务器端(PHP)validation,因为您永远不应该信任用户提供的输入。

至于包括jQuery / JavaScriptvalidation:这更像是一个风格或用户体验问题。 如果希望您的用户对某些类型的错误(例如丢失或无效的数据)有即时反馈,那么您绝对应该包括一些客户端validation。

最好是同时使用两者:当用户填写表单或用户按下提交按钮时,使用jQuery测试输入。 这在大多数情况下已经足够了,但由于用户可以在浏览器中关闭JavaScript,因此您也应该使用PHP检查发送的数据。 如果数据可能会让您感到困惑,这一点尤其重要,例如,如果将数据保存到数据库中,那么SQL注入可能会造成巨大的混乱,并使您的安全性受到威胁……

如果你用PHP检查数据,那么第一个jQuery部分并不是绝对必要的,但是如果用户得到关于他们是否正确填写表单而不必先重新加载页面的反馈,那就太好了…

不,我认为使用JavaScript将表单数据发送到电子邮件地址是不可能的。

让服务器进行任何validation至关重要,因为在一天结束时,IT是与数据库,文件存储区域,电子邮件进程和执行任何命令进行通信的机制 – 即任何后果!

JavaScriptvalidation快速而有用,但正如其他人所说,只需将其关闭即可轻松绕过它! 或者,如果您的访问者使用的浏览器没有JavaScript,该怎么办?

jQuery / JavaScript是客户端脚本语言,它很容易绕过你应该使用客户端和服务器端validation的组合来获得可靠的输入。 在我们需要SMTP服务器以便发送将成为我们服务器端的电子邮件,因此您必须使用PHP将您的表单信息通过电子邮件发送到所需的电子邮件目的地。

我希望你的理解足够了:)

好吧..开始,不是可以选择其中一种的语言。

Javascript / jquery是一种客户端语言,PHP是一种服务器端语言。 这是什么? Javascript在客户端浏览器上运行,受其限制,可以由最终用户轻松更改并具有我们不想要的行为。 让PHP在服务器端运行,用户无法控制。 它更安全,并且通过规则,不应该忽略PHP(或其他服务器端语言)来validation表单。 因此,我们确信我们的代码没有安全漏洞。

但是,使用它们是非常好的… jquery / JS允许您实时检查,保存用户提交表单然后收到错误消息…在JS中,它保存了这项工作。 如果用户“中断”保护几乎不通过validation服务器端。

总之,PHP始终……为了增强体验(强烈推荐),也使用JS 🙂