如何仅在用户登录php时显示特定页面

如何仅在用户登录php时显示特定页面,php,mysql,Php,Mysql,您好,我在核心PHP中创建了一个管理面板,没有登录到管理面板,我可以看到管理面板内的菜单。有人能帮我解决这个问题吗。 这是我的密码 Blogs.php <?php $connection = mysql_connect("localhost", "root", "") or die(mysql_error()); $db = mysql_select_db("accountant", $connection); $name=$_FILES["image"]["tmp_name"]; $ty

您好,我在核心PHP中创建了一个管理面板,没有登录到管理面板,我可以看到管理面板内的菜单。有人能帮我解决这个问题吗。 这是我的密码

Blogs.php

<?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$name=$_FILES["image"]["tmp_name"];
$type=$_FILES["myfile"]["type"];
$size=$_FILES["myfile"]["size"];
$temp=$_FILES["myfile"]["tmp_name"];
$error=$_FILES["myfile"]["error"];
if($error>0)
    die("error while uploading");
else
{
    if($type == "image/png" || $type == "image/jpeg" ||$type == "image/jpg" ||  $type == "image/svg" || $size >2000000)
    {       
        move_uploaded_file($temp,"upload/".$name);
        echo "upload complete";
    }
    else
    {
        die("Format not allowed or file size too big!");
    }
}

形象
login.php

<?php
session_start()
?>
<!DOCTYPE html>
<html>
<head>
<title>Login Form</title>
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body>
<form method="post" action="login_model.php">
    <div class="table">
        <div class="message">
        <?php
        if(isset($_SESSION["message"]))
        {
            echo"Registration Successful";
            unset($_SESSION["message"]);
    }    
   if(isset($_SESSION["messagefail"]))
   {
    echo"You entered wrong cradentials...Try Again here";
    unset($_SESSION["messagefail"]);
   }
if (isset($_SESSION['logout'])) {
echo "Logout Successful";
session_destroy();
} 
?>
</div>
        <h1 align="center"> ADMIN Login Page </h1>
    <table align="center" border="1">
        <tr>   
            <td> User Name : <input type="text" name="admin_email" id="admin_email" ></td>
        </tr>
        <tr>
            <td> Password    :  <input name="admin_password" type="password" id="admin_password" ></td>
        </tr>
        <tr>
            <td><input type="submit" name="submit1" value="Submit"/>
        </tr>            
    </table>        
</div>
</form>

登录表单
管理员登录页面
用户名:
密码:

login_model.php

<?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
$db = mysql_select_db("accountant", $connection);
$name = $_POST["admin_email"];
$password = $_POST["admin_password"];
if(isset($_POST['submit1'])){
$query = "SELECT * FROM admin_login where admin_email= '$name' AND admin_password= '$password' ";
$result = mysql_query($query);
$rows=mysql_num_rows($result);
if($rows>0){
session_start();
header("Location:blog.php");
}   
else
{
echo "Invalid Username or Password";    
}   
}
?>
您可以这样做:
在代码开头的每一页上,您都必须检查会话。
会话将仅通过成功登录进行设置。
如果找不到会话,请将其重定向到登录页面。
blog.php上的示例代码

<?php 
 If(!isset($_SESSION['YOUR_SESSION_Variable']))
{
  header('Location: login.php');
 }?>

假设您的登录文件在同一位置为“login.php”。


 <?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());

$db = mysql_select_db("accountant", $connection);

$name = $_POST["admin_email"];

$password = $_POST["admin_password"];

if(isset($_POST['submit1'])){

$query = "SELECT * FROM admin_login where admin_email= '$name' AND admin_password= '$password' ";

$result = mysql_query($query);

$rows=mysql_num_rows($result);

//Change this condition also like :
if($rows==1){

session_start();

// Set Your Session Variable Here like following:

$_SESSION['userId'] = "Your User Id From The Query";

header("Location:blog.php");

}   
else

{

echo "Invalid Username or Password";    

}   
}
?>

类似于您的另一个问题-来自给定/公认的答案;那么这里有什么问题?我看不到任何与您想要做的事情相关的内容。如果没有loggin,如果我将直接url设置为localhost/accounting/admin/blog.php,那么它将打开该特定页面,但它应该仅在用户登录时显示,否则它将重定向到登录页面。您在这里没有相关代码。问下面给你答案的人。在你发布的问题中,我无法在已解决的数据库中插入隐藏字段id。你的解释与此处的代码完全无关。谢谢你的url工作,但如果我尝试登录,我也无法使用正确的凭据登录。@user5751258你应该启动会话
session_start()它只会检查用户的会话是否处于活动状态,如果未处于活动状态,则会将其重定向到登录页面。但我无法使用正确的凭据登录also@SanzeebAryal我已经开始上课了
 <?php
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());

$db = mysql_select_db("accountant", $connection);

$name = $_POST["admin_email"];

$password = $_POST["admin_password"];

if(isset($_POST['submit1'])){

$query = "SELECT * FROM admin_login where admin_email= '$name' AND admin_password= '$password' ";

$result = mysql_query($query);

$rows=mysql_num_rows($result);

//Change this condition also like :
if($rows==1){

session_start();

// Set Your Session Variable Here like following:

$_SESSION['userId'] = "Your User Id From The Query";

header("Location:blog.php");

}   
else

{

echo "Invalid Username or Password";    

}   
}
?>