[PHP] passer un array par la methode post

Résolu/Fermé
krabs - 29 août 2008 à 17:01
 Dest - 12 oct. 2010 à 20:36
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
A voir également:

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
En effet cela fonctionne a merveille => Merci beaucoup de votre aide qui ma été très précieuse =).
1
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' />";
0
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
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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.
-1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 août 2008 à 18:02
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];
0
krabs > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
29 août 2008 à 18:07
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
0
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
-1
d'alleur le test if(!$array[0] OR !$array[1]) le confirme ...
-1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 août 2008 à 18:10
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
0
krabs > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
29 août 2008 à 18:13
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
0
c'est une fonction de base php mais sinon pour les éventuelles fautes d'orthographe c'est un copier coller ;)
-1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
29 août 2008 à 18:26
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); ????
0