• User Attivo

    Form : pulsante submit e tasto enter della tastiera

    Ciao a tutti .

    Ho fatto un semplicissimo form ( di un unico campo ) che richiede l' inserimento di una email . La parte in php si occupa di verificare se la email è presente o meno nel db . Se è così , deve rimandare ad una certa pagina , altrimenti ad altra pagina .

    Funziona tutto , se premo con un clic il tasto "Send" ( cioè il submit ) , ma ASSOLUTAMENTE NON FUNZIONA se premo il tasto enter della tastiera .

    Da qualche parte ho letto di qualcuno che ha avuto lo stesso problema , lo ha risolto , ma non ho capito come . L' unica cosa che diceva è che il problema era causato da quel " isset() " che non restituiva TRUE nel caso in cui si premesse il pulsante "Invio", cosa che invece accadeva se si cliccava col mouse. Per cui diceva di spostare la condizione IF su di un $_POST diverso .....

    Bho ?!:?

    Vi lascio il codice , se qualcuno riesce ad aiutarmi , la cosa è ovviamente ben gradita :

    
    <?php
    require_once("../include/config.php");
    $db_connection = mysql_connect ($DBHost, $DBUser, $DBPass) OR die ('Non riesco a connettermi: ' . mysql_error());
    $db_select = mysql_select_db ($DBName) or die ("Errore nella selezione del database: " . mysql_error());
    
    IF (isset($_POST['submit'])) {
    
    $emailpostata = $_POST['email'];
    
        // se non viene scritto niente resta lì
        if (empty ($email)){
        header ("location: recuperapassword.php");
        } 
    
    $verificamail = mysql_query("select * from $DBTab3 where email='$emailpostata'", $db_connection);
    $checkmail = mysql_num_rows($verificamail);
    
                                      
                            if (!$checkmail){
                            header ("location: recoverpassword.php?email=false");
                            }
                            else
                            {
                            header ("location: recoverpassword.php?email=true");
                            }
    
    
    } // fine if legato al submit
    
    else
    
    {
    
    ?>
    
    
    <html>
    <body>  
       
        <div>
                 <form name="record" action="" method="POST">
                <table border="0" class="main">
                  <tr>
                    <td>Type the  e-mail used to register :</td>
                  </tr>
                  <tr><td height="5"></td></tr>
                  <tr><td><input type="text" value="" name="email" size="30" /></td></tr>
                  <tr><td height="5"></td></tr>
                  <tr><td><input type="submit" value="Send" name="submit"/></td></tr>
                </table>
                </form>
        </div>
    
    </body>
    </html>
    <?php
    }
    ?>
    
    

  • User Attivo

    Supponiamo che non si facciano altri controlli per l'integrità dei valori, modifica

    [php]
    IF (isset($_POST['submit'])) {
    [/php]

    in

    [php]
    if( isset($_POST['campo1']) && isset($_POST['campo2']) && ....)
    [/php]

    cioè ignora il submit che hai messo e inserisci tutti i campi obbligatori che devi verificare.

    Una volta fatto ciò però, prima di inserire in campi nel database ti consiglio vivamente di fare controlli sull'effettiva integrità dei dati onde evitare spiacevoli soprese dovuto ad attacchi di tipo SQL-Injection o quant altro.

    Per maggiori chiarimenti sull'ultima parte basta chiedere e posso fornirti qualche link, non sei obbligato a farli perchè "funziona" anche senza, ma è fortemente consigliato per non incappare in problemi.


  • User Attivo

    Sempre molto gentile Dymyssy ,

    sei veramente da lodare .

    A prescindere dal discorso sopra , mi posteresti comunque i links ? sono argomenti mooooolto interessanti !!

    Grazie !!

    Tanaka


  • User Attivo

    Bè se mi consenti un pò di pubblicità ho trattato in piu articoli l'argomento sicurezza nel php:

    Se invece vuoi approfondire con letture in inglese, non sapendo la tua conoscenza non le ho postate ora, chiedi e te li passo volentieri.


  • User Attivo

    L' inglese lo mastico abbastanza bene , però al momento mi basta ciò che mi hai linkato .

    Grazie infinite , sei sempre gentilissimo e parlar econ te è un vero piacere .

    Un saluto ed un ringraziamento .

    tanaka


  • User Attivo

    Figurati,
    fa sempre piacere aiutare qualcuno quando si può.

    Nel frattempo ti auguro buona lettura, se hai ancora bisogno son qui!

    Ciao