数组作为会话变量

anu*_*ain 63 php arrays session

是否可以在PHP中将数组作为会话变量?

情况是我有一个表(第1页),其中一些单元格具有指向特定页面的链接.下一页将有一个名称列表(第2页,我想保留在会话数组中)及其各自的复选框.在提交此表单时,它将指向一个事务页面(第3页,其中已发布的复选框的值保存在数据库中以显示相应的名称).现在,如果我返回第一页并单击另一个单元格,会话数组是否包含新的名称列表或旧名称列表?

Sar*_*raz 74

是的,您可以将数组放入会话中,例如:

$_SESSION['name_here'] = $your_array;
Run Code Online (Sandbox Code Playgroud)

现在你可以使用$_SESSION['name_here']你想要的任何页面,但确保session_start()在使用任何会话函数之前放置行,所以你的代码应该是这样的:

 session_start();
 $_SESSION['name_here'] = $your_array;
Run Code Online (Sandbox Code Playgroud)

可能的例子:

 session_start();
 $_SESSION['name_here'] = $_POST;
Run Code Online (Sandbox Code Playgroud)

现在,您可以在任何页面上获取字段值,如下所示:

 echo $_SESSION['name_here']['field_name'];
Run Code Online (Sandbox Code Playgroud)

至于问题的第二部分,除非您分配不同的数组数据,否则会话变量将保留在那里:

 $_SESSION['name_here'] = $your_array;
Run Code Online (Sandbox Code Playgroud)

会话生存时间设置为php.ini文件.

更多信息在这里


Kal*_*see 67

是的,PHP支持数组作为会话变量.有关示例,请参阅此页面.

至于你的第二个问题:一旦你设置了会话变量,它将保持不变,直到你改变它或unset它.因此,如果第3页不更改会话变量,它将保持不变,直到第2页再次更改它.

  • 如果返回第一页并单击进入第二页(将数据放入会话中),则会话数据将包含一组新数据。 (2认同)

小智 5

<?php // PHP part
    session_start();          // Start the session
    $_SESSION['student']=array(); // Makes the session an array
    $student_name=$_POST['student_name']; //student_name form field name
    $student_city=$_POST['city_id'];   //city_id form field name
    array_push($_SESSION['student'],$student_name,$student_city);   
    //print_r($_SESSION['student']);
?>

<table class="table">     <!-- HTML Part (optional) -->
    <tr>
      <th>Name</th>
      <th>City</th>
    </tr>
                                                        
    <tr>
     <?php for($i = 0 ; $i < count($_SESSION['student']) ; $i++) {
     echo '<td>'.$_SESSION['student'][$i].'</td>';
     }  ?>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)