Javascript 使用php验证html表单
我正在尝试使用php验证html表单。我已经用下面的方法解决了这个问题:Javascript 使用php验证html表单,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我正在尝试使用php验证html表单。我已经用下面的方法解决了这个问题: function name() { var pass = document.getElementById('firstname1'); var sb = document.getElementById('submit1'); var letters=/^[a-zA-Z]+$/; if (pass.value.match(letters) ){ sb.disabled = fals
function name() {
var pass = document.getElementById('firstname1');
var sb = document.getElementById('submit1');
var letters=/^[a-zA-Z]+$/;
if (pass.value.match(letters) ){
sb.disabled = false;
document.getElementById('error-fname1').style.display = 'none';
}
else {
document.getElementById('error-fname1').style.display = 'block';
sb.disabled = true; }
}
我的html表单的一部分:
但我的问题是,在此表单中,错误消息不会与表单出现在同一页,而是出现在另一页。我想在表单所在的页面上显示错误消息
在javascript中我这样做,但我不知道如何在php中这样做:
我构建了一个如下所示的函数:
function name() {
var pass = document.getElementById('firstname1');
var sb = document.getElementById('submit1');
var letters=/^[a-zA-Z]+$/;
if (pass.value.match(letters) ){
sb.disabled = false;
document.getElementById('error-fname1').style.display = 'none';
}
else {
document.getElementById('error-fname1').style.display = 'block';
sb.disabled = true; }
}
然后我试着这样称呼它:
<input class="text" type="text" name="fname" id="firstname1" required="required" onchange="name()">
<span class="errorformat " id="error-fname1" style="display: none" >
Please write only letters
</span>
请只写信
请帮助我…我正在努力学习php。。。提前感谢为什么不在同一页上验证它呢 php: html:
这样,php只在表单已提交时运行,错误将出现在同一页面上 如果您想使用php执行服务器端验证(强烈推荐),那么您可以使用以下方法,将所有内容都放在同一个文件中。。。示例文件form.php
<?php
//validate form
if(!preg_match("/^[a-zA-Z ]*$/",$_POST['fname']))
{
$problem = true;
}
else
{
$formok = true;
?>
然后,html部分开始,您可以在某个时候输入错误消息:
<?php if($problem) echo "Incorrect Name Format" ?>
<?php if($formok) echo "Nice job" ?>
那么表格应该是这样的:
<form action="form.php">
//inputs
</form>
//投入
如果您想使用重定向在之前的页面上显示错误消息,可以执行类似的操作:
if (!preg_match("/^[a-zA-Z ]*$/",$_POST['fname'])) {
header("Location: http://domain/oldpage.php");
exit();
}
您可以将其重定向到新的错误页面,或者可能在链接末尾包含一个查询字符串,例如
?error=true
。然后,在页面上检查该查询字符串,如果有,则显示错误消息。在表单所在的页面上,添加GET var并检查是否已设置。比如:
if(isset($_GET['error'])) {
// Output error message logic here. Don't forget to sanitize the GET var //
}
在处理数据的文件中,如果有任何错误,请将用户返回到包含表单的页面,并附上错误消息
$errormsg = '';
if($_POST['fname'] == trim("") || !isset($_POST['fname'])) {
$errormsg = 'Please enter your name';
header('location: signup.php?error='.$errormsg);
}
这假设包含表单的页面是一个PHP文件。如果不是,只需更改扩展名。是否将表单的
操作设置为另一页?如果是这样的话,在服务器端PHP代码的旧页面上放置错误消息的唯一方法是重定向回旧页面。是的,当我按下submit按钮时,我转到另一个页面,上面写着:成功或输出错误消息。这个页面名为signup.php,在那里我还将表单与数据库连接起来,并在那里检查错误。但是我如何在signup.html页面中检查表单所在页面中的错误?我如何重定向回旧页面?您不能简单地使用PHP检查同一页面。PHP的全部意义在于它是一个服务器端代码。您可以使用AJAX
request来完成,但您需要javascript和PHP。表单要转到另一个页面,但错误消息应该显示在旧页面上。只需重定向到下一个页面validation SucceedYes@Jaxon,我的想法是让它与表单位于同一页面…我尝试构建一个php函数,并将其调用onchange…因为我希望在单击第二个输入表单时,第一个表单不正确,显示错误…在我提交时不在最后显示错误…但我如何才能做到这一点?你需要JavaScript,但你还没有JavaScript验证吗?是的,我有。但我在想该用哪一个。我现在正在学习php,我想用php进行验证。但我的情况更好吗?
if (!preg_match("/^[a-zA-Z ]*$/",$_POST['fname'])) {
header("Location: http://domain/oldpage.php");
exit();
}
if(isset($_GET['error'])) {
// Output error message logic here. Don't forget to sanitize the GET var //
}
$errormsg = '';
if($_POST['fname'] == trim("") || !isset($_POST['fname'])) {
$errormsg = 'Please enter your name';
header('location: signup.php?error='.$errormsg);
}