我有2个php文件" source.php"和" target.php"。在source.php部分我有,
<form method="POST" id="form1" action="target.php">
...
<input type="submit" name="submit" value="Submit"/>
</form>
当我点击提交时,它会转到&#34; target.php&#34; (即使我在表单中有错误),但我希望如此,只有在所有表单字段都经过验证后,它才会转到目标页面,否则它会显示某种警告消息并保持在同一页面上。请帮忙!对某些人来说,这可能是一个愚蠢的问题,但我是初学者。 (我知道如何进行所有现场验证及其工作正常)。
答案 0 :(得分:0)
您可以使用AJAX验证表单。建议不要将JavaScript用于表单验证。 有一个简单的AJAX验证教程here
但请注意,即使您在提交到target.php之前验证表单,也要确保检查target.php中的数据。这是因为可以在浏览器中更改JavaScript(感谢现代DOM解释器)。可以这样做,以便在没有AJAX验证的情况下提交表单。所以你应该在提交之前和之后检查两次。
还要确保转义数据,因为用户输入永远不可信任。
您还应该使用strip_tags($string)
来防止使用插入PHP代码。
答案 1 :(得分:0)
JavaScript很可能是最简单的方法(阅读其他帖子)。
但是,如果您不想使用JavaScript,您可以随时检查是否所有表单都是使用isset()
或类似的东西设置的,然后传递URL中的$_POST
变量并使用$_GET
。当然要确保URL中没有任何敏感信息。另外:您可以始终使用全局变量。
在没有JavaScript的情况下执行此操作的另一种方法是在多次检查后提交到数据库(例如转义字符串等),甚至加密,但我不建议这样做,因为这是很长的路要走。
答案 2 :(得分:0)
重复的问题重复。请在下次发布之前仔细搜索。
通常javascripts用于验证。但是有些情况下javascripts效率低下,例如当你需要验证国家及其状态时。将整个国家和州的列表发送给客户端是不切实际的。在这种情况下使用AJAX。通过使用AJAX,客户端在用户输入数据后立即将数据发送到服务器。然后仅获取所需数据。客户端和服务器之间同时进行双向通信。例如,如果用户输入国家/地区名称为INDIA,使用INDIA的AJAX状态加载进行验证,从而节省带宽。 JavaScript和AJAX不容易学习,你必须研究尝试并纠正不同的代码。只需谷歌“JavaScript表单验证”......
这是来自w3Schools ......
必填字段 下面的函数检查字段是否为空。如果该字段为空,则警告框会提醒消息,该函数返回false,并且不会提交表单:
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
提交表单时可以调用上面的函数:
实施例
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>
这里有更基本的例子 http://www.w3schools.com/js/js_form_validation.asp
祝你好运