PHP会话变量 - 消失并重新出现

Emi*_*ily 7 php

我有一个模板文件,其中包含我的页眉,页脚和常用信息.它包括当前页面的适当内容(两步视图模式).

我正在尝试使用PHP Session变量建立登录系统.我可以设置变量,有时它们可​​以工作,但有时它们会消失.点击链接有时会让他们回来.

我的网站

登录

用户名:测试密码:test

还有var_dumpssession_id,并$_SESSION在顶部.

点击主页.如果会话变量消失,请单击home(可能需要多达10次)以查看会话信息.单击其他导航,有时会话信息会粘在一起,有时则不会.

这是我的模板文件顶部的会话代码.

<?php
session_start();

require './classes/DBInterface.php';
$db = new DBInterface();

if($_REQUEST['submit']  ==  'Login') {
    $username=$_POST['username'];
    $password=$_POST['password'];

    echo '-- login -- '.$username;
    $rs = $db->verify($username,$password,"admin",0);
    $admin = $rs->current();
    if ($rs->valid()) {
        $_SESSION['username'] = $username;
    }
}

echo ' -- session id -- ';
var_dump(session_id());
echo ' -- session var -- ';
var_dump($_SESSION);
Run Code Online (Sandbox Code Playgroud)

我使用的是PHP5.

Pas*_*TIN 4

如果您使用startlogic(似乎是?)进行托管,您是否尝试按照他们在常见问题解答中所说的操作:http://www.startlogic.com/knowledgebase/read_article.bml ?kbid=600

他们表明这一点:

要运行 PHP 会话,请在使用会话的任何 PHP 脚本的顶部包含以下代码: session_save_path("your home directory path"/cgi-bin/tmp); 会话开始();

也许这会有所帮助?特别是如果他们使用某种负载平衡器来平衡 /tmp,而不是您的主目录?