Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    come dire se il record inserito non è corretto allora non copiarlo nel database

    ho elaborato questo codice che in pratica mi prende i dati inseriti da una form e li inserisce in un database dopo aver verificato se l'indirizzo e-mail è valido richiamando un altro script che controlla la validità della mail, vorrei ora fare un controllo sugli altri campi dicendo che se uno qualsiasi dei campi è vuoto, o non valido allora il record non deve essere inserito nel db, mentre col codice che ho gia mi dice semplicemente record inserito con successo, o indirizzo e-mail non valido ma nonostante questo inserisce comunque il record nel db grazie in anticipo
    codice:
    <?php
    // CONNESSIONE AL DATABASE
    include('connect.php');
    // RECUPERA DATI DAL FORM
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $indirizzo = $_POST['indirizzo'];
    $email = $_POST['email'];
    include('chkmail.php');
    $telefono = $_POST['telefono'];
    // INSERISCI NUOVO ARTICOLI IN DATABASE
    $query = "INSERT INTO `datiform` ( `nome` , `cognome` , `indirizzo` , `email` , `telefono`)
    VALUES ( '$nome', '$cognome', '$indirizzo', '$email', '$telefono')";
    if (mysql_query($query)) {
    echo "<div align=center class=testo> <b>Record inserito con successo.</b></div>";
    } else {
    echo "<div align=center class=testo> <b>Errore di inserimento record: ". mysql_error()
    ."</b></div>";
    }
    ?>
    Ultima modifica di ShAdOw WaLkEr; 18-05-2015 a 15:07

  2. #2
    up

  3. #3
    Magari con un IF ???
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    9
    Uno modo molto semplice è quello di validare ogni campo con una if prima di eseguire la query d'inserimento esempio:
    if (nome != "" AND cognome != "" AND indirizzo != "" AND email != "" AND telefono !="")
    {
    eseguire query
    }
    else
    {
    non esegui query
    }
    Ultima modifica di L_C; 18-05-2015 a 15:57

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    205
    Per evitare i campi vuoti ti basta inserire in ogni <input> la voce "required"

    codice:
     <input type="text" name="nome" required>
    In questo modo, se l'utente preme invio senza aver inserito dei dati, non viene inviato niente e compare una "finestra" con scritto di riempire il campo.
    Sito Modellismo (Non ancora completo)

  6. #6
    ho ottenuto questo codice che in pratica prende i dati da un form li pubblica in un db se sono corretti e poi prendendo un codice da un'altra tabella codici lo visuallizza nel messaggio quando vengono inviati i dati, ora vorrei fare in modo che il codice preso da quella tabella possa essere preso solo una volta, ho aggiunto alla tabella codici il campo stato e ora vorrei fare che se il codice viene stampato stato diventa=1 e a quel punto dire che se stato=1 il codice non lo prendo, mi dite come potrei fare?
    codice:
    // RECUPERA DATI DAL FORM
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $indirizzo = $_POST['indirizzo'];
    $email = $_POST['email'];
    $telefono = $_POST['telefono'];
    
    if (($nome=="") || ($cognome=="") || ($indirizzo=="") || ($email=="") || ($telefono==""))  {echo "non c'è scritto nulla";}
    else if(!preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email)) {
        echo "email non valida";
    }
    else {
        // CONNESSIONE AL DATABASE
        include('connect.php');
        // INSERISCI NUOVO ARTICOLI IN DATABASE
        $query = "INSERT INTO `datiform` ( `nome` , `cognome` , `indirizzo` , `email` , `telefono`)
        VALUES ( '$nome', '$cognome', '$indirizzo', '$email', '$telefono')";
        if (mysql_query($query)) {
            echo "Record inserito con successo";
            $query = "SELECT codice FROM codici ORDER BY RAND() limit 1";
            $result = mysql_query($query);
            while ($riga = mysql_fetch_object($result)){
                echo $riga-> codice;
            }
        } else {
            echo "Errore di inserimento record: ". mysql_error();
        }
    }

  7. #7
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Direi che potrebbe essere sensibilmente migliorato.
    Iniziamo col dire che isset è buono e giusto; poi suggerisco di usare real_escape_string o anche strip_tags.
    Per pulire ancora meglio puoi predisporti una tua funzione di "sistemazione" delle stringhe, per limitare ad esempio la lunghezza massima.

  8. #8
    Quote Originariamente inviata da MySQL Visualizza il messaggio
    Direi che potrebbe essere sensibilmente migliorato.
    Iniziamo col dire che isset è buono e giusto; poi suggerisco di usare real_escape_string o anche strip_tags.
    Per pulire ancora meglio puoi predisporti una tua funzione di "sistemazione" delle stringhe, per limitare ad esempio la lunghezza massima.
    grazie della risposta, ma non hai risposto alla mia domanda, come li dico che quando un codice viene preso alla riga corrispondente il campo stato diventa in sostanza stato= stato+1 io avevo pensato a una cosa simile
    codice:
    mysql_query("UPDATE codici SET stato = (stato + 1) WHERE codice = '$result' ");
    ma non va, e allo stesso modo come faccio l'if dicendo che se stato=0 allora lo prendo altrimento no?

  9. #9
    up

  10. #10
    Quote Originariamente inviata da ShAdOw WaLkEr Visualizza il messaggio
    up
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.