Php 检查用户登录和最小化数据库查询的最佳方法?
我想知道如何让用户登录,然后检查他的cookies是否可以继续,cookie有他的用户ID和加密密码。有没有办法在每一页都检查?没有每次都使用mysql 多谢各位Php 检查用户登录和最小化数据库查询的最佳方法?,php,mysql,Php,Mysql,我想知道如何让用户登录,然后检查他的cookies是否可以继续,cookie有他的用户ID和加密密码。有没有办法在每一页都检查?没有每次都使用mysql 多谢各位 编辑:会话已使用为什么不使用?为什么不使用?您应该使用会话。这次会议是完全可行的。只需在会话中输入值,然后在每个页面上启动会话并检查会话。如果用户拥有该会话,则继续,否则请将其发送到登录页面,您应该使用该会话。这次会议是完全可行的。只需在会话中输入值,然后在每个页面上启动会话并检查会话。如果用户有会话,则继续,否则将其发送到登录页面
编辑:会话已使用为什么不使用?为什么不使用?您应该使用会话。这次会议是完全可行的。只需在会话中输入值,然后在每个页面上启动会话并检查会话。如果用户拥有该会话,则继续,否则请将其发送到登录页面,您应该使用该会话。这次会议是完全可行的。只需在会话中输入值,然后在每个页面上启动会话并检查会话。如果用户有会话,则继续,否则将其发送到登录页面
// 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');
}
// 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');
}
您不想将密码存储在cookie中,不管是否加密。您不需要使用MySQL检查会话值。会话值只能由代码设置。它们存储在服务器上,仅由cookie(会话id)标识。用户无法篡改会话值。您不想将密码存储在cookie中,不管是否加密。您不需要使用MySQL检查会话值。会话值只能由代码设置。它们存储在服务器上,仅由cookie(会话id)标识。用户无法篡改会话值。我实际使用会话,主要问题是使用mysqlAm实际使用会话检查值,主要问题是使用mysqlAm实际使用会话检查值,主要问题是使用mysql检查值…@Ronan Dejhero。亲爱的,我想你哪里做错了。当我们谈论会话时,在登录过程中,当我们验证用户时,我们只在会话中放置一次值。然后我们只需检查是否正在进行会话。我们不必再次查询表。我实际上在使用会话,主要问题是用mysql检查值…@Ronan Dejhero。亲爱的,我想你哪里做错了。当我们谈论会话时,在登录过程中,当我们验证用户时,我们只在会话中放置一次值。然后我们只需检查是否正在进行会话。我们不必再次查询表。您只需检查会话变量是否已设置。如果变量包含FALSE,则它将被接受为已登录。您仅检查会话变量是否已设置。如果变量包含FALSE,则它将被接受为已登录。