Php 为什么我的表单验证程序工作不正常
我有这样的问题,我真的不知道为什么,我最近加入了php,但即使我在这里没有看到任何安慰,为什么它不工作 我在我的计算机上使用XAMPP apache和php,我已经制作了一些简单的表单验证程序,但这一个不起作用,我有点绝望。下面的所有代码都在一个Php 为什么我的表单验证程序工作不正常,php,forms,Php,Forms,我有这样的问题,我真的不知道为什么,我最近加入了php,但即使我在这里没有看到任何安慰,为什么它不工作 我在我的计算机上使用XAMPP apache和php,我已经制作了一些简单的表单验证程序,但这一个不起作用,我有点绝望。下面的所有代码都在一个index.php文件中,我正在通过浏览器中的localhost链接打开该文件。当我打开它时,代码如下: 数组()没有错误 然后形成。单击“提交”而不在表单中填写任何数据后,它将刷新,如下所示: 数组([电子邮件]=>[密码]=>)无错误 请帮帮我。提前
index.php
文件中,我正在通过浏览器中的localhost链接打开该文件。当我打开它时,代码如下:数组()没有错误 然后形成。单击“提交”而不在表单中填写任何数据后,它将刷新,如下所示: 数组([电子邮件]=>[密码]=>)无错误 请帮帮我。提前谢谢
<?php
print_r($_POST);
if(array_key_exists("submit", $_POST)){
$err = "";
if(!$_POST["email"]){
$err = "You need to type in email";
} else if(!$_POST["password"]){
$err = "You need to type in password";
}
}
if($err = ""){
echo $err."tak";
}else{
echo "no error";
}
?>
<div id="error"><? php echo $err ?></div>
<form method="post" >
<input type="text" placeholder="username" name="email">
<input type="password" placeholder="password" name="password">
<input type="checkbox" name="StayLoggedIn" value="1">
<input type="submit" value="Sign Up">
</form>
您不需要发送“提交”键,它实际上是无用的。
要使其正常工作,只需删除“如果”条件:
if(array_key_exists("submit", $_POST)){
因为如果数据存在(电子邮件和密码),您可以直接获取数据。
您还可以像这样改进代码:
$err = "no error";
if(!$_POST["email"]){
$err = "You need to type in email";
} else if(!$_POST["password"]){
$err = "You need to type in password";
}
并删除末尾不必要的“if-else”检查希望它有帮助我明白了,没有人注意到我有
if($err==“”)
,是的,我只有if($err=”“)
,但问题是它总是错误的,因为我总是有一两个字段是空的,我缺少了一个代码>指向那里,一切都会好起来的。哦,是的,我也错过了提交输入的name
属性。但我非常感激你们
这是最后的工作代码
<?php
print_r($_POST);
if(array_key_exists("submit", $_POST)){
$error = "";
if(!($_POST['email']) ){
$error.="You need to type in email";
}
if(!$_POST["password"]){
$error.="You need to type in password";
}
}
?>
<div id="error"><?php echo $error ?></div>
<form method="post" >
<input type="text" placeholder="username" name="email">
<input type="password" placeholder="password" name="password">
<input type="checkbox" name="StayLoggedIn" value="1">
<input type="submit" name="submit" value="Sign Up">
</form>
如果(!isset($\u POST[“email”]){$error.=“您需要键入电子邮件”}
?您希望看到什么?另外,您知道=
和=
之间的区别吗?提交按钮不会发送值,因为它缺少名称
属性。除非“提交”恰好是“提交”按钮的名称,否则您将选中“提交”按钮的名称而不是“提交”。