2010-11-04 18 views
1

J'ai une page. L'utilisateur soumet la page et l'envoie à une page de résultats PHP. Ça fonctionne bien. Maintenant, je veux que la page de résultats soit liée à une autre page, et que les éléments de cette page dépendent de ce qui se trouvait sur la page de résultats. Je sais comment passer des variables de formulaire à une autre page, mais je ne sais rien sur la transmission de variables non-formulaire.PHP: Passer des variables non-formulaire entre les pages?

De ma recherche sur le web, ma meilleure estimation est que je devrais passer par l'URL. Est-ce correct? Si c'est le cas, un problème possible: la page à laquelle je souhaite que la page de résultats soit transmise aura un formulaire, et l'utilisateur ira sur une autre page de résultats en cliquant sur submit (les données du formulaire seront envoyées par POST). Puis-je envoyer les données non-formulaire (l'ancienne variable de page de résultats) avec les données de formulaire, si l'utilisateur va à l'autre page en utilisant POST?

+0

double possible de [variable PHP passe à la page suivante] (http://stackoverflow.com/questions/871858/php-pass-variable-to-next-page) – outis

Répondre

1

Il existe plusieurs options. Cependant, le plus simple peut être de simplement passer les données en utilisant des champs d'entrée cachés.

D'autres options utiliseraient la session, en la stockant dans une base de données entre des formulaires, ou une combinaison de ceux-ci.

1

Si vous allez utiliser POST pour passer à la page suivante, l'option la plus simple consiste à inclure les données que vous voulez envoyer en utilisant un élément input = "hidden" dans votre formulaire.

0

Vous pouvez incorporer les données non-formulaire dans le deuxième formulaire en tant que champs masqués. Pour vous assurer qu'il est également passé dans le lien, il vous suffit de l'ajouter à l'URL comme une chaîne de requête, comme:

http://..../blah.php?var1=val1&var2=val2

aussi longtemps que les données vous passez peut entrer dans une URL . Assurez-vous d'urlencode() tout ce que vous ajoutez à l'URL.

1

Vous pouvez envisager d'utiliser une session pour transmettre les données.

2

Je suggère fortement d'utiliser des sessions. Ce n'est pas si difficile à apprendre, php le rend très facile en utilisant http://php.net/session_start et la variable $_SESSION. L'avantage est que vous n'aurez pas à soumettre un formulaire à chaque clic, et aucune information ne sera affichée en texte brut dans l'URL.

+0

Ceci est un bon (ou peut-être même la meilleure solution) si votre application est plus qu'une série de formes. –

0
<?php 

start_session(); 

$_SESSION['Foo'] = 'Bar' // Add stuff here. 

?>