使用html php成功登录后,如何在以下所有页面中显示用户名?

时间:2018-10-20 05:21:37

标签: php html

<?php
    session_start();
    $host="localhost";
    $username="root";
    $admin=$_POST['Name'];
    $pass=$_POST['Password'];
    $dummy=0;
    $con=mysqli_connect($host,$username,'');
    mysqli_select_db($con,"package");
    $query="select * from admin where admin_id like '$admin' ";
    $sql=mysqli_query($con,$query);
    while($row=mysqli_fetch_array($sql,MYSQLI_ASSOC))
    {   
        $dummy=1;
        if($row['password']=='$pass')
        {
            header("Location:booking.html");
        }
        else
        {
            $_SESSION['user'] = $admin;
            header("Location:admin_login.php");
        }
    }
    if($dummy==0)
    {
        header("Location:contact.html");
    } 
    mysqli_close($con);
?>

这是我在php中的管理员登录页面,我该如何存储用户名并在html中使用它?我曾经使用过session_start(),但不知道如何在html页面中使用它

3 个答案:

答案 0 :(得分:1)

首先,在显示的php文件中有一些错误,请参见下文进行更正:

<?php

session_start();
$host="localhost";
$username="root";
$admin=$_POST['Name'];
$pass=$_POST['Password'];
$dummy=0;
$con=mysqli_connect($host,$username,'');
mysqli_select_db($con,"package");
$query="select * from admin where admin_id like '$admin' ";
$sql=mysqli_query($con,$query);
while($row=mysqli_fetch_array($sql,MYSQLI_ASSOC))
{   
    $dummy=1;
    if($row['password']=='$pass')
    {
        $_SESSION['user_id'] = $row['admin_id'];
        $_SESSION['user'] = $admin;
        header("Location:booking.html");
        exit();
    }
    else
    {
        header("Location:admin_login.php");
        exit();
    }
}
if($dummy==0)
{
    header("Location:contact.html");
    exit();
} 
mysqli_close($con);

?>

我已修复您的代码中的以下2个错误:

  1. 您必须在致电exit()之后写header('location:...')。否则脚本将继续执行,不会终止自身。
  2. 如果“用户名”和“密码”与数据库记录匹配,则必须设置$_SESSION['user']变量,但是如果密码不匹配,则要设置会话变量,这将不起作用。

现在,您可以在以下所有其他页面中显示用户名,在其他所有页面中使用相同的以下代码:

<?php
session_start();
if ( ! isset($_SESSION["user_id"]) || empty($_SESSION["user_id"]) )
{
   header("Location:admin_login.php");
   exit();
}
// if user is authentic then display username
echo " Hello, " . $_SESSION["user"];

答案 1 :(得分:0)

使用session_start()时,会向用户发送一个cookie,并且您调用session_start()的每个页面都使您能够访问超级全局$ _SESSION。

您的用户通过身份验证后,可以进行以下设置:

$_SESSION["Username"] = $username;
$_SESSION["UserID"] = $userid;

在其他页面上,开始会话后,您可以使用它来检查用户是否已通过身份验证:

if ( ! empty ( $_SESSION["UserID"]))
{
  // User is authenticated
  echo "Welcome back, " . $_SESSION["Username"] . "!";
}

会话开始时,添加到$ _SESSION的所有变量将对以后的页面可用。您无需执行任何操作即可保存此数据,脚本执行完成后PHP会自动执行该操作。

答案 2 :(得分:0)

在所有页面中显示登录用户名。

  1. 将所有页面扩展名.html更改为.php
  2. 您已经在登录页面中设置了会话,即$ _SESSION ['user'] = $ admin;
  3. 使用以下代码在所有页面中显示会话值。

    session_start();
    echo $_SESSION['user'];
    

定义session_start();页面顶部,并在您想要的页面上回显会话值。