我想将用户重定向到登录页面,如果他或她没有登录。在我给定的代码中,如果他或她没有登录,它会重定向到登录页面 如果我提供写入用户名和密码,重定向到登录页面。我想要 如果他或她提供写入凭证,则重定向到abc.php
这是我的login.php
<? php include "db.php";
$msg = "";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$username = $_POST["username"];
$password = $_POST["password"];
if ($username == '' || $password == '')
{
$msg = "You must enter all fields";
}
else
{
$sql = "SELECT * FROM users WHERE username = '$username' AND password
= '$password'";
$query = mysql_query($sql);
if ($query == false)
{
echo "Could not successfully run query ($sql) from DB: " .
mysql_error();
exit;
}
$check_user = mysql_num_rows($query);
if($check_user>0)
{
// here you need $run_user data
// use fetch_ methods, for example `fetch_assoc()`
$user_data = mysql_fetch_assoc($query);
// print_r($user_data) to check keys
if ($user_data["user_role"] == 'admin')
{
header("abc.php");
exit;
}
else
{
if ($user_data["user_role"] == 'user') {
header("xyz.php");
exit;//redirect somehwere else
}
else
{
if($user_data["username"] != '$username' && $user_data["password"] !=
'$password')
{
echo "invalid username or password";
exit;
}`
here is my abc.php
<?php
session_start();
include "db.php";
if ((empty($_SESSION['user'])) ){
header('Location: login.php');
exit;
}
?>
答案 0 :(得分:0)
成功登录后,您必须在$_SESSION['user']
中保存用户详细信息。
在$user_data = mysql_fetch_assoc($query);
---此行之后添加以下代码。
$_SESSION['user']=$user_data;
和session_start();
应位于 login.php 文件中,而不是 abc.php 。
然后在 abc.php 文件中,$_SESSION['user']
检查将在成功登录时返回true。在会话中分配值之前,应放置session_start()
。