Originariamente inviato da filippo.toso
Guarda con attenzione DOVE lo hai inserito.
Stai confondendo variabili globali (e non) con variabili di sessione.
Ho appena provato in locale a mettere questo file :
Codice PHP:
<?php
if (empty($_GET['step']))
{
header('location: toso.php?step=1');
}
else {
$step = $_GET['step'];
}
switch ($step)
{
case 1:
if ( empty($_POST['submit'])) {
?>
<form action=toso.php?step=2 method=POST>
<input type="text" name="scritta">
<input type="submit" name="submit" value="vai avanti">
</form>
<?php
} else {
header('location: toso.php?step=2');
}
break;
case 2 :
$lol = $_POST['scritta'];
echo $lol; // stampa correttamente
header('location: toso.php?step=3');
break;
case 3 :
echo $lol; /* non stampa più perchè è cambiato il link dell'action, e quindi non coincide con il form */
break;
}
?>
e funziona... quindi scusa la mia ignoranza ma non capisco perchè non posso mettere un ciclo if fra dentro uno switch.
Per quanto riguarda portare il valore nel case 3 della variabile $_POST['scritta'] , se ho capito bene, lo posso fare solo se memorizzo il valore su una variabile di sessione ?