【发布时间】:2016-03-31 10:28:53
【问题描述】:
我创建了这个登录页面表单
<form name="loginform" method="post" action="home1.php" enctype="multipart/form-data" id="Form1" onsubmit="return Validateloginform(this)">
<input type="hidden" name="formid" value="form1">
<div id="wb_Text14" style="position:absolute;left:44px;top:13px;width:412px;height:38px;z-index:0;text-align:left;">
<span style="color:#000080;font-family:'Comic Sans MS';font-size:27px;"> <strong> LOGIN </strong></span></div>
<div id="wb_Text15" style="position:absolute;left:29px;top:75px;width:122px;height:27px;z- index:1;text-align:left;">
<span style="color:#000080;font-family:'Comic Sans MS';font-size:19px;"><strong> USERNAME</strong></span></div>
<input type="text" id="Editbox6" style="position:absolute;left:187px;top:75px;width:267px;height:28px;line-height:28px;z-index:2;" name="username" value="">
<div id="wb_Text16" style="position:absolute;left:34px;top:129px;width:125px;height:27px;z- index:3;text-align:left;">
<span style="color:#000080;font-family:'Comic Sans MS';font-size:19px;"> <strong>PASSWORD</strong></span></div>
<input type="password" id="Editbox7" style="position:absolute;left:187px;top:129px;width:267px;height:28px;line-height:28px;z-index:4;" name="password" value="">
<input type="submit" id="Button1" name="submit" value="Submit" style="position:absolute;left:142px;top:223px;width:195px;height:52px;z- index:5;">
</form>
我的php代码是
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['formid'] == 'form1') {
$mysql_server = 'localhost';
$mysql_username = 'root';
$mysql_password = '';
$mysql_database = 'register';
$mysql_table = 'users';
$db = mysqli_connect($mysql_server, $mysql_username, $mysql_password, $mysql_database);
if (!$db) {
die('Failed to connect to database server! <br>' . mysqli_connect_error());
}
mysqli_select_db($db, $mysql_database) or die('Failed to select database<br>' . mysqli_connect_error());
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($db, $sql);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if (mysqli_num_rows($result) == 1) {
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header('Location: home1.php');
exit;
} else {
$error = "Incorrect username and password";
}
}
?>
我不知道这段代码有什么问题。一切似乎都很好。它不会使用数据库中存在的数据验证登录表单中输入的数据。即使我输入了错误的密码或错误的用户名,甚至没有输入任何内容而只是按下提交按钮,它也会成功地将我重定向到所需的页面。我的注册表单和代码工作正常,数据已通过表单成功输入数据库。
我想要的页面名称是 home1.php 。我在同一个网页上有注册表单和登录表。早些时候,我在同一页面上拥有注册表单和登录表单的 php 代码。当时我运行这段代码时,它曾经将我重定向到同一页面本身。我的老师让我将登录表单的 php 代码放在所需的网页中,即 home1.php 。我放了它,然后当我按下提交按钮时,它会将我重定向到 home1.php 页面(我想要的页面),但我发现即使我没有在登录表单中输入任何内容并按下提交,它也会将我重定向到所需的页面,如果我输入数据库中不存在的用户名和密码,它会再次将我重定向到所需的页面。 然后我将登录表单 php 代码放在另一个文件中,然后尝试访问 home1.php 页面,但同样的问题出现了。请帮我 。我不知道该怎么办 。 谢谢 !
【问题讨论】:
-
你不应该在会话中存储用户的密码,这很不安全
-
是的。实际上,我是 PHP 新手,这是我完成的第一个登录表单和数据库连接。我以后会更多地了解它。
-
您是否保存用户输入的密码意味着您没有使用任何加密或在这里您忘记解密密码?
-
没有。我首先通过我的注册表单让用户注册。用户输入的数据将进入我的数据库。然后我让用户通过他注册的用户名和密码登录,这不能正常工作。即使我输入了未注册的用户名或密码,我也成功被重定向到主页。