Сессия php заявление - PullRequest
       3

Сессия php заявление

2 голосов
/ 24 октября 2011

как я могу указать это в операторе, который просто поместит все $ _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 ]

11 голосов
/ 24 октября 2011
$_SESSION['POST'] = $_POST;
echo $_SESSION['POST']['s_type'];
5 голосов
/ 24 октября 2011

Если вам не нравится вложенность Марка Б,

foreach ($_POST as $k => $v){
    $_SESSION[$k] = $v;
}
1 голос
/ 24 октября 2011
$_SESSION = $_POST;

Создает копию массива $ _POST и присваивает ее переменной $ _SESSION, которая выполняет то, что вы просите. Но это также уничтожит все элементы массива в массиве $ _SESSION. Поэтому я рекомендую цикл, который будет поддерживать члены массива уже в $ _SESSION.

foreach ($_POST as $key=> $val){
    $_SESSION[$key] = $val;
}
1 голос
/ 24 октября 2011

Если у вас есть причина для выбора, какие значения $_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];
}
0 голосов
/ 10 сентября 2016

Попробуйте это;)

Вместо прямого назначения $_POST в $_SESSION создайте вложенную оценку следующим образом:

$_SESSION['putScopeNameHere'] = $_POST;

В этом случае ваши session данныетакже доступны для вас после post назначения данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...