簡體   English   中英

PHP登錄腳本會話無法生存

[英]PHP Login Script Session not surviving

我遇到了一個我正在嘗試創建的簡單登錄系統的問題。 這是我的設置:

的index.php

<?php if(!isset($_SESSION['username'])){
session_start();
//present login form with action=login.php
} else {
//display actual page
}
?>

的login.php

<?php
if(!empty($_SESSION['username'])){
    echo $_SESSION['username'];
} else {
$username=$_POST['username'];
$password=sha1($_POST['password']);
$link=mysqli_connect("localhost","root","password","database",3306,"/tmp/mysql.sock");
$query="SELECT * FROM login WHERE `name`='".$username."' AND `passwordhash`='".$password."' LIMIT 1";
$result=mysqli_query($link,$query);
if(mysqli_num_rows($result)==1){
            session_start();
    $_SESSION['username']=$username;
    $row=mysqli_fetch_assoc($result);
    $_SESSION['firstname']=$row['firstname'];
    $_SESSION['lastname']=$row['lastname'];
    echo "Username: ". $_SESSION['username']." Name: ".$_SESSION['firstname']." ".$_SESSION['lastname']; //this is just here as POC. If I redirect to index.php (using header()), it shows the login form (claims $_SESSION['username'] is unset).
}
}
?>

登錄后,它會在login.php上顯示我的用戶名以及名字和姓氏(不是數據庫問題)。 但是如果我重定向到index.php,它會立即顯示登錄表單。 有什么問題? 編輯:即使將login_start()添加到login.php后,也會產生相同的結果。

使session_start()成為文件的第一行,它必須包含在使用會話變量的所有文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM