加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:23:00 所属栏目:PHP教程 来源:网络整理
导读:我几乎完成了我的登录脚本,但我不知道如何检查用户名和密码是正确的. 这是我的脚本文件. index.php: htmlbodyform action="action1.php" method="post"Username: input type="text" name="uname"Password: input type="password" name="pword"input type="s
我几乎完成了我的登录脚本,但我不知道如何检查用户名和&密码是正确的.
这是我的脚本文件.

> 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();

?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读