PHP变量生命周期

时间:2014-03-02 00:51:58

标签: php variables session

好的我正在尝试传递变量,但我遇到了问题。 所有这些都发生在一个PHP文件中,简化代码如下:

    <?php session_start(); ?>
    <html>
                ...some HTML code...
    <?php
          $var = 100      // variable that i need
          $_SESSION['passover'] = $var; 

     ?>                

     ...HTML code with 'submit' form 
      </html>

     <?php
      if(isset($_POST['submit'])){..do something...}
      $var_again = $_SESSION['passover']   //problem!
      print_r($_SESSION);  

      session_destroy();  
      ?>

在我按提交之前,我得到的输出如下:Array([passover] =&gt; dog.jpg) 按下提交后,我得到:Array()

我做错了什么? 在这种情况下,变量是一个文件名,但我尝试使用简单的数字,它也不起作用。

2 个答案:

答案 0 :(得分:0)

您需要从代码中删除session_destroy,遵循以下逻辑:

  1. 您开始会话(确定)
  2. 你把变量放入会话(ok)
  3. 你从会话打印变量(ok)
  4. 您从会话中删除了所有信息(不行)
  5. 在下一个请求中(提交后),由于p4
  6. ,您有空会话

答案 1 :(得分:0)

Session_destroy()绝对是罪魁祸首 另外,我想你不小心从你的示例代码中留下了几个分号,但是分号缺少两次 ..

$var = 100  **;**    // variable that i need
.
.
$var_again = $_SESSION['passover'] **;**  //problem!

另外,你实际上在那里使用了两个变量名:$ var和$ var_again。如果这两者都是一样的话,这也可能是一个问题。