【问题标题】:php session variable doesnt carry over to redirectphp会话变量不会延续到重定向
【发布时间】:2013-05-09 01:35:21
【问题描述】:

问题:重定向后会话变量不保留。

facebook.php(创建并存储会话变量)

按钮指向available.php --> search.php

我正在使用标头重定向。所以 $_SESSION['seshfbId'] 会在 available.php 上回显,但不会在 search.php 上回显

代码

facebook.php

<?php
session_start(); // start up your PHP session! 

header( 'Location: http://www.redacted.co/chat.php' ) ;
function createSeshVariables($name, $email, $college, $photo, $id)
{
// set the value of the session variable 'name'
$_SESSION['seshName'] = $name;

// set the value of the session variable 'email'
$_SESSION['seshEmail'] = $email;

// set the value of the session variable 'education'
$_SESSION['seshEducation'] = $college;

// set the value of the session variable 'photolink'
$_SESSION['seshPhotolink'] = $photo;
// set the value of the session variable 'photolink'
$_SESSION['seshfbId'] = $id;
}

createSeshVariables($fbName,$fbEmail,$fbCollege,$photolink,$fbId); 
?>

available.php

<?php
session_start(); // start up your PHP session! 
header( 'Location: http://www.redacted.co/assets/php/searching.php' );
echo $_SESSION['seshfbId'];
//if i comment out header redirect the echo works here.
changeStatusToAvailable($_SESSION['seshfbId']); 
?>

搜索.php

<?php
session_start(); // start up your PHP session!
echo $_SESSION['seshfbId'];
?>

编辑:在 vardump 之后,我在搜索页面上找到了 seshId 和 seshToken。但用于创建的代码位于 tac.php 上。我感觉 tac.php 代码之前与会话变量发生冲突

tac.php

$apiObj = new OpenTokSDK(API_Config::API_KEY, API_Config::API_SECRET);
$session = $apiObj->createSession( $_SERVER["REMOTE_ADDR"],                array(SessionPropertyConstants::P2P_PREFERENCE=> "enabled") );
$seshId = $session->getSessionId();
$_SESSION['seshId'] = $seshId;
$token = $apiObj->generate_token($seshId, RoleConstants::PUBLISHER, null);
$_SESSION['seshToken'] = $token;

【问题讨论】:

  • 如果您var_dump($_SESSION),它是否包含您之前设置的任何变量? session_id() 怎么样,所有页面的会话 ID 相同吗?
  • 您可以使用 Firebug 或 Chrome 的开发者工具来查看正在发生的请求。检查该重定向链中的最后一页是否获得相同的PHPSESSID cookie。
  • 看到这个页面我想你想在子域stackoverflow.com/questions/795414/…stackoverflow.com/questions/644920/…之间传递会话
  • 进行了 vardump,所有会话变量都在 facebook.php 中被正确转储到了 search.php 上的 available.php 上,这很有趣,因为有会话变量,但在另一个页面上的代码中设置了不同的变量.编辑问题以反映此新代码。
  • 我知道我可能错了,但为了指出显而易见的事情,您是否尝试将标题位置移动到设置变量的底部?

标签: php session redirect header session-variables


【解决方案1】:

已解决。因为我怀疑 opentok API 与我的 sesh 变量发生冲突,因为它调用了会话变量。我将所有会话变量移至一个 php 并解决了问题。

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 2017-09-11
    • 2012-04-24
    • 2012-11-17
    • 2018-11-19
    • 2014-08-14
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多