Tableau array et session panier? [Résolu]

Signaler
Messages postés
56
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
5 juillet 2010
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
Salut à tous,
je cherche à pouvoir ajouter une valeur a chaque fois que l'utilisateur entre une info dans un champs de saisie simple mais apres chaque chargement l'info ne s'ajoute pas dans mon tableau, voici mon code apres validation du formulaire.....(je sais qu'il n'est pas terrible, donc soyez indulgent).
////////////////////////////////mon code////////////////////////////////////////////////
<?php
session_start();
$_SESSION['panier'] = array();
foreach( $_POST['test'] as $key => $value ) {


array_push($_SESSION['panier'],$value); }//ajoute  la nouvelle valeur


var_dump($_SESSION['panier']);


?>
Merci de votre aide!

5 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Il faut faire attention aux variables de session, quand on les définit à chaque début de page elles sont réinitialisées du même coup. Ce qu'il te manque c'est un petit test qui vérifie si la variable session "panier" est définit comme tableau pour éviter que la valeur soit écrasé par un tableau vide à chaque fois que tu envoies des données.

<?php
session_start();

if (!isset($_SESSION['panier']) || !is_array($_SESSION['panier'])) {
     $_SESSION['panier'] = array();
}

foreach( $_POST['test'] as $key => $value ) {
    array_push($_SESSION['panier'],$value);
}
var_dump($_SESSION['panier']);
?>
Messages postés
56
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
5 juillet 2010

merci arto, je teste ça!!!!
Messages postés
56
Date d'inscription
samedi 24 juillet 2004
Statut
Membre
Dernière intervention
5 juillet 2010

j'ai une erreur ds le foreach que je ne vois pas dans ton code????tu la vois toi ARTO??

Warning: Invalid argument supplied for foreach
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
Pour faire un foreach sur élément, il faut que ça soit un tableau. Ton $_POST['test'] n'est pas un tableau. En fait, généralement les valeurs envoyées en POST ou en GET sont des valeurs textes ou numériques.

Vérifie que ce que tu veux faire n'est pas tout simplement ceci :

<?php
session_start();

if (!isset($_SESSION['panier']) || !is_array($_SESSION['panier'])) {
     $_SESSION['panier'] = array();
}

if (isset($_POST['test'])) {
    array_push($_SESSION['panier'], $_POST['test']);
}

var_dump($_SESSION['panier']);
?>

Note : Il est aussi important de vérifier si les valeurs envoyées en paramètre existe ou non.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Salut,

Il y a fort à parier que $_POST['test'] n'est pas un tableau.

Cordialement,

Kohntark -