2015-06-03 23 views
-2

我需要一些会话变量的帮助。我以前用过它们,但已经有一段时间了,显然我错过了一些东西。我编码了下面的例子,演示了我认为会话变量应该如何工作,但我错过了一些东西。值从page1.php提交,值传递给page2.php。会话变量已填充,在page2.php上正确显示,但是,一旦我回到page1.php,变量就是空的。我的螺丝在哪里? 谢谢!PHP会话变量 - 我做错了什么?

/* page1.php code ============================== */ 
    <?php session_start(); ?> 

    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Page 1</title> 
    </head> 
    <body> 

     <form method='post' id='pf' action='page2.php'> 
      <input type='text' id='box_inp' size='1' name='pBox'/> 
      <input type="submit" value="Submit"> 
     </form><br/><br/> 

     <?php print_r($_SESSION); ?> 
    </body> 
    </html> 
/* page1.php end ============================== */ 


/* page2.php code ============================== */ 
    <?php 
     session_start(); 
     $_SESSION["x_test"] = $_POST["pBox"]; 
    ?> 

    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Page 2</title> 
    </head> 
    <body> 

     <?php print_r($_SESSION); ?> 

     <br/><br/> 

     <a href="page1.php">Back</a> 
    </body> 
    </html> 
/* page2.php end ============================== */ 
+0

你真的在你的代码的注释行? –

+0

在您打开PHP标记 (例如'<?php error_reporting(E_ALL);)后立即将错误报告添加到文件顶部。 ini_set('display_errors',1);'然后你的代码的其余部分,看看它是否产生任何东西。 –

+0

并格式化您的问题,以便它在单独的部分。你的代码很难阅读和遵循。 –

回答

0

确定您的代码正常工作。看起来您的问题来自您的确认。检查你的php.ini中的会话配置。 这是手册。 http://php.net/manual/en/session.configuration.php

,这里是一个完整的标准配置,其中会话配置应该工作:

session.save_handler = files 

session.use_only_cookies = 1 

session.name = PHPSESSID 

session.auto_start = 0 

session.cookie_lifetime = 0 

session.cookie_path =/

session.cookie_domain = 

session.cookie_httponly = 

session.serialize_handler = php 

session.gc_probability = 1 

session.bug_compat_42 = On 

session.bug_compat_warn = On 

session.referer_check = 

session.cache_limiter = nocache 

session.cache_expire = 180