Devo passare una variabile PHP da una pagina ad un'altra. In quali modi posso farlo?
Devo passare una variabile PHP da una pagina ad un'altra. In quali modi posso farlo?
Non intendevo questo,
ho un form che invia i dati alla pagina B. Non posso con PHP inviare anche una variabile?
tryhere se sei più chiaro possiamo aiutarti meglio, per esempio facendo un esempio del tuo problema, ma credo di aver capito.
Nel caso di un form il mettodo di passaggio variabile è $_POST[], e funziona nel seguente modo.
Costriusci il form in questo modo:
Nel file B per richiamare la variabile trasmessa con mettodo Post è sufficente inserire la seguente stringa di codice dove ti serve la variabileCodice HTML:<form method="post" action="file.php"> <--! sostituisce file.php con il nome del file B --> <input type="tipo_di_variabile (bolleana, testo, chebox)" name="nome_della_tua_variabile"> <input type="submit" value="Invia"> <--! che si occupera di esseguire l'action del form --> </form>
Codice PHP:
$_POST['nome_della_tua_variabile']
Non mi sono spiegato. Il mio form già funziona e invia il contenuto di una casella di testo. Vorrei che insieme a quello venisse inviata la lunghezza della stringa inserita dall'utente...
strlen($VARIABILE)
come ben saprai i dati li invii con i form e li ricevi con PHP con la variabile $_POST['nomeform'], se vuoi inviare una variabile con il metodo post, senza che l'utente lo sappia, nel codice html aggiungi:
nella pagina .php specificata dall'action del form, se fai un echo della variabile $_POST['nomeform2'] vedrai che ti apparirà "ci sono!"Codice HTML:<input type="hidden" name="nomeform2" value="ci sono!" />
se invece vuoi mantenere la variabile per la durata di tutta la visione del sito da parte dell'utente (ed a sua insaputa), usa le variabili $_SESSION.
Per fare ciò all'inizio di ogni pagina .php dove intendi usare le variabili $_SESSION devi dichiarare, PRIMA DI QUALSIASI CONTENUTO,
se poi vuoi settare la variabile:Codice PHP:
<? session_start(); ?>
setta.php
vedi.phpCodice PHP:
<?
session_start();
$_SESSION['variabile']='Ci sono!';
?>
Se provi a vedere prima "vedi.php" vedrai una pagina bianca, ma se vedi "setta,php" e poi ancora "vedi.php", quest'ultima ti ritornerà "Ci sono!"Codice PHP:
<?
session_start();
echo $_SESSION['variabile'];
?>
Ciauz!
Mattia
E perdonami, ma non puoi calcolartela nella pagina successiva? Usi la funzione apposita nella seconda pagina e la associ ad una variabile... Che bisogno c'è di calcolarsela prima per portarsela sul groppone da una pagina all'altra? Chiedo perchè se c'è una ragione specifica, imparo qualcosa di nuovo...
Era uno dei tanti esempi che si potevano fare.
Comunque ho passato un array di stringhe:
Nella pagina che lo riceve faccio:Codice:$tables=array(); $tables[0]="ciao"; $tables[1]="a"; $tables[2]="tutti"; echo "<input type='hidden' name='tables' value='".$tables."'/>";
E ottengo "Array".Codice:$tables=$_POST['tables']; echo $tables[0].$tables[1].$tables[2].$tables[3].$tables[4];
Come faccio invece ad otterene "ciao a tutti"?
usa explode(' ', $var) in modo da dividere le parole.
Codice PHP:
$tables = explode(' ', $_POST['tables']);
foreach($tables as $key => $value)
{
echo $value;
}
Hai capito bene qual'è il problema?
Il valore di $tables diventa "Array".
E hai capito l'esempio che ti ho fatto? Io ti ho dato quasi tutto.
Tables è un array, anche se accodi le variabili.
Usa $nome_var = implode(' ', $tables); in modo da avere la stringa con tutti i valori dell'array
Si l'avevo provato ma in $tables[0] mette "Array" e in tutti gli altri non mette niente.