<?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页面中使用它
答案 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个错误:
exit()
之后写header('location:...')
。否则脚本将继续执行,不会终止自身。$_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)
在所有页面中显示登录用户名。
使用以下代码在所有页面中显示会话值。
session_start();
echo $_SESSION['user'];
定义session_start();页面顶部,并在您想要的页面上回显会话值。