HTML / HTTP è apolide, in altre parole, ciò che hai fatto / visto nella pagina precedente, è completamente scollegato dalla pagina corrente. Tranne se utilizzi qualcosa come sessioni, cookie o variabili GET / POST. Sessioni e cookie sono abbastanza facili da usare, con una sessione molto più sicura dei cookie. Più sicuro, ma non completamente sicuro.
Sessione:
//On page 1
$_SESSION['varname'] = $var_value;
//On page 2
$var_value = $_SESSION['varname'];
Ricordarsi di eseguire l' session_start();
istruzione su entrambe queste pagine prima di provare ad accedere $_SESSION
all'array e anche prima di inviare qualsiasi output al browser.
Cookie:
//One page 1
$_COOKIE['varname'] = $var_value;
//On page 2
$var_value = $_COOKIE['varname'];
La grande differenza tra sessioni e cookie è che il valore della variabile verrà archiviato sul server se si utilizzano sessioni e sul client se si utilizzano cookie. Non riesco a pensare a nessun buon motivo per utilizzare i cookie anziché le sessioni, tranne se si desidera che i dati persistano tra le sessioni, ma anche in questo caso è forse meglio archiviarli in un DB e recuperarli in base a un nome utente o ID.
OTTIENI e POST
È possibile aggiungere la variabile nel collegamento alla pagina successiva:
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
Questo creerà una variabile GET.
Un altro modo è includere un campo nascosto in un modulo che invia alla seconda pagina:
<form method="get" action="page2.php">
<input type="hidden" name="varname" value="var_value">
<input type="submit">
</form>
E poi a pagina due:
//Using GET
$var_value = $_GET['varname'];
//Using POST
$var_value = $_POST['varname'];
//Using GET, POST or COOKIE.
$var_value = $_REQUEST['varname'];
Basta cambiare il metodo per il modulo post
se si desidera farlo tramite posta. Entrambi sono ugualmente insicuri, sebbene GET sia più facile da hackerare.
Il fatto che ogni nuova richiesta sia, ad eccezione dei dati di sessione, un'istanza totalmente nuova dello script mi ha colto quando ho iniziato a scrivere codice in PHP. Una volta che ti ci abitui, è abbastanza semplice però.