PHP登录后未显示用户名

问题描述 投票:1回答:2

我正在从头开始学习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 authentication session username
2个回答
1
投票

通过添加一行以设置会话用户名的值来解决:

<?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");
    }
}?>

0
投票

使用

session_destroy();

注销功能。

© www.soinside.com 2019 - 2024. All rights reserved.