0

这是考验:

index.php上

<?php
    session_start();
    $url = $_SERVER['HTTP_REFERER'];
    $_SESSION['abc'] ='$url';
?>

我在页面上回显$_SERVER['HTTP_REFERER'];,我得到了我想要的

稍后在现场我有一个预订页面,我使用会话

<?php 
    session_start();

    if (isset($_SESSION['abc'])) {
        echo $_SESSION['abc'];
    } 
    else {
        echo 'error';
    }               
?>

它回显了错误,我很困惑为什么数据没有通过..

任何想法都来自 php 大师,谢谢。只想让它打印HTTP_REFERER

4

2 回答 2

0

查看评论,您似乎同时使用 HTTPHTTPS。

您需要将会话 ID 从 HTTP 传递到 HTTPS。

索引.php

<?php
    session_start();

    $_SESSION['abc'] = $_SERVER['HTTP_REFERER'];

    $session_id = session_id();
?>

然后,您需要$session_id通过 GET 传递到您的预订页面:

预订.php

<?php
    session_start();

    session_id($_GET['session_id']);

    if (isset($_SESSION['abc']))
        echo $_SESSION['abc'];
?>
于 2012-05-31T00:31:01.887 回答
0

不幸的是,默认情况下,会话不会在 HTTP 和 HTTPS 之间持续存在。我不会重新讨论解决方案,而是指出问题出现在哪里:

于 2012-05-31T00:50:05.263 回答