View Full Version : PHP - Passare una variabile da una pagina ad un'ltra
negator136
23-07-2006, 18:56
ciao a tutti,
ho una pagina in cui ad un certo punto uso questa funzione per caricare una nuova pagina: header("location: nuova_pagina.php");
vorrei portare nella seconda pagina il valore di una variabile... come potrei fare?
c'è un modo per dichiarare il valore di una variabile agendo sul link? ad esempio scrivendo una cosa del tipo: ...link/pagina.php?variabile=valore
GRAZIE MILLE
scorpion89
23-07-2006, 19:12
Richiami la pagina php passandogli la variabile con il rispettivo valore e dopo la riprendi es:
index.php?var=val
e dopo la riprendi
$_GET['var']
Ciao :)
negator136
23-07-2006, 19:15
Richiami la pagina php passandogli la variabile con il rispettivo valore e dopo la riprendi es:
index.php?var=val
e dopo la riprendi
$_GET['var']
Ciao :)
ottimo! allora c'ero andato vicino! :D
grazie :)
negator136
23-07-2006, 19:38
header("location: edit_article.php?titolo=$title");
come faccio a fare in modo che il valore della variabile sia ancora una variabile? cioè, nella pagina che condiente l'header $title ha un valore... vorrei che venisse passato alla pagina edit_article.php
grazie :)
EDIT: chiaramente la stringa che ho scritto in questo messaggio non funziona.
anonimizzato
23-07-2006, 19:56
sfrutta le sessioni per poter trasportare le variabile in giro per il sito.
inizializzi la sessione o recuperi i dati da una già iniziata
session_start();
e poi quando passi il valore della variabile la prima volta la metti nell'array associativo $_SESSION così:
$_SESSION["title"] = $_REQUEST["title"];
poi con $_SESSION["title"] ci fai quello che vuoi.
Ciao.
header("location: edit_article.php?titolo=$title");
come faccio a fare in modo che il valore della variabile sia ancora una variabile? cioè, nella pagina che condiente l'header $title ha un valore... vorrei che venisse passato alla pagina edit_article.phpSe la direttiva register_globals del PHP è 'on', si ottiene direttamente una variabile $titolo.
Ma in genere è consigliato tenere quella direttiva 'off' (tra l'altro è 'off' di default nel php.ini sui PHP recenti) ed usare gli array superglobals come $_GET, $_POST, ecc...
negator136
24-07-2006, 09:04
grazie a tutti per le risposte :) sono riuscito ad ottenere quello che volevo.
ora però ho una domanda teorica:
sbaglio oppure, quando ho un form html che mi prende degli input, nella pagina che riceve i dati è preferibile usare $_REQUEST['variabile'] piuttosto che $variabile? ho notato che il secondo metodo non funziona sempre (ad esempio nelle sessioni) e vorrei capire il perchè.
grazie :fagiano:
edit: aggiungo una domandina pratica: è possibile far comparire un testo in un input di tipo "text" già al caricamento della pagina? con la "textarea" ci sono riuscito... :stordita: edit2: ok, per questa domanda ho risolto :doh: resta valido il quesito teorico :)
sbaglio oppure, quando ho un form html che mi prende degli input, nella pagina che riceve i dati è preferibile usare $_REQUEST['variabile'] piuttosto che $variabile? ho notato che il secondo metodo non funziona sempre (ad esempio nelle sessioni) e vorrei capire il perchè.Ma ... l'ho detto prima. :fagiano: Dipende dalla impostazione del register_globals, se 'on' o 'off'.
negator136
24-07-2006, 09:54
Ma ... l'ho detto prima. :fagiano: Dipende dalla impostazione del register_globals, se 'on' o 'off'.
ok ok, sto cercando di capire...
se "register_global" fosse attivo (ovvero mai), la semplice dichiarazione di una variabile mi permetterebbe di avere lo stesso valore in tutte le pagine del sito.
quello che non capisco è perchè, inviando tramite form i valori da una pagina ad un altra, a volte posso richiamare il valore semplicemente scrivendo $variabile, in altri tramite $_REQUEST['variabile']...
ah, io intendo sulla stessa pagina e sullo stesso server... quindi a "parità" di "register_global".
mi spiego: ho fatto una pagina in cui ottengo il valore di $title e lo invio ad un'altra pagina così:
<form method="post" action="action_select.php">
<input name="title" type="text" value="Titolo">
<input type="submit" value="Select!">
</form>
nella pagina action_select.php posso stampare il valore così:
echo "$title";
ma per associarlo ad una sessione devo per forza fare così:
$_SESSION['title']=$_REQUEST["title"];
perchè non posso usare $title anche nel secondo caso?? :muro:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.