我開始主要在php中開發一個平臺,並且會話工作正常,直到我停止了我的Apache服務器並在一週後開始工作。
這是我的問題:
的index.php
<?php
include_once 'backend/login.php'; // DB connect + functions
include_once 'menu.php'; // menu include
check_logout(); // check if user logged out
?>
<?php
include_once 'widgets/widgets.php'; // widgets : login, agenda, events, languages
include_once 'footer.php'; // footer
?>
所以基本上這些都是我的網頁的PHP部分(其餘爲HTML)。後端/登錄包括登錄功能(並且該文件本身包括登錄到數據庫,然後是session_start())。
home.php
<?php
include_once 'backend/login.php'; // connect to DB, login functions
include_once 'backend/load_feed.php'; // feed functions
include_once 'menu.php'; // include main menu
?>
<script>
alert("<?php echo $_SESSION['first_name']; ?>");
</script>
<?php
check_login(); // ensure user is logged in
?>
當上的index.php登錄(形式被隱藏在窗口小部件/ widgets.php)是有效的。它將window.location更改爲 home.php。問題是$ _SESSION不包含登錄過程中存儲的信息。
dbconnect.php
<?php
/*
remote script used to conenct to the database
*/
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "DB";
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if($conn->connect_error){
die("Connection failed : " . $conn->connect_error);
}
session_start();
?>
這是用於連接到數據庫的腳本,它運行正常(我可以驗證用戶憑證的有效性)
補充信息:
- 我已驗證存儲的所有信息在登錄時存儲在$ _SESSION中(信息存在於函數的範圍中)。
- 所有需要$ _SESSION的文件都包含(直接或通過其他包含的) dbconnect.php文件,因此可以訪問$ _SESSION。
- 在調用session_start()之前不會生成輸出。
有人對我的問題的根源有什麼概念嗎?
我試過!它似乎沒有工作.. 該功能沒有任何問題,它使用$ _SESSSION沒有任何問題。實際上,index.php具有完美的訪問$ _SESSION,但不知何故home.php沒有它.. – TanguyH
<?php session_start(); ?> //將這個函數放在你的home.php文件的第一行,打開<?php標籤並給它一個鏡頭。 –
這就是我剛剛嘗試的,但以某種方式添加和刪除一行,會話似乎再次活動(沒有使用session_start())。我不明白剛剛發生了什麼事,不過謝謝! ;) – TanguyH