Salut à tous !
Je travaille actuellement sur un projet en e-commerce. Je suis en plein dans le développement du site. Je rencontre une difficulté. Je sais qu'il est plus courant d'utiliser des variables de session pour passer des objets, mais j'ai voulu testé une autre façon de faire. Peut-on passer un objet par les méthodes GET/POST ? Dans mon cas il s'agit d'un tableau d'objets sérialisé. L'idée était séduisante au départ, puis je me suis rendu compte que ça posait un problème : je n'arrive pas à récupérer mes valeurs par la méthode post, alors que je ne change même pas de page.
Voilà mon code : à cette page sont envoyés 2 tableaux $reference et $quantite qui sont créé par la même technique qu'ici (les inputs de type "hidden"). J'ai simplifié le code au maximum pour ne laisser que la partie vraiment utile.
include('Articles.class.php');
extract($_POST,EXTR_OVERWRITE);
if(!isset($_POST['commander']))
{
echo'
<form method="POST" action="'.$PHP_SELF.'">;
for($i=0;$i<sizeof($reference);$i++)
{
$article = new Articles($reference[$i],$quantite[$i]); // on instance un nouvel article à chaque tour de boucle
echo'<input type="hidden" name="panier[]" value="'.serialize($article).'">';
}
echo'<input class="button" type="submit" name="commander" value="Je passe la commande">
</form>';
for($i=0;$i<sizeof($panier);$i++) // boucle qui permet de vérifier le contenu de $panier
{ // affiche bien des objets de type "Articles" sérialisés
echo $panier[$i].'<br>'; }}
else
{
print_r($panier).'<br>'; // affiche les types d'objets contenus dans $panier après soumission du formulaire
// affiche à l'écran ---> Array ( [0] => O:8: [1] => O:8: ) O:8:
echo'<br>'; // Ici $panier contient bien 2 objets sérialisés.
//si je déserialise, il me retourne... ben rien en fait, que du vide...
for($i=0;$i<sizeof($panier);$i++) // même boucle qu'avant le else et c'est là que le problème survient
{ // ça n'affiche rien...
echo $panier[$i].'<br>'; }}
Je ne suis pas un crack en php, je débute en fait. Si quelqu'un pouvait m'aider à mieux comprendre, ce serait sympa, merci d'avance.
N'hésitez pas si vous avez des questions à me les poser, j'essaierai d'y répondre du mieux que je pourrais.
@+++, TOURSENE