会话php声明

时间:2011-10-24 17:12:24

标签: php session

如何将此命令转换为一个语句,只需将所有$ _POST []放入会话中,而不必写出每一行。

<?php session_start(); 
$_SESSION['s_type'] = $_POST['s_type'];
$_SESSION['s_uname'] = $_POST['s_uname'];
$_SESSION['s_email'] = $_POST['s_email'];
$_SESSION['s_promo'] = $_POST['s_promo'];
$_SESSION['s_ctry'] = $_POST['s_ctry'];
?> 

5 个答案:

答案 0 :(得分:11)

$_SESSION['POST'] = $_POST;
echo $_SESSION['POST']['s_type'];

答案 1 :(得分:5)

如果您不喜欢Marc B的嵌套,

foreach ($_POST as $k => $v){
    $_SESSION[$k] = $v;
}

答案 2 :(得分:1)

如果您有理由选择将哪些$_POST值转到会话存储区而哪些值没有(例如,如果您每次都要重新输入一个CAPTCHA,或者是一个信用卡卡号或敏感的东西),创建一个$_POST键数组来存储和迭代它:

// We won't store s_email in $_SESSION. All others stored
$store_to_session = array('s_stype','s_uname','s_promo','s_city');
foreach ($store_to_session as $s) {
  $_SESSION[$s] = $_POST[$s];
}

答案 3 :(得分:1)

$_SESSION = $_POST;

将创建$ _POST数组的副本并将其分配给$ _SESSION,从而完成您的要求。但这也会消灭$ _SESSION数组中的所有数组成员。所以我建议一个循环,它将维护数组成员已经在$ _SESSION。

foreach ($_POST as $key=> $val){
    $_SESSION[$key] = $val;
}

答案 4 :(得分:0)

试试这个;)

而不是直接将$_POST分配到$_SESSION中,而不是像这样创建嵌套分数:

$_SESSION['putScopeNameHere'] = $_POST;

在这种情况下,session数据分配后,您也可以使用post数据。