Je souhaite transmettre deux variables d'une page PHP à une autre. Je n'utilise pas de formulaire. Les variables sont des messages que la page cible affichera en cas de problème. Comment puis-je passer ces variables à l'autre page PHP tout en les conservant invisible?
par exemple. disons que j'ai ces deux variables:
//Original page
$message1 = "A message";
$message2 = "Another message";
et je veux les passer de page1.php à page2.php. Je ne veux pas les transmettre via l'URL.
//I don't want
'page2.php?message='.$message1.'&message2='.$message2
Existe-t-il un moyen (peut-être via $ _POST?) D’envoyer les variables? Si quelqu'un se demande pourquoi je veux qu'il soit invisible, je ne veux pas simplement d'une grande adresse URL avec des paramètres tels que "& message = Problème lors du téléchargement de votre fichier. Ce n'est pas un fichier .Zip valide" et je n'ai pas beaucoup Il est temps de changer les redirections de ma page pour éviter ce problème.
Les sessions seraient un bon choix pour vous. Jetez un coup d'oeil à ces deux exemples de PHP Manual :
Code de page1.php
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
// Or pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
Code de page2.php
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
Pour clarifier les choses - SID est la constante prédéfinie de PHP qui contient le nom de la session et son identifiant. Exemple de valeur SID:
PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
Voici une brève liste:
JQuery avec des trucs JSON. ( http://www.w3schools.com/xml/xml_http.asp )
$ _SESSION - probablement le meilleur moyen
Cookie personnalisé - ne fonctionnera pas * toujours *.
En-têtes HTTP - un proxy peut le bloquer.
base de données telle que MySQL, Postgres ou autre chose telle que Redis ou Memcached (similaire à une session faite à la maison, "verrouillée" par une adresse IP)
APC - similaire à la base de données, ne fonctionnera pas * toujours *.
HTTP_REFERRER
Paramètre de hachage URL, par exemple http://domain.com/page.php#param - Vous aurez besoin de JavaScript pour collecter le hachage. - Gmail lourd utilise cela.
<?php
session_start();
$message1 = "A message";
$message2 = "Another message";
$_SESSION['firstMessage'] = $message1;
$_SESSION['secondMessage'] = $message2;
?>
Stocke les sessions à la page 1 puis à la page 2
<?php
session_start();
echo $_SESSION['firstMessage'];
echo $_SESSION['secondMessage'];
?>
Avez-vous essayé d'ajouter les deux à $_SESSION
?
Ensuite, en haut de votre page2.php, ajoutez simplement:
<?php
session_start();
Utilisez Sessions .
Page 1:
session_start();
$_SESSION['message'] = "Some message"
Page 2:
session_start();
var_dump($_SESSION['message']);