使用会话传递http_referer php

使用会话传递http_referer php,php,session,http-referer,Php,Session,Http Referer,以下是严峻的考验: 在index.php上 <?php session_start(); $url = $_SERVER['HTTP_REFERER']; $_SESSION['abc'] ='$url'; ?> <?php session_start(); $_SESSION['abc'] = $_SERVER['HTTP_REFERER']; $session_id = session_id(); ?> <

以下是严峻的考验:

index.php上

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

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

    $session_id = session_id();
?>
<?php
    session_start();

    session_id($_GET['session_id']);

    if (isset($_SESSION['abc']))
        echo $_SESSION['abc'];
?>
这是echo的错误,我不明白为什么数据没有传递


任何想法都来自php大师,谢谢。只想让它打印HTTP\u REFERER

查看评论,您似乎同时使用了HTTP和HTTPS

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

index.php

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

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

    $session_id = session_id();
?>
<?php
    session_start();

    session_id($_GET['session_id']);

    if (isset($_SESSION['abc']))
        echo $_SESSION['abc'];
?>

不幸的是,默认情况下,HTTP和HTTPS之间不会存在会话。我不想重复这些解决方案,而是要指出问题之前出现的地方:


是否在所有页面上都调用了session_start()?因为你在网站上说..“稍后”。尝试在第二页中打印($\u会话)。在
index.html
中,将
$\u会话['abc']='url'
替换为
$\u会话['abc']=$url
@bsdnoobz:为什么要在
$url
周围加引号?不需要引号。是否必须在每个页面上调用会话_start()?或者仅在我想使用$\u SESSION superglobal的页面上,您需要在要访问会话数据的每个页面上调用SESSION\u start()。启动会话后,会话_start()只会恢复先前启动的会话。非常感谢!我现在唯一的问题是,我将引用作为我的预订页面之前的页面,而不是初始的HTTP\U引用,因此它是“mysite.com/pagebeforereservation”,如何将初始的HTTP\U引用传输过来?