HTML / HTTP est sans état, en d'autres termes, ce que vous avez vu ou fait sur la page précédente n'a aucun rapport avec la page actuelle. Sauf si vous utilisez des éléments tels que les sessions, les cookies ou les variables GET / POST. Les sessions et les cookies sont assez faciles à utiliser, la session étant de loin plus sûre que les cookies. Plus sûre, mais pas complètement.
Session :
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
N'oubliez pas d'exécuter le session_start();
sur ces deux pages avant d'essayer d'accéder à l'espace de travail. $_SESSION
et aussi avant que toute sortie soit envoyée au navigateur.
Cookie :
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
La grande différence entre les sessions et les cookies est que la valeur de la variable sera stockée sur le serveur si vous utilisez des sessions, et sur le client si vous utilisez des cookies. Je ne vois pas de raison valable d'utiliser les cookies au lieu des sessions, sauf si vous voulez que les données persistent entre les sessions, mais même dans ce cas, il est peut-être préférable de les stocker dans une base de données et de les récupérer en fonction d'un nom d'utilisateur ou d'un identifiant.
GET et POST
Vous pouvez ajouter la variable dans le lien de la page suivante :
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
Cela créera une variable GET.
Une autre méthode consiste à inclure un champ caché dans un formulaire qui se soumet à la page deux :
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
Et ensuite sur la page deux :
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
Il suffit de changer la méthode du formulaire en post
si vous voulez le faire par la poste. Les deux sont aussi peu sûrs l'un que l'autre, bien que GET soit plus facile à pirater.
Le fait que chaque nouvelle requête soit, à l'exception des données de session, une instance totalement nouvelle du script m'a interpellé lorsque j'ai commencé à coder en PHP. Une fois qu'on s'y est habitué, c'est assez simple pourtant.
0 votes
La meilleure et la plus simple façon de passer des variables est celle que j'ai expliquée ici : stackoverflow.com/questions/14465464/