• User Attivo

    Semplicissimo controllo di un form

    Ciao a tutti, ho un problemino. Ho un form dove l'utente inserisce 3 dati del cavolo e viene mandato in un'altra pagina, vorrei solamente, che se l'utente non inserisce il nome ad esempio, nella pagina seguente verrà chiamato "visitatore" ad esempio e così via; vorrei impostare che se l'utente non inserisce dei dati, questi dati, avranno già un valore di default.
    Questo è il codice che gestisce i dati del form:
    <?php
    $nome=$_GET['nome'];
    $indirizzo=$_GET['indirizzo'];
    $errori=$_GET['errori'];
    $_SESSION['nome'] = $nome;
    $_SESSION['indirizzo'] = $indirizzo;
    $_SESSION['errori'] = $errori;
    if ($errori==0) {header("location:risultatotest/testambientg1lda.php");}
    elseif ($errori>0 && $errori <=10) {header("location:risultatotest/testambient2212.php");}
    elseif ($errori>10 && $errori <=30) {header("location:risultatotest/testambient2012.php");}
    elseif ($errori>30 && $errori <=50) {header("location:risultatotest/testambient27241281.php");}
    elseif ($errori>50 && $errori <=100) {header("location:risultatotest/testambient24981.php");}
    elseif ($errori>100 && $errori <=150) {header("location:risultatotest/testambient24330.php");}
    elseif ($errori>150 && $errori <=200) {header("location:risultatotest/testambient21678.php");}
    elseif ($errori>200) {header("location:risultatotest/testambient8130.php");}
    ?>

    E' molto semplice, ma ho provato ad inserire degli !isset dopo le variabili con un if ma niente, non riesco.
    Sono nuovo di php e vorrei capire come funziona la cosa.

    Grazie mille e ciao a tutti


  • ModSenior

    Ciao simo10piu,
    ma le variabili vengono comunque inviate come vuote o sono del tutto assenti?
    Perchè se sono inviate vuote non va bene isset, ma devi verificare che siano diverse da una stringa vuota.


  • User Attivo

    Ciao Thedarkita, grazie.

    Le variabili vengono dal form (nome indirizzo errori) che l'utente compila, o che non compila; in quest'ultimo caso vorrei avere delle variabili impostate di default....
    Quindi dovrei usare l'empty? Ne ho sentito parlare 🙂


  • ModSenior

    Se puoi scriverci l'esempio di un link che non arriva con tutti i campi compilati è meglio.


  • User Attivo

    Sarebbe opportuno vedere anche il form... vorrei capire come viene utilizzata la variabile $errori.


  • User Attivo

    Ciao Tigrone grazie.

    Ecco il form è questo:

    <form method="get" action="testerrori.php">
    <p>Nome: <input type="text" name="nome" /></p>
    <p>Sito Web: <input type="text" name="indirizzo" /></p>
    <p>Errori test W3c: <input type="text" name="errori" /></p>
    <p><input type="submit" value="Analizza" /></p></form>

    Il form viene compilato in questa pagina, processato dallo script che ho postato prima, e a seconda degli errori inseriti, si viene reindirizzati in una terza pagina dove il codice php è semplicemente questo:
    <?php
    $nome=$_SESSION['nome'];
    $indirizzo=$_SESSION['indirizzo'];
    $errori=$_SESSION['errori'];
    ?>
    Il tutto è regolato dalle sessioni su tutte e 3 le pagine.
    Ciao....


  • User Attivo

    Allora...

    Se il nome è vuoto, vuoi che diventi 'visitatore'... quindi:

    
    if (!$nome) $_SESSION['nome']='visitatore';
    
    

    che in parole povere significa: se la variabile $nome è vuota, dai il valore 'visitatore' alla variabile di sessione.
    Allo stesso modo, puoi impostare le altre variabili.

    Ti consiglio comunque di inviare i dati in POST anzichè in GET e di effettuare un minimo di controllo sui dati immessi; secondo me dovresti usare le funzioni 'strip_tags' e 'trim'... oltre a 'is_numeric' per la variabile $errori.


  • User Attivo

    Spettacolo Tigrone grazie mille!!!

    Credevo che il ! si dovesse abbinare solo a funzioni tipo empty isset, invece anche a nomi di variabili, bene!

    Grazie per la spiegazione, mi piace capire cosa sto facendo 🙂

    Si infatti potrei approfondire i controlli anche solo per il piacere di imparare ad effettuarli 🙂
    Me le provo a studiare un pochino....

    Ciao alla prossima


  • User Attivo

    ops...scusa tigrone, ma in questo caso if senza graffe però? Come mai?


  • ModSenior

    Se deve eseguire un solo comando, qualora la condizione sia vera, le parentesi graffe possono essere omesse.


  • User Attivo

    ah bene...altra cosa imparata 🙂

    Grazie mille ciao Thedarkita


  • Super User

    Consiglio di usare le graffe sempre, è una buona abitudine a mio parere