Rechercher : dans
Par :

[PHP] passer un array par la methode post

Dernière réponse le 29 aoû 2008 à 21:08:54 krabs, le 29 aoû 2008 à 17:01:33 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 2.0.0.16

Meilleures réponses pour « [PHP] passer un array par la methode post » dans :
[MSN] Empêcher le démarrage sans mot de passe VoirFermer totalement Messenger Dans MSN Votre compte Passeport.net (Méthode testée sous XP) Fermer totalement Messenger Clic droit sur l'icône dans la barre des tâches Choisir "Quitter" Relancer Messenger et vérifier que lorsque MSN...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...
PHP - Connexion à un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Un serveur LDAP est conçu pour être capable de gérer les opérations...

2

krabs, le 29 aoû 2008 à 17:44:29

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];
?>

Répondre à krabs

4

krabs, le 29 aoû 2008 à 17:47:44

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

Répondre à krabs

5

krabs, le 29 aoû 2008 à 17:50:17

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.

Répondre à krabs

9

Alain_42, le 29 aoû 2008 à 18:02:46

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];

Répondre à Alain_42

10

krabs, le 29 aoû 2008 à 18:07:11

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

Répondre à krabs

7

krabs, le 29 aoû 2008 à 17:54:45

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

Répondre à krabs

8

krabs, le 29 aoû 2008 à 17:57:01

D'alleur le test if(!$array[0] OR !$array[1]) le confirme ...

Répondre à krabs

13

Alain_42, le 29 aoû 2008 à 18:10:08

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

Répondre à Alain_42

14

krabs, le 29 aoû 2008 à 18:13:57

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

Répondre à krabs

12

krabs, le 29 aoû 2008 à 18:09:54

C'est une fonction de base php mais sinon pour les éventuelles fautes d'orthographe c'est un copier coller ;)

Répondre à krabs

15

Alain_42, le 29 aoû 2008 à 18:26:27

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); ????

Répondre à Alain_42

17

 krabs, le 29 aoû 2008 à 18:31:31

En effet cela fonctionne a merveille => Merci beaucoup de votre aide qui ma été très précieuse =).

Répondre à krabs