【问题标题】:php SESSION variables on bluehostbluehost上的php会话变量
【发布时间】:2023-03-31 04:43:01
【问题描述】:

我的 php SESSION 变量有问题 我的身份验证系统在我的 xampp 服务器上运行良好,但自从我移至 bluehost 后我遇到了问题

通常,如果我打开 index.php 之类的页面,它会检查您是否已登录,如果您没有将您发送到登录页面,但这是行不通的 只是为了测试,我尝试回显$_SESSION['username'],结果显示为空白

现在我按照 ALEX 所说的做了,但我得到了这个错误: 无法修改标头信息 - 第 22 行 /home7/blogboua/public_html/blog.php 中的标头已由(输出开始于 /home7/.../public_html/blog.php:4)发送

代码如下:

<?php session_start(); ?>
<html>
<head>
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
/*-----Connect to Database-----*/
 include ('connect_database_2.php');

//check if logged in
function isLoggedIn()
{
    if(isset($_SESSION['valid']) && $_SESSION['valid'])
        return true;
    return false;
}


//if the user has not logged in
if(!isLoggedIn())
{
    header('Location: login_form.html');
    die();
}

/* get username */
$username = $_SESSION['username'];


/*-----Include Navigation------*/
include ('frame.html');

?>

【问题讨论】:

    标签: php session bluehost


    【解决方案1】:

    在第 2-3 行发送 &lt;html&gt;&lt;head&gt; 之后,您正尝试发送 Location 标头。你不能那样做。必须在发送任何输出之前发送标头。

    我真的不知道你的代码在你的本地服务器上是如何工作的。

    【讨论】:

    • 他的代码在本地服务器上工作,因为它配置了输出缓冲。但我认为这是正确的答案。解决方案是将&lt;html&gt;&lt;head&gt; 移动到include ('frame.html'); 之前,或者最好将其放在frame.html 中。
    【解决方案2】:

    设置在您的index.php&lt;?php 内...

    ini_set('display_errors', 'on');
    error_reporting(E_ALL);
    

    然后重新加载index.php(之前的空白页)。

    它会告诉你错误的原因。可能是它无法将会话数据写入/tmp/

    【讨论】:

      【解决方案3】:

      如果您使用的是像 bluehost 这样的共享服务提供商,那么您需要小心您对会话持久性的假设,因为这些托管服务提供商会垃圾收集/清理旧用户 /tmp 文件。 IMO,避免这种情况的最简单方法是声明一个显式会话处理程序并将您的会话上下文存储在您的 MySQL D/B 中。有关如何执行此操作的示例,请参阅PHP session_save_handler 讨论。

      【讨论】:

      • 我将 session.save_path 更改为我自己的文件夹
      • “我将 session.save_path 更改为我自己的文件夹”——并添加了 .htaccess 访问规则以阻止它们通过 URI 访问,我希望 :)
      • 只是想让所有建议将 session.save_path 设置为文件系统自己部分中的文件夹的人,以用于共享托管服务器,这些服务器在 20-30 分钟后自动对会话变量进行 chron 作业,我也这样做了,它解决了我在 bluehost 上神秘的 nuked 会话的问题。这让我发疯了很长一段时间,错误地认为问题与共享服务器上的错误时间有关。
      猜你喜欢
      • 2012-08-03
      • 2013-05-01
      • 2011-06-09
      • 1970-01-01
      • 2012-07-06
      • 2016-07-11
      • 2021-09-02
      • 2012-05-18
      相关资源
      最近更新 更多