簡體   English   中英

會話不適用於PHP

[英]Sessions don't work in PHP

這是我的測試腳本:

<?php
ob_start(); // with or without this is the same
$session = session_start();
$path = session_save_path();
if (headers_sent()) die ("Headers have already been sent");

if((isset($_GET["set"]))) {
    $_SESSION["var"] = " - testing - ";
}
echo $_SESSION["var"];

echo $session;
echo $path;

print_r($_SESSION);
print_r($_COOKIE);
setcookie("cookie", "value");

$session輸出1 Cookie正在成功設置。 我有一個PHPSESSID cookie集。 會話(來自phpinfo)已啟用。 session_start()就在那里。

當我設置會話變量時(通過設置set GET參數),會話變量也可以直接從$_SESSION數組回顯。 但是當我刪除set GET參數時,print_r-ing $_SESSION輸出一個空數組。

我甚至走得更遠,它們甚至設置chmod 777 on /var/lib/php5 ,我chown它-ed到運行PHP相同的用戶。 我甚至嘗試了一個完全不同的域名,通過在我的本地/etc/hosts定義它並用它設置一個新的虛擬主機。

我發現了一個#1回答說禁用register_globalsphp.ini ,但我甚至不有我的那個設置phpinfo輸出,讓我沒有做...

我已經嘗試使用session_save_path()更改會話目錄,但該DID不起作用。 我可能沒有這個(VPS)托管的權限。

我不知道還能嘗試什么?

這是我的phpinfo()輸出的會話部分,如果它有幫助:

session
Session Support     enabled
Registered save handlers    files user
Registered serializer handlers  php php_binary wddx

Directive   Local Value Master Value
session.auto_start  Off Off
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    /dev/urandom    /dev/urandom
session.entropy_length  32  32
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  0   0
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/lib/php5   /var/lib/php5
session.serialize_handler   php php
session.upload_progress.cleanup On  On
session.upload_progress.enabled On  On
session.upload_progress.freq    1%  1%
session.upload_progress.min_freq    1   1
session.upload_progress.name    PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix  upload_progress_    upload_progress_
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_trans_sid   0   0

解決了。

看來我的整個帳戶實際上沒有權限從public_html文件夾上去,所以/var/lib/php5文件夾實際上是試圖將它作為public_html的“relative”文件夾打開。 在我打開error_reporting后我終於意識到了這一點。

因此,在我的FTP根目錄中創建了一個public_html/var/lib/php5並使其可寫之后,會話就開始工作了。

我不認為這是一個真正的傳統環境,但我再次在這個托管上有很多陌生的東西。

暫無
暫無

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

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