[PHP] passer un array par la methode post [Résolu/Fermé]

Signaler
-
 Dest -
Bonjour,
Je cherche a passer un tableau a une autre page en utilisant le méthode post.
$data = array($ref,$nb);


J'ai tester une fonction serialize($data) ce qui donne un résultat du type : a:2:{i:0;s:9:"reference";i:1;i:17;}
pour $ref = "reference" et $nb = 17

quand sur la même page en guise de test j'exécute la fonction unserialize je récupère bien mon tableau

$test = serialize($data);
$test_u = unserialize($test);
echo $test_u[0].$test_u[1];


Par contre quand je passe la variable $test a mon autre page et que j'exécute le même script je ne le récupère pas :'(

$data = $_POST['data'];
echo $data."<br>";
$array = unserialize($data);
echo $array[0]." and value is :".$array[1];



Merci de votre aide

8 réponses

Salut,

J'ai fait un truque tout simple ..

<form action="test.php" method="POST">
<?php
$name = "reference";
$value = 17;
$data = array($name,$value);
$test = serialize($data);
echo $test;
echo "<br><input type='text' value='".$test."' name='data' />";
$test_u = unserialize($test);
echo $test_u[0].$test_u[1];
?>

<input type="submit" />
</form>



et je recupere sa avec :
<?php 

$data = $_POST['data'];
echo $data."<br>";
$array = unserialize($data);
echo $array[0]." and value is :".$array[1];
?>
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

En effet cela fonctionne a merveille => Merci beaucoup de votre aide qui ma été très précieuse =).
j'ai galéré aussi avec la méthode post ^^' j'ai pas tout lu donc je ne sais pas si quelqu'un a déjà proposé ça mais voilà ma solution :) :

echo "<br><input type='text' value='".htmlspecialchars($test, ENT_QUOTES)."' name='data' />";
et le résultat est loin d'être probant :S

a:2:{i:0;s:9:\"reference\";i:1;i:17;}
and value is :

a priori je voit pas d'erreur mais il doit bien en avoir une :D
Je pense pas que l'erreur vienne de l'envoie de la variable puisque je la récupère correctement:
le $data = $_POST['data']; echo $data."<br>"; s'affiche bien on le voit sur la page.
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
884
Salut, chez moi ça marche avec ce code:

il faut donner un name et une value à ton bouton submit

<form action="test.php" method="POST">
<?php
$name = "reference";
$value = 17;
$data = array($name,$value);
$test = serialize($data);
echo $test;
echo "<br><input type='text' value='".$test."' name='data' />";
$test_u = unserialize($test);
echo $test_u[0].$test_u[1];
?>

<input type="submit" name="envoyer" value="Envoyer"/>
</form>


et test.php:

<?php 

$data = $_POST['data'];
echo $data."<br>";
$array = unserialize($data);
echo $array[0]." and value is :".$array[1];
>
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017

merci de ton aide mais cela n'a rien changer : en effet sa marche sur la 1ere page mais pas sur la seconde c'est sa qui me rend fou :D
Si justement le champ $data contien le resultat : a:2:{i:0;s:9:\"reference\";i:1;i:17;}

le pb vient apres:
$array = unserialize($data);
echo $array[0]." and value is :".$array[1]; affiche le resultat : "and value is"

$array[0] et $array[1] n'ont apparement pa de valeur :S
d'alleur le test if(!$array[0] OR !$array[1]) le confirme ...
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
884
chez moi ça marche parfaitement sur la deuxième page test.php


j'ai comme résultat:

a:2:{i:0;s:9:"reference";i:1;i:17;}
reference and value is :17
>
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017

hum alors la je comprend pas ...
j'ai pas regarder le php.ini mais si sa fonctionne sur une page pourquoi pas dans l'autre :o
c'est une fonction de base php mais sinon pour les éventuelles fautes d'orthographe c'est un copier coller ;)
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
884
dans un post plus haut tu mets:

le champ $data contien le resultat : a:2:{i:0;s:9:\"reference\";i:1;i:17;}

donc avec des \"

moi j'ai seulement
 a:2:{i:0;s:9:"reference";i:1;i:17;}


dans la page test.php

essayes en mettant:

unserialise(stripslashes($data); ????