php – 如何完成此登录脚本?

我几乎完成了我的登录脚本,但我不知道如何检查用户名和&密码是正确的.
这是我的脚本文件.

> index.php:

<html>
<body>

<form action="action1.php" method="post">
Username: <input type="text" name="uname">
Password: <input type="password" name="pword">
<input type="submit">
</form>

</body>
</html>

index.php文件只是我用来从我的用户收集信息以进行注册的页面.

> action1.php:

<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die ('Could not connect: ' . mysql_error());
}

mysql_select_db("user1", $con);

$sql="INSERT INTO useri1 (uname, pword)
VALUES
('$_POST[uname]','$_POST[pword]')";

if (!mysql_query($sql, $con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
?>

action1.php文件只是将用户注册到数据库的页面.

> login.php:

<html>
<body>

<form action="checklogin.php" method="post">
Username: <input type="text" name="uname1">
Password: <input type="password" name="pword1">
<input type="submit">
</form>

</body>
</html>

login.php文件就是我用来输入用户登录信息的页面.

现在这是我的问题,我不知道如何检查用户登录信息,以便他们可以进入仅限会员区域.我是新手&任何帮助是极大的赞赏.

谢谢,

–Devin

解决方法:

首先,你想使用mysqli而不是mysql,因为mysql已经过时,不再积极开发.其次,您希望开始转义数据库查询以停止sql注入.在下面的代码中,我使用会话来跟踪用户.您可以了解有关会话here的更多信息.

<?php

session_start();

$mysqli = new mysqli('localhost', 'root', DB_PASSWORD, 'user1');

/* check connection */
if ($mysqli->connect_error)
  die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);

/* escape string from sql injection */
$userName = $mysqli->real_escape_string($_POST['uname1']);

/* query database */
$result = $mysqli->query("SELECT `pword` FROM `user1` WHERE `uname` = '".$userName."'");
if ($result->num_rows == 1) {
  while ($col = $result->fetch_array(MYSQLI_ASSOC)) {
    // This presumes you're storing your passwords in plain text.
    // If you hashed your passwords or anything, you would have to do the same to $_POST['pword']
    if ($_POST['pword'] == $col['pword']) {
      // You could do anything here, but sessions are a way of keeping track of a user.
      $_SESSION['userName'] = $_POST['uname1'];
      $_SESSION['loggedIn'] = true;
    }
  }
}
$result->close();

/* don't forget to close the connection */
$mysqli->close();

?>
上一篇:PHP MySQL无法跳转到第0行


下一篇:使用PHP查询DNSBL或其他阻止列表