PHP会话慢在线在本地工作得很好

时间:2014-06-10 07:52:28

标签: php session

在搜索整个网络并获得大量白发之后,我觉得我必须在这里问一下。 我在我的网站上登录PHP会话时遇到问题。登录时,它应该重定向到用户配置文件,它确实(有时),有时我必须在它发生之前刷新。当我浏览网站页面时出现同样的问题,它突然似乎被注销,直到我刷新(可能几次刷新,直到它似乎再次登录)。 在注销时,它会这样做,但在浏览网站时,它会突然再次登录。 所有这一切都像MAMP本地的魅力,但在我的服务器上完成所有这些。

有没有人对这可能是什么有一些猜测?

我的网站使用带有switch语句的索引文件构建,该语句指向使用require加载所需模板的函数。所以基本上用户永远不会离开索引。索引以session_start()开头; 当用户登录会话时,声明了值:

    $_SESSION['userName'] = $userName;
      $_SESSION['uId'] = $resultsusername['User']->uId;
      $_SESSION['login'] = 'loggedin';

      header( "Location: index.php?action=viewProfile" );

这是注销:

    function userLogout() {
unset( $_SESSION['userName'] );
unset( $_SESSION['uId'] );
unset( $_SESSION['login'] );
session_destroy();
header( "Location: index.php" );
}

为了显示索引是如何工作的,还有一些开关:

    switch ( $action ) {
case 'userLogin':
userLogin();
break;
case 'userLogout':
userLogout();
break;

所有网址都是index.php / action = logout

2 个答案:

答案 0 :(得分:0)

看起来在主机服务器上的写入性能存在一些问题(可能是它们超载并且服务器处于非常高的负载下)。 在其他地方尝试你的脚本。

答案 1 :(得分:0)

<?php 
 // this starts the session 
 session_start(); 

 // this sets variables in the session 
 $_SESSION['test']='testing'; 

 print "Done"; 
 ?> 

使用session_start()并在注销时使用session_detroy()