会话未携带到https服务器php中的另一个页面

时间:2012-05-03 06:46:49

标签: php session https sessionid

我用会话开发了一个站点。它适用于本地服务器和生产机器。现在,他们使用SSL HTTP将站点移动到新服务器。在这里,我面临一个问题。

会话设置在一个页面中,但不会转移到另一个页面。相同的代码适用于基于http的服务器。

我尝试了以下方法来解决这个问题但尚未解决

1)我将会话ID传递给url并设置在另一个页面中。这里也没有设置SESSION。

2)我在我的php文件中使用这两行,就像在一些论坛中建议的那样

的ini_set( “display_errors设置”,1); 的error_reporting(E_ALL);

3)我也使用这些行来解决某些论坛中建议的问题 ini_set('session.cookie_domain','https://xxx.com');

session_set_cookie_params(ini_get('session.cookie_lifetime'),ini_get('session.cookie_path'),'https://xxx.com');

4)在PHP.ini中,显示会话中的内容

session.auto_start Off Off

session.bug_compat_42关闭

session.bug_compat_warn Off Off

session.cache_expire 180 180

session.cache_limiter nocache nocache

session.cookie_domain没有值没有值

session.cookie_httponly Off Off

session.cookie_lifetime 0 0

session.cookie_path / /

session.cookie_secure Off Off

session.entropy_file没有值没有值

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没有值没有值

session.save_handler文件文件

session.save_path / var / lib / php / session / var / lib / php / session

session.serialize_handler php php

session.use_cookies On On

session.use_only_cookies Off Off

session.use_trans_sid 0 0

以下服务器中显示的错误消息 未定义的索引:第9行的/var/www/vhosts/xxx.com/httpdocs/HomePage.php中的userid

我还有同样的问题。请建议我解决这个问题

提前致谢

2 个答案:

答案 0 :(得分:0)

您已经提供了一些有关您为改变结果而做出的更改的信息,但您没有提供您为确定问题所做的诊断的任何详细信息。

您是否认为浏览器正在返回会话cookie?你检查过一个会话文件吗?会话是否跨越http和https?如果是这样,vhosts是否在不同的uid下运行?

<?php

print_r($_COOKIE);

if ($_COOKIE[sesion_name()]) {
    $path=ini_get('session.save_path') . '/' . $_COOKIE[sesion_name()];
    if (!is_readable(dirname($path)) || !is_dir(dirname($path))) {
      print "bad session dir\n";
    }
    if (!is_readable($path) || !is_file($path)) {
      print "bad session file\n";
    } else if (!is_writeable($path)) {
      print "permissions issue with session file\n";
    }
    print_r(stat($path));
    print "\n\n";
    print @file_get_contents($path);
} else {
    print "no session cookie";
}

答案 1 :(得分:0)

这里他们给Vhost服务器。 Vhost服务器没有存储会话。所以只有我面对这个问题..我一直用来解决这个问题。将会话作为POST变量传递,并在每个页面中分配会话ID。现在它有效..