我是另一个处女编码器,我在创建一个非常非常简单的用户身份验证系统时遇到了麻烦。与最佳实践相反,这是一个小项目,安全性不是问题。
我想创建一个用户名和密码,用于加密并存储在数据库中。然后,登录表单,然后定向到目标页面。我不关心保持登录会话;为了一次访问一个页面,它可以是一个完成的事情。非常简陋,但我仍然无法自拔......
使用来自createuser.html的散列传递的用户输入,FORM.php不会被发送到数据库。
我这里有一些代码......
CREATE ADMIN:
....
<div class="body-content">
<div class="module">
<h1>Create Admin</h1>
<form class="form" action="form.php" method="post" enctype="multipart/form-data" autocomplete="off">
<div class="alert alert-error"></div>
<input type="text" placeholder="User Name" name="username" required />
<input type="password" placeholder="Password" name="password" required />
</div>
<input type="submit" value="Register" name="register" class="btn btn-block btn-primary" />
</form>
</div>
</div>
....
form.php的
if (!$con)
{die("Failed to connect to MySQL: " . mysqli_connect_error() ); }
$var_user = $_POST['username'];
$var_pass = $_POST['password'];
//encrypt the password
//Grab the password from form data sent via POST
//encrypt the password
$encPassword = password_hash($var_pass, PASSWORD_DEFAULT);
$query = "INSERT INTO users(id, username, password)
VALUES ('id', '$var_user', '$encPassword')";
if (mysqli_query($con, $query))
{echo "User created" . "<br>";}
else
{ die('SQL Error: ' . mysql_error($con) ); }
mysqli_close($con);
?>
LOGIN:
.....
<form name="login" method="post" action="verify.php">
<table width="450px">
<tr>
<td valign="top">
<label for="username">Username</label>
</td>
<td valign="top">
<input type="text" name="username" maxlength="100" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="password">Password</label>
</td>
<td valign="top">
<input type="password" name="password" maxlength="100" size="30">
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="login" value="Login" name="Login" class="btn btn-block btn-primary" />
</td>
</tr>
</table>
</form>
.....
verify.php
<?php
// $encPassword is the hashed password value from our database
// $postPassword is the password from our login form
if (password_verify($postPassword, $encPassword ))
{
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
?>
我知道它并不多,而且我错过了使用已连接用户名检查密码的验证部分。我真的需要一些帮助我的人类朋友。提前谢谢!!!!