Visualizzazione risultati 1 fino 1 di 1

Discussione: Problema form e session

  1. #1
    Guest

    Predefinito Problema form e session

    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.<br /><br />
    <form action="
    {$_SERVER['PHP_SELF']}" method="POST">
    <div style="float: left; margin-right: 50px;">
    Username<br />
    <input type="text" name="username" required /><br /><br />
    Password<br />
    <input type="password" name="password" required /></div><div style="float: left;">
    Email<br />
    <input type="email" name="email" required /><br /><br />
    Conferma Password<br />
    <input type="password" name="password_check" required /></div><div style="clear: both;"></div><br />
    <input type="submit" name="reg" value="Registrati" /></form><br />
    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.<br />Sono stati inviati i dati al tuo indirizzo email in caso di smarrimento.<br /><br />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;
    }
    ?>
    Se provo anche ad esempio ad inserire due password diverse non genera gli "errori" che dovrebbe..

    EDIT:

    ho risolto.

    Ho messo come action, dopo PHP_SELF "?step=1". L' errore stava che il form inviava i dati a registrazione.php, mentre ho messo che se $_GET['step'] è vuoto rimandava a step=1 quindi i dati non venivano mai inviati realmente.
    Ultima modifica di mybeatnews : 09-07-2011 alle ore 20.11.06 Motivo: Risolto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •