2010-03-12 71 views
2

这是有效的:

$_SESSION['pictures']['rateAlbum']['_POST'] = $_POST; 

我想所有的POST数据保存在会话中的一个镜头。

编辑: 哦,什么有关的其他方式:

$_POST = $_SESSION['pictures']['rateAlbum']['_POST']; 
+0

你可以做到这一点,但你可能会乞求一些调试恶梦的道路。我会猜测你在显示错误之后试图做一些事情来保存表单状态? – Rob 2010-03-12 01:52:36

回答

4

是你可以... 如果您在$_SESSION会话保存$_POST你必须在同一阵列作为后...

你也可以做其他的方式和保存的东西$_POST ..

你也可以做到这一点(或者,使用$_SESSION):

$_POST = array('field1' => 'val1', 
     'field1' => 'val1', 
     'field1' => 'val1', 
     'fieldn' => 'valn');   
    $_SESSION=$_POST; 

$test="hi"; 
    $_SESSION['field1']="test"; 
    echo $$_SESSION['field1']; //this print hi  

PHP确实是灵活的,让你几乎寄托都,显然要注意安全问题...

0

你可以直接使用下面写

$_SESSION['input_array']=$_POST[]; 

,如果您的$_POST['username']='Hello';$_SESSION['input_array']['username']将显示'你好' 如果​​然后 $_SESSION['input_array']['birthday']['year']将显示2002年

+0

假设我们没有使用$ _POST或$ _SESSION来访问数据库查询(SQL注入)或输出数据(XSS)是否有任何他们可以成为安全问题的$ _POST?这是一个真正的问题,因为我没有看到任何关于如何可能通过盲目地将$ _POST变量设置为$ _SESSION ['somevar'] ='somevalue' - >来泄露PHP内核的方式,除非它们可以触发EXEC或某种东西。 – niggles 2010-03-12 11:16:11

+0

使用'mysql_real_escape_string($ _ POST)'RECURSIVELY将其分配给$ _session – diEcho 2010-03-12 11:43:56