验证并提交表单

时间:2016-09-04 21:37:36

标签: javascript php forms validation post

为什么使用此代码验证并提交表单不正确?

我的目的是将表格(姓名和电子邮件)中获得的数据发送到文件 1f_ok.php ,该文件将负责将数据保存到数据库中。

<form id="new_item_post" class="fm" method="post" action="<? $_SERVER['PHP_SELF']; ?>" 
      enctype="multipart/form-data" name="procedim" 
      onSubmit="MM_validateForm('nombre','mailcontacto');return document.MM_returnValue" 
      ondblclick="Submit_seguro(this)">

处理

<?php
  if ($response != null && $response->success) {
    echo "<script>alert('Submitted form'); location.href='1f_ok.php'</script>";
  } else {
?>

2 个答案:

答案 0 :(得分:1)

客户端(javascript)表单验证仅用于改善用户体验(UX)。它不是服务器端(PHP)验证的替代品。您需要两者,但它们有不同的用途。

Javascript绝对应该为最终用户提供更好表单的体验,但它不会使阻止服务器端故障的过程变得更好,因为没有人需要运行您的javascript才能向您的服务器发送HTTP请求。

例如,假设您的PHP希望用户提供有效的电子邮件地址和至少8个字符的密码。如果您使用javascript来阻止请求被发送到服务器,因为它不符合这些要求,并在浏览器中提供一些额外信息以提醒用户此失败,那么它只能更好地为最终用户服务。否则,替代方案是请求必须首先到达服务器,然后才能失败,然后服务器负责以某种方式通知用户失败。

在某些情况下,这会变得笨拙。例如,在用户正在上传大文件的情况下。如果服务器要求文件大小不超过一定数量(假设为100MB),可以使用javascript让最终用户知道此文件太大之前我们甚至尝试将其发送到服务器。这意味着用户在被告知服务器无法接受之前不必等待上传完成。

这并不意味着服务器也不需要验证大小。它仍然需要执行相同的验证以防止任何应用程序/系统故障并强制执行任何所需的应用程序/系统约束。

答案 1 :(得分:-1)

我是JavaScript的新手,我已经使用PHP一段时间了,我想说使用JavaScript进行表单验证是一个坏习惯,总是建议使用服务器端语言来验证表单例如PHP或Python。因此,可能会创建自己的成功/错误消息或继续使用警告框,但在验证用户输入和提交数据时,始终依赖于服务器端语言!