DevWL
DevWL

Reputation: 18840

PHP SESSION ARRAY overwritten by post variable

I am trying to save data from a post to my array session variable. But instead of adding new element it overwrites the old one... What am I doing wrong ?

//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!
    }
?>

Any ide ?

Upvotes: 1

Views: 988

Answers (1)

Sudhir Bastakoti
Sudhir Bastakoti

Reputation: 100175

i think you want to make the $_SESSION multi dimensional array, so change:

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

to

$_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']);

Upvotes: 4

Related Questions