2009-04-01 11 views
1

Comment publier une variable en PHP sans utiliser de formulaire et accéder à la variable à partir de la page suivante.Publication de variables en PHP

Ce que je suis vraiment en train de faire bien, est de poster une variable comme ceci:

$username = "Sam"; 
$_POST[$username]; 

et je suis en train d'y accéder à partir d'une page que je meta refresh à.

Des idées?

+0

La réponse que vous cherchez est probablement ici, mais dans le cas contraire, cela nous aiderait probablement à obtenir un petit résumé de ce que vous essayez d'obtenir par application, au lieu de simplement la difficulté technique que vous êtes actuellement. s'attaquer. – lpfavreau

Répondre

0

Je ne pense pas que ce soit possible. Essayez d'utiliser $ _GET à la place, ou des variables de session. Éditer: En fait, apparemment you can use CURL.

Ou this method, qui ressemble à écrire dans un fichier et à relire les variables. Je pense que vous êtes mieux d'utiliser des variables de session.

9

Qu'essayez-vous d'accomplir? Je pense que vous voudrez peut-être Sessions:

// page1.php 
session_start(); 
$_SESSION['username'] = 'Sam'; 
header('Location: page2.php'); 

// page2.php 
session_start(); 
print 'Hello, ' . $_SESSION['username'] . '!'; 

Cependant, si vous êtes sûr que est ce que vous voulez, consultez cURL, qui vous permettra de publier sur une page, mais je ne suis pas sûr que ça va vous laisser exactement naviguer vers, pour ainsi dire. Vous pouvez obtenir sa sortie, si:

// page1.php 
$curl = curl_init('http://www.mysite.com/page2.php'); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, array('username' => 'Sam')); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
curl_close($curl); 
print $result; // prints "Hello, Sam!" 

// page2.php 
print 'Hello, ' . $_POST['username'] . '!'; 
+1

+1 - Je devrais probablement lire toute la question lol ... SESSIONs sont évidemment ce qu'il veut –

+0

Assez sûr que c'est, mais je me suis dit que je serais complet et poster comment y parvenir en utilisant POST. –

3

Regardez ma réponse sur la question Passing Information Between PHP Pages, je pense qu'il pourrait être vous intéresser. Il parle des différences entre les quelques méthodes existantes de communication entre les pages PHP.

Plus précisément, voici un résumé par rapport à votre problème:

  1. Avec un $_GET (informations transmises directement dans l'URL), vous pourriez être en mesure de passer vos variables, en fonction de ce qu'ils sont et ce que vous essayez d'accomplir.

  2. Avec un $_POST (information affichée dans l'en-tête HTTP à une URL) vous ne serez pas en mesure de rediriger vers une page, parce que cela se fait par le navigateur (côté client) et non par le serveur (où vous exécutez le script PHP). Vous pouvez utiliser un formulaire caché et du javascript pour faire le post (et la redirection en même temps). Cela pourrait fonctionner, en fonction de votre public cible, car javascript n'est pas infaillible; il pourrait être désactivé sur le navigateur. Vous pouvez également utiliser CURL comme certains l'ont dit, bien que cela émule votre serveur comme étant le navigateur; les données seront affichées au nom de votre utilisateur, mais il ne sera pas redirigé automatiquement vers la page avec les données postées. Et si le résultat final de cette publication est l'authentification d'un utilisateur par exemple, votre utilisateur (côté client) n'aura pas de session ouverte pour lui.

  3. En utilisant un $_SESSION, avec des informations qui restent sur le serveur. Il ne transmet (automatiquement) qu'un identifiant unique au navigateur (normalement via un cookie) pour lier un utilisateur aux données que vous stockez pour sa session sur votre site Web. Bien sûr, cela ne serait utile que si vous redirigez l'utilisateur vers votre propre application, et non un autre site Web.

Selon votre problème spécifique, il existe différentes façons de le résoudre.

0

cible page savoir s'il s'agit d'une soumission CURL ou formulaire?