Création
d'entreprise
Posez votre question Signaler

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

krabs - Dernière réponse le 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
Lire la suite 

[PHP] passer un array par la methode post »

13 réponses
Réponse
+0
moins plus
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];
?>
Ajouter un commentaire
Réponse
-1
moins plus
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
Ajouter un commentaire
Réponse
-1
moins plus
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.
Alain_42- 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];
krabs - 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
Ajouter un commentaire
Réponse
-1
moins plus
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
Ajouter un commentaire
Réponse
-1
moins plus
d'alleur le test if(!$array[0] OR !$array[1]) le confirme ...
Alain_42- 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
krabs - 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
Ajouter un commentaire
Réponse
-1
moins plus
c'est une fonction de base php mais sinon pour les éventuelles fautes d'orthographe c'est un copier coller ;)
Alain_42- 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); ????
Ajouter un commentaire
Réponse
-1
moins plus
En effet cela fonctionne a merveille => Merci beaucoup de votre aide qui ma été très précieuse =).
Ajouter un commentaire
Réponse
-1
moins plus
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' />";
Ajouter un commentaire
Ce document intitulé « [PHP] passer un array par la methode post » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?