为什么使用此代码验证并提交表单不正确?
我的目的是将表格(姓名和电子邮件)中获得的数据发送到文件 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 {
?>
答案 0 :(得分:1)
客户端(javascript)表单验证仅用于改善用户体验(UX)。它不是服务器端(PHP)验证的替代品。您需要两者,但它们有不同的用途。
Javascript绝对应该为最终用户提供更好表单的体验,但它不会使阻止服务器端故障的过程变得更好,因为没有人需要运行您的javascript才能向您的服务器发送HTTP请求。
例如,假设您的PHP希望用户提供有效的电子邮件地址和至少8个字符的密码。如果您使用javascript来阻止请求被发送到服务器,因为它不符合这些要求,并在浏览器中提供一些额外信息以提醒用户此失败,那么它只能更好地为最终用户服务。否则,替代方案是请求必须首先到达服务器,然后才能失败,然后服务器负责以某种方式通知用户失败。
在某些情况下,这会变得笨拙。例如,在用户正在上传大文件的情况下。如果服务器要求文件大小不超过一定数量(假设为100MB),可以使用javascript让最终用户知道此文件太大之前我们甚至尝试将其发送到服务器。这意味着用户在被告知服务器无法接受之前不必等待上传完成。
这并不意味着服务器也不需要验证大小。它仍然需要执行相同的验证以防止任何应用程序/系统故障并强制执行任何所需的应用程序/系统约束。
答案 1 :(得分:-1)
我是JavaScript的新手,我已经使用PHP一段时间了,我想说使用JavaScript进行表单验证是一个坏习惯,总是建议使用服务器端语言来验证表单例如PHP或Python。因此,可能会创建自己的成功/错误消息或继续使用警告框,但在验证用户输入和提交数据时,始终依赖于服务器端语言!