我正在調試一個php會話,當我上次測試它時,幾個月前。代碼沒有任何改變,但會話現在停止工作。會話數據沒有保存
我已閱讀這裏以及其他文章的多個問題,但沒有建議已經解決了這個問題。我相信我的代碼是正確的,但是當我問的支持在BlueHost的,他們說,這一定是一個代碼問題:
我開始一個會話,並設置一些會話變量:
<?php
session_start();
$_SESSION["franchise_name"] = $_POST["name"];
$_SESSION["db_name"] = $_POST["name"];
$_SESSION["franchise_location"] = $_POST["franchise_location"];
$_SESSION["franchise_phone"] = $_POST["franchise_phone"];
$_SESSION["franchise_address"] = $_POST["franchise_address"];
$_SESSION["franchise_email"] = $_POST["franchise_email"];
header("Location: session.php"); /* Redirect browser */
exit;
?>
如果我贊同會話變量立即設置後,一切都很好。好東西。所以我知道本節中的所有內容。
session.php文件看起來是這樣的:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start();
echo 'Testing Output:';
echo session_status();
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';
phpinfo();
?>
所以,當我測試,沒有數據在會議通過。在session.php文件輸出爲:
Testing Output:2
array(0) {
}
如果會話數據啓用我還設置了一個測試,看看:
<?php
// Start Session
session_start();
// Show banner
echo '<b>Session Support Checker</b><hr />';
if (!is_writable(session_save_path())) {
echo 'Session path "'.session_save_path().'" is not writable for PHP!<br />';
} else {
echo 'Session path "'.session_save_path().'" is writable for PHP!<br />';
}
// Check if the page has been reloaded
if(!isset($_GET['reload']) OR $_GET['reload'] != 'true') {
// Set the message
$_SESSION['MESSAGE'] = 'Session support enabled!<br />';
// Give user link to check
echo '<a href="?reload=true">Click HERE</a> to check for PHP Session Support.<br />';
} else {
// Check if the message has been carried on in the reload
if(isset($_SESSION['MESSAGE'])) {
echo $_SESSION['MESSAGE'];
} else {
echo 'Sorry, it appears session support is not enabled, or you PHP version is to old. <a href="?reload=false">Click HERE</a> to go back.<br />';
}
}
?>
這個測試的結果顯示,會話數據沒有工作這裏要麼會話路徑確實是可寫的。 Phpinfo顯示會話已啓用。
還有什麼我可以試着幫我解決這個問題嗎?謝謝。
更新:我嘗試用會話路徑 ini_set('session.save_path','SOME WRITABLE PATH'); 但這並沒有解決問題。
注意:我將這些確切的文件從bluehost複製到hostgator,並且它們在那裏正常工作。所以它似乎是託管相關,但bluehost說這是我的問題要解決。不知道該怎麼問他們去做。 – WilliamAlexander
也許你有其他要求嗎?在特定情況下,我有一個404頁面正在開始會話。在我的網站中沒有一個圖標,我的瀏覽器正在請求它,並且有兩個請求到達服務器,出現不可預知的行爲。 –
所有的代碼都在上面列出 - 所以我不這麼認爲? – WilliamAlexander