PHP会话在网站上不起作用

时间:2015-08-11 03:33:08

标签: php session xampp

我做了一个php会话,它在我的localhost服务器上使用XAMPP,但是当我把它放在我的网站上时它没有用。我做了一个更简单的工作,看看它是否有效,但仍然没有。

login_validation.php

<?php 
session_start();

$user = $_POST['user'];

if ($user == (--database match--)) { #<== Just to skip all the mysql database stuff that already works.

    $_SESSION['username'] = $user;

    if (isset($_SESSION['username'])) {
        echo "Logged in, " . $_SESSION['username'] . "<a href='test.php'>Return</a>";
    }
}

?>

此页面适用于我的网站和localhost。在网站上,它打印了给定的用户名,显示会话已保存。所以我创建了一个名为test.php的空白页面,看它是否会打印会话,如果实际设置的话。

test.php

<?php
session_start();

if (isset($_SESSION['username'])) {
    echo $_SESSION['username'];
}
else {
    echo "Not working.";
}
?>

它在我的本地主机上打印出会话的价值,但在我的网站上没有。它给了我“Not Working”,就像我为上面的else语句设定的那样。

我认为这是我的phpinfo.php中的一个问题所以我用localhost phpinfo.php文件分析了会话部分的每个部分,其中一些是相同的。其他人则没有。

会话(网站)值:(第1 - &gt;本地值)(第2 - &gt;主值)

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

Directive   Local Value Master Value
session.auto_start                  Off Off
session.bug_compat_42               Off Off
session.bug_compat_warn             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             0    0
session.gc_divisor                 1000 1000
session.gc_maxlifetime             1440 1440
session.gc_probability              1   1
session.hash_bits_per_character     4   4
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/php_sessions   /var/php_sessions
session.serialize_handler           php php
session.use_cookies                 On  On
session.use_only_cookies            On  On
session.use_trans_sid               1   1

会话(localhost)值:(1st - &gt; Local Value)(2nd-&gt; 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                    no value    no value
session.entropy_length                  0   0
session.gc_divisor                      1000    1000
session.gc_maxlifetime                  1440    1440
session.gc_probability                  1       1
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                       C:\xampp\tmp    C:\xampp\tmp
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                Off     Off
session.use_strict_mode                 Off     Off
session.use_trans_sid                   0       0

我不确定phpinfo()的信息是否至关重要,但我希望它可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试将您的php.ini session.save_path值设置为/tmp,就像这样

session.save_path = "/tmp"

如果您无权访问服务器上的覆盖php.ini文件,您可以尝试使用

设置路径
session_save_path("/tmp");

在致电session_start();

之前使用上述句子
相关问题