【问题标题】:PHP SESSION ARRAY overwritten by post variablePHP SESSION ARRAY 被 post 变量覆盖
【发布时间】:2013-10-28 02:58:05
【问题描述】:

我正在尝试将帖子中的数据保存到我的数组会话变量中。但是它没有添加新元素,而是覆盖了旧元素......我做错了什么?

//PHP CODE !!!
$_SESSION['file[]'] = $_FILES['file'];
$_SESSION['file_names[]'] = $_POST['file_name'];
print_r($_SESSION['file[]']); //it will only display last selected file. :(

//HTML !!!
<form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
   <input type="input" name="file_name" value="">
   <input type="file" name="file" id="file" value="">
   <input type="submit" name="SEND" value="ADD"/>
</form>

//LITLE CHECK CODE HERE !!!
//THIS CODE WILL DISPLAY " OUT OF IF STATEMENT !!!" ;/

<?php
    if(isset($_SESSION['file_names[]']) && is_array($_SESSION['file_names[]'])){
        foreach($_SESSION['file_names[]'] as $index => $name){
                     /...
        }
    }else{
        echo " OUT OF IF STATEMENT !!!"; //executed!
    }
?>

任何想法?

【问题讨论】:

  • 您不能像那样将数组存储在会话变量中,您必须对每个数组元素使用单独的会话变量... $_SESSION['file_names[]'] 意味着只有一个名为 'file_name[ ]'
  • 旁注:是你用&lt;form&gt;关闭表单标签的错字吗?
  • 是的,这是错字:> 在我的源代码中没问题,我现在将更正此问题。谢谢

标签: php arrays session


【解决方案1】:

我想你想做$_SESSION 多维数组,所以改一下:

$_SESSION['file[]'] = $_FILES['file'];
$_SESSION['file_names[]'] = $_POST['file_name'];

$_SESSION['file'][] = $_FILES['file']; //assign $_FILES data to session array
$_SESSION['file_names'][] = $_POST['file_name']; //assign $_POST data to session array
print_r($_SESSION['file']);

【讨论】:

  • 让我试试这个 brb !我现在回来了 :) 爱你 Sudhir。奇迹般有效 ! :>
猜你喜欢
  • 2012-02-24
  • 2013-09-26
  • 1970-01-01
  • 2023-04-06
  • 2013-11-30
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多