PHP session slow online在本地服务器上运行得非常好

PHP session slow online在本地服务器上运行得非常好,php,session,Php,Session,嗨,在搜索了整个网络并获得了很多白发之后,我觉得我必须在这里问一下。 我的网站上的PHP会话登录有问题。当登录时,它应该重定向到用户配置文件,它确实(有时),有时我必须在它发生之前刷新。当我浏览网站的页面时,也会出现同样的问题,它似乎突然被注销,直到我刷新(可能几次刷新,直到它似乎再次登录)。 当注销时,它会这样做,但当浏览网站时,它会突然再次登录。 所有这些都像本地MAMP的魅力一样,但都是在我的服务器上实现的 有没有人对为什么会这样做有过疯狂的猜测 我的网站是用一个带有switch语句的索引

嗨,在搜索了整个网络并获得了很多白发之后,我觉得我必须在这里问一下。 我的网站上的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;

所有URL都是index.php/action=logout

看起来主机服务器的写入性能有问题(可能是销售过度,服务器负载过高)。 请在其他地方尝试您的脚本。


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

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

 print "Done"; 
 ?> 

使用session_start()和注销时使用session_detroy()

可能不是问题的解决方案,但将
exit()
放在
标题('location…')之后
停止脚本执行。与其为每个用户使用多个会话,不如为单个会话提供一个包含所有变量的对象。感谢您将它们放在一个会话中:)-exit()似乎无法解决此问题。可能更好,但它的性能似乎有点随机。会话_start();位于索引页面的顶部,然后位于所有页面的顶部,这是正确的,对吗?这是有意义的,因为它在本地的快速响应。也许可以把它放在另一个上面,我会试试的!:)愚蠢的主人!它把它固定起来移动它。