在php中验证用户并重定向到登录或主页
我有一个场景,我想在页面加载时验证用户。 我想为所有页面,包括登录和主页相同的脚本,在其中,如果用户登录重定向到主页,否则重定向到登录。 在我的代码中,由于重定向太多,它失败了。需要简单的解决方案。 这是我的密码: session.php在php中验证用户并重定向到登录或主页,php,mysql,Php,Mysql,我有一个场景,我想在页面加载时验证用户。 我想为所有页面,包括登录和主页相同的脚本,在其中,如果用户登录重定向到主页,否则重定向到登录。 在我的代码中,由于重定向太多,它失败了。需要简单的解决方案。 这是我的密码: session.php <?php define('DB_SERVER', 'localhost'); define('DB_USERNAME', ''); define('DB_PASSWORD', ''); define('DB_DATABASE',
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', '');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'auth');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
session_start();
$checkId = ''; $checkUser = ''; $checkPass = '';
if(isset($_SESSION['login_userId'])){ $checkId = $_SESSION['login_userId']; };
if(isset($_SESSION['login_userName'])){ $checkUser = $_SESSION['login_userName']; };
if(isset($_SESSION['login_userPass'])){ $checkPass = $_SESSION['login_userPass']; };
$sessionResult = mysqli_query($db, "select * from users where id='$checkId' AND username='$checkUser' AND password='$checkPass'");
$getSessionRow = mysqli_fetch_array($sessionResult, MYSQLI_ASSOC);
$sessionRowcount = mysqli_num_rows($sessionResult);
if(isset($getSessionRow['username']) && $checkUser == $getSessionRow['username']){
header("location:home.php");
}
else {
header("location:login.php");
}
?>
您在两个页面中使用相同的会话页面,当然它将重定向到更多。您必须从登录和主页中删除会话php。在登录后创建表单按钮中,单击将表单发布到会话php,以便它可以重定向。在home php顶部创建一个if语句,检查会话登录是否已登录,否则将其发送到会话php,该会话php将停止所有循环。在运行会话页面后,在会话中设置登录id,并在主页开始时检查是否不存在(isset)登录id,然后将其重定向到登录页面的相同登录
if(!isset($_SESSION['login_id']))
{
header("location:login.php");
}
不确定重定向太多意味着什么,但在使用标题(…)
-编辑:login.php&home.php页面后,应该退出()。。。不应该是这样的!我在登录页面上使用了相同的文件session.php
,它开始一次又一次地循环和重定向。您应该分离这两个脚本。您的代码容易受到SQL注入的攻击。你应该使用预先准备好的语句。这不是我现在的重点:)我已经通过为登录和主页制作单独的会话文件实现了,但这不是我的目标。。。我的问题是,如何为这两个页面使用相同的session.php
文件?正如我前面所说,在session.php中的用户控件中创建一个类似于user loggin true的会话,然后在home.php中创建一个if语句if(!isset(session[“userlogedin”]){header(session.php)}这是一个会话文件,您必须在每个文件中使用这个if语句,除了登录、注册和注销之外,您必须在这些文件中销毁会话
<?php
include('session.php');
?>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to Home page</h1>
</body>
</html>
if(!isset($_SESSION['login_id']))
{
header("location:login.php");
}