我在本地和一位退伍军人一起工作。
我的url是这样的:http://smartspace.dev/index.php/game,我希望它是这样的:http://smartspace.dev/game
会议产出:
array (size=6)
'id' => string '4' (length=1)
'agent' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36' (length=108)
'planet' => int 0
'last' =>
array (size=4)
'sessionID' => string 'a710069jelqmr7ifdvvail1hi4' (length=26)
'userID' => string '4' (length=1)
'userIP' => string '127.0.0.1' (length=9)
'lastonline' => string '1421747723' (length=10)
'path' => string 'index.php' (length=9)
'PHPDEBUGBAR_STACK_DATA' =>
array (size=0)
empty当我进入url:$_SESSION:http://smartspace.dev/index.php/game时,我可以访问its not empty
但是当我进入url:http://smartspace.dev/game会话时,空数组(size=0)为空
我使用下面的.htaccess使我的urls看起来更漂亮..。
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>这里我还粘贴了$_SERVER的输出:
使用index.php url:http://smartspace.dev/index.php/game
array (size=36)
'HTTP_HOST' => string 'smartspace.dev' (length=14)
'HTTP_CONNECTION' => string 'keep-alive' (length=10)
'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' (length=74)
'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36' (length=108)
'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate, sdch' (length=19)
'HTTP_ACCEPT_LANGUAGE' => string 'en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4,tr;q=0.2,fr;q=0.2' (length=53)
'HTTP_COOKIE' => string 'lang=en; PHPSESSID=mib1vvnitulmunionb9v9mdr83; SmartSpace=a710069jelqmr7ifdvvail1hi4' (length=84)
'PATH' => string 'C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\nodejs\;' (length=257)
'SystemRoot' => string 'C:\Windows' (length=10)
'COMSPEC' => string 'C:\Windows\system32\cmd.exe' (length=27)
'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' (length=53)
'WINDIR' => string 'C:\Windows' (length=10)
'SERVER_SIGNATURE' => string '<address>Apache/2.4.9 (Win64) PHP/5.5.12 Server at smartspace.dev Port 80</address>
' (length=84)
'SERVER_SOFTWARE' => string 'Apache/2.4.9 (Win64) PHP/5.5.12' (length=31)
'SERVER_NAME' => string 'smartspace.dev' (length=14)
'SERVER_ADDR' => string '127.0.0.1' (length=9)
'SERVER_PORT' => string '80' (length=2)
'REMOTE_ADDR' => string '127.0.0.1' (length=9)
'DOCUMENT_ROOT' => string 'C:/wamp/www/SmartSpace/' (length=23)
'REQUEST_SCHEME' => string 'http' (length=4)
'CONTEXT_PREFIX' => string '' (length=0)
'CONTEXT_DOCUMENT_ROOT' => string 'C:/wamp/www/SmartSpace/' (length=23)
'SERVER_ADMIN' => string 'admin@smartspace.dev' (length=20)
'SCRIPT_FILENAME' => string 'C:/wamp/www/SmartSpace/index.php' (length=32)
'REMOTE_PORT' => string '51752' (length=5)
'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string '' (length=0)
'REQUEST_URI' => string '/index.php/game' (length=15)
'SCRIPT_NAME' => string '/index.php' (length=10)
'PATH_INFO' => string '/game' (length=5)
'PATH_TRANSLATED' => string 'redirect:\index.php' (length=19)
'PHP_SELF' => string '/index.php/game' (length=15)
'REQUEST_TIME_FLOAT' => float 1421748882.781
'REQUEST_TIME' => int 1421748882没有index.php url:http://smartspace.dev/game
array (size=36)
'REDIRECT_STATUS' => string '200' (length=3)
'HTTP_HOST' => string 'smartspace.dev' (length=14)
'HTTP_CONNECTION' => string 'keep-alive' (length=10)
'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' (length=74)
'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36' (length=108)
'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate, sdch' (length=19)
'HTTP_ACCEPT_LANGUAGE' => string 'en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4,tr;q=0.2,fr;q=0.2' (length=53)
'HTTP_COOKIE' => string 'SmartSpace=15ngr9spbsqfb09fvst2gk5tc4; lang=en; PHPSESSID=mib1vvnitulmunionb9v9mdr83; SmartSpace=a710069jelqmr7ifdvvail1hi4' (length=123)
'PATH' => string 'C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\nodejs\;' (length=257)
'SystemRoot' => string 'C:\Windows' (length=10)
'COMSPEC' => string 'C:\Windows\system32\cmd.exe' (length=27)
'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' (length=53)
'WINDIR' => string 'C:\Windows' (length=10)
'SERVER_SIGNATURE' => string '<address>Apache/2.4.9 (Win64) PHP/5.5.12 Server at smartspace.dev Port 80</address>
' (length=84)
'SERVER_SOFTWARE' => string 'Apache/2.4.9 (Win64) PHP/5.5.12' (length=31)
'SERVER_NAME' => string 'smartspace.dev' (length=14)
'SERVER_ADDR' => string '127.0.0.1' (length=9)
'SERVER_PORT' => string '80' (length=2)
'REMOTE_ADDR' => string '127.0.0.1' (length=9)
'DOCUMENT_ROOT' => string 'C:/wamp/www/SmartSpace/' (length=23)
'REQUEST_SCHEME' => string 'http' (length=4)
'CONTEXT_PREFIX' => string '' (length=0)
'CONTEXT_DOCUMENT_ROOT' => string 'C:/wamp/www/SmartSpace/' (length=23)
'SERVER_ADMIN' => string 'admin@smartspace.dev' (length=20)
'SCRIPT_FILENAME' => string 'C:/wamp/www/SmartSpace/index.php' (length=32)
'REMOTE_PORT' => string '51788' (length=5)
'REDIRECT_URL' => string '/game' (length=5)
'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string '' (length=0)
'REQUEST_URI' => string '/game' (length=5)
'SCRIPT_NAME' => string '/index.php' (length=10)
'PHP_SELF' => string '/index.php' (length=10)
'REQUEST_TIME_FLOAT' => float 1421748975.194
'REQUEST_TIME' => int 1421748975帮助网站找出差异:https://www.diffchecker.com/x2brteqf
下面是我的会话构造函数:
class Session
{
private static $obj;
private static $isInit = false;
static function init() {
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '1');
ini_set('session.use_trans_sid', 0);
ini_set('session.auto_start', '0');
ini_set('session.serialize_handler', 'php');
ini_set('session.gc_maxlifetime', SESSION_LIFETIME);
ini_set('session.gc_probability', '1');
ini_set('session.gc_divisor', '1000');
ini_set('session.bug_compat_warn', '0');
ini_set('session.bug_compat_42', '0');
ini_set('session.cookie_httponly', true);
session_set_cookie_params(SESSION_LIFETIME, '/', NULL, HTTPS, true);
session_cache_limiter('nocache');
session_name('SmartSpace');
self::$isInit = true;
}
function __construct()
{
if(self::$isInit === false)
{
self::init();
}
}发布于 2015-01-20 11:08:53
您需要在调用session_set_cookie_params()之前使用session_start()函数,并使用正确的$path参数。该值取决于您的应用程序安装(如果它安装在webroot的子目录中呢?),但在您的特定情况下,值是'/'。
https://stackoverflow.com/questions/28042812
复制相似问题