我正在从头开始学习php和html,并且我有这个项目,我想在登录后显示用户名。
我已经说过:
<a>Hello, <?php
if(isset($_SESSION['username'])){
echo $_SESSION['username'];
} else {
echo "user";
}
?>
</a>
在要显示用户名的html字段中。它曾经工作过。但是,注销后,用户名不再存在。
这是注销的代码:
<?php
session_start();
session_unset();
header("location:index.php");
exit();
?>
和用于登录的人:
<?php
session_start();
$user = $_POST['login'];
$pass = md5($_POST['pword']);
$entrar = $_POST['entrar'];
$conn = mysqli_connect("localhost","root", "", "pdsys", "3308");
if(isset($entrar)){
$verifica = mysqli_query($conn,"SELECT * FROM users WHERE username = '$user' AND pword = '$pass'") or die ("Usuário ou senha incorretos");
if (mysqli_num_rows($verifica)<=0){
echo "<script language='javascript' type='text/javascript'>
alert('Login e/ou senha incorretos');window.location
.href='index.php';</script>";
die();
} else {
setcookie("login", $user);
header("location: main.php");
}
}?>
我认为这可能与session_destroy()有关,但是我无法弄清楚如何使其再次起作用。它只显示“用户”。
其他所有功能都=与数据库,登录系统等的连接。
通过添加一行以设置会话用户名的值来解决:
<?php
session_start();
$user = $_POST['login'];
$pass = md5($_POST['pword']);
$entrar = $_POST['entrar'];
$conn = mysqli_connect("localhost","root", "", "pdsys", "3308");
if(isset($entrar)){
$verifica = mysqli_query($conn,"SELECT * FROM users WHERE username = '$user' AND pword = '$pass'") or die ("Usuário ou senha incorretos");
if (mysqli_num_rows($verifica)<=0){
echo "<script language='javascript' type='text/javascript'>
alert('Login e/ou senha incorretos');window.location
.href='index.php';</script>";
die();
} else {
setcookie("login", $user);
$_SESSION['username']=$user;
header("location: main.php");
}
}?>
使用
session_destroy();
注销功能。