无法访问2个文件之间的会话变量

时间:2013-08-15 15:08:49

标签: php session

即使两个文件都有session_start(),我也无法访问我的会话变量。

File1.php

<?php
  session_start();

  ...

  if($responseCode == 1) {
    $_SESSION['card_id']    = $_POST['card_id'];
    $_SESSION['password']   = $_POST['password'];
    print '<script type="text/javascript">'; 
    print 'window.location = "http://domain.com/File2.php";';
    print '</script>';
  }
?>

File2.php

<?php
  session_start();

  $account = getAccount();

  echo "document.write('$account')";

  function getAccount() {
    $card_id = $_SESSION['card_id'];
    $string = "card = " . $card_id ;
    return $string;
  }
?>

File1.php执行curl请求,如果成功,则重定向到File2.php。但是,我只看到card :而没有输入的card_id。

1 个答案:

答案 0 :(得分:1)

它不起作用,因为www被视为子域,因此会话不会持久存在。您可以通过两种方式解决此问题 -

  1. 我认为是更好的方法,使用htaccess将所有非www网址重定向到www网址,这对SEO更好

  2. 查看PHP手册,了解如何set session across multiple subdomains.

  3. This post explains如果您感到好奇,www如何被视为子域名。