如果操作html表单,则使用php
我正在用php制作登录页面 但是,如果操作了html表单的空白检查(第4行),则为否 在html中输入表单后,即使按了登录键,也没有moveif语句 因为原因不明,我想让你告诉我如果操作html表单,则使用php,php,mysqli,Php,Mysqli,我正在用php制作登录页面 但是,如果操作了html表单的空白检查(第4行),则为否 在html中输入表单后,即使按了登录键,也没有moveif语句 因为原因不明,我想让你告诉我 if (isset($_POST["login"])) {//PUSH login button //form blank check if ($_POST["email"] = '') { $error['email'] = "blank"; } else if ($_POST["pass"]
if (isset($_POST["login"])) {//PUSH login button
//form blank check
if ($_POST["email"] = '') {
$error['email'] = "blank";
} else if ($_POST["pass"] = '') {
$error['pass'] = "blank";
}
}
if(!empty($_POST['email'])){
//email & password verification
if($_POST['email'] != '' && $_POST['pass'] != ''){
$email = $_POST['email'];
$pass = SHA1($_POST['pass']);
$query = "select * from human";
$result = mysqli_query($dbc,$query);
$data = mysqli_fetch_array($result);
if($data['email'] == $email) { //form email & password
if($data['pass'] === $pass) {
setcookie('email', $email, time()+(60*60*24*3));
setcookie('pass', $pass, time()+(60*60*24*3));
setcookie('name', $date['name'], time()+(60*60*24*3));
exit();
}else{
$error['match'] = "anmatch"; //Mismatch Error
}
}
}
<!DOCTYPE html>
<form action="" method="post">
<dl>
<dt>email</dt>
<dd>
<input type="text" name="email" size="35" maxlength="255"
value="<?php echo htmlspecialchars($_POST['email']); ?>">
<?php if($error['email'] == 'blank'): ?>
<p><font color="red">* Input email</font></p>
<?php endif; ?>
</dd>
<dt>password</dt>
<dd>
<input type="password" name="pass" size="35" maxlength="255"
value="<?php echo htmlspecialchars($_POST['pass']); ?>">
<?php if($error['pass'] == 'blank'): ?>
<p><font color="red">* Input password</font></p>
<?php endif; ?>
</dd>
</dl>
<input type="submit" id="login" name="login" value="sigh in">
</form>
if(设置($\u POST[“login”]){//按登录按钮
//空白支票
如果($_POST[“email”]=''){
$error['email']=“空白”;
}如果($_POST[“pass”]=''){
$error['pass']=“blank”;
}
}
如果(!空($_POST['email'])){
//电子邮件和密码 验证
如果($_POST['email']!=''&$_POST['pass']!=''){
$email=$_POST['email'];
$pass=SHA1($_POST['pass']);
$query=“选择*来自人工”;
$result=mysqli_查询($dbc,$query);
$data=mysqli\u fetch\u数组($result);
如果($data['email']=$email){//格式电子邮件和密码
如果($data['pass']==$pass){
setcookie('email',$email,time()+(60*60*24*3));
setcookie('pass',$pass,time()+(60*60*24*3));
setcookie('name',$date['name',time()+(60*60*24*3));
退出();
}否则{
$error['match']=“anmatch”;//不匹配错误
}
}
}
电子邮件
首先,如注释中所述,您正在if语句中赋值。另外,我猜是第二点,因为您的条件是嵌套的else if
第一个赋值始终为真,因此第二个条件永远不会被测试
//form blank check
if ($_POST["email"] = '') {
$error['email'] = "blank";
} else if ($_POST["pass"] = '') {
$error['pass'] = "blank";
}
第二个条件语句仅在第一个条件语句为false
您应该尝试独立地检查每个变量,并确保使用=
//form blank check
if ($_POST["email"] == '') {
$error['email'] = "blank";
}
if ($_POST["pass"] == '') {
$error['pass'] = "blank";
}
这一行:if($\u POST[“email”]=''){
不是一个比较,而是一个赋值。将其替换为if($\u POST[“email”]=''){
(请注意双精度=
。imo,仅供参考,1)不需要单独的cookie。2)出于安全原因,不在cookie中存储用户标识信息。它可以很容易地读取。相反,将用户记录的“哈希”id存储在cookie中,将“哈希”id存储在用户中。这样做是安全的,并且只使用一个cookie。