Da un po' di tempo non mi funziona questo script, cioè un po' di tempo = 15-20 minuti, ma non capisco il perchè.. Sembra che la posizione dell' include e del session_start() influenzi tutto lo script, il form non riceve dati..

Codice PHP:
    <?php
    
include('settings.php');
    
session_start();
    
$step $_GET['step'];
    if(!
is_numeric($step) || !isset($step)) {
    
header ('Location: ?step=1');
    }
    switch(
$step) {
    case 
1:
    echo <<<EOT
    Benvenuto nella registrazione di [b]MySimpson[/b]. Ricorda di fornire un' indirizzo mail valido affinchè successivamente vi si possano inviare i dati immessi nel form sottostante.


    <form action="
{$_SERVER['PHP_SELF']}" method="POST">
    <div style="float: left; margin-right: 50px;">
    Username

    <input type="text" name="username" required />


    Password

    <input type="password" name="password" required /></div><div style="float: left;">
    Email

    <input type="email" name="email" required />


    Conferma Password

    <input type="password" name="password_check" required /></div><div style="clear: both;"></div>

    <input type="submit" name="reg" value="Registrati" /></form>

EOT;
    
$username addslashes(htmlspecialchars($_POST['username']));
    
$email addslashes(htmlspecialchars($_POST['email']));
    
$password md5(addslashes(htmlspecialchars($_POST['password'])));
    
$password_check md5(addslashes(htmlspecialchars($_POST['password_check'])));
    if(isset(
$_POST['reg'])) {
    if(empty(
$username) || empty($email) || empty($password) || empty($password_check)) {
    echo 
'<div id="error">Devi riempire tutti i campi</div>';
    } elseif(
$password_check != $password) {
    echo 
'<div id="error">Le password non coincidono</div>';
    } else {
    
mysql_query("INSERT INTO simpson_users (username, password, livello, exp, email, registrazione) VALUES ('$username','$password','1','1','$email',NOW())") or die(mysql_error());
    
$_SESSION['ok'] = $username;
    
header ('Location: ?step=2');
    }
     }
     break;
     case 
2:
     if(!isset(
$_SESSION['ok'])) {
     
header ('Location: ?step=1');
     } else {
     echo 
'<div id="ok">Registrazione effettuata correttamente.
Sono stati inviati i dati al tuo indirizzo email in caso di smarrimento.

Se non ricevi nessuna email entro 48 ore assicurati di aver inserito un indirizzo di posta elettronica valido e di aver controllato nella [b]Posta indesiderata[/b].</div>'
;
     }
     break;
      }
    
?>