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 
:
$lol $_POST['scritta'];
echo 
$lol// stampa correttamente

header('location: toso.php?step=3');
break;

case 
:
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 ?