php 检查用户登录和最小化数据库查询的最佳方法?

c8ib6hqw  于 2022-12-25  发布在  PHP
关注(0)|答案(3)|浏览(121)

我如何让用户登录,然后检查他的cookie,看看他们是否可以继续;这个cookie有他的用户ID和加密密码。2我可以在每一页都检查吗?3不用每次都使用MySQL?
编辑:会话已使用

3qpi33ja

3qpi33ja2#

1.首先,获取用户名和密码并进行验证。
1.验证用户名和密码是否存在于数据库中。
1.如果用户名/密码有效,则在会话上设置标记。
1.确认在每个新页面上将该标志设置为true。
代码在这里...

// start the session //
session_start();

// create one flag //
$_SESSION['logged'] = FALSE;

// username, password from form submit //
$username = $_POST['username'];
$password = sha1($_POST['password']);

// check once in database //
$con = new mysqli('localhost', 'my_username', 'my_password', 'my_database');
$sql = "SELECT * FROM `tbl_users` AS `u` WHERE `u`.`username` = ? AND `u`.`password` = ?";
$result = $con->query($sql, array($username, $password));

// if user existed return one row //
if($result->num_rows() == 1) {
    $_SESSION['logged'] = TRUE;
    $_SESSION['username'] = $username;
} else {
    echo "invalid username or password!!";
}

对于所有其他新页面,请检查此

if(isset($_SESSION['logged']) == TRUE) {
    echo 'You are logged' . $_SESSION['username'];
} else {
    header('location:login_form.php');
}
snvhrwxg

snvhrwxg3#

你应该使用会话。会话是相当可行的。只是把值在会话中,然后在每个页面只是启动会话,并检查会话。如果用户有会话,然后继续,否则发送他到登录页面

相关问题