Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problemino condizionale PHP

    Salve a tutti, nel sito che sto costruendo c'è un modulo per l''invio di dati ad una mail.
    Dovrebbe inviare la mail in caso tutti i campi siano compilati e visualizzare per 3 secondi una pagina con la scritta " La sua prenotazione è stata inoltrata, grazie. ".
    Nel caso qualche campo non venga compilato ,e venga premuto il bottone prenota, la mail non dovrebbe essere inviata ( cosa che invece fa ) e la pagina visualizzata per 3 secondi dovrebbe contenere il seguente testo " Completare tutti i campi richiesti " ( invece viene visualizzata allo stesso modo "La sua prenotazione è stata inoltrata, grazie."
    Se qualcuno sa correggermi questo problema mi farebbe un grande favore.

    Questo è il codice PHP per la mail:

    <?php
    $to = "MIA_EMAIL";

    $subject = "Prenotazione";

    $body = "Dati per la prenotazione:\n\n";

    $body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
    $body .= "Cognome: " . trim(stripslashes($_POST["cognome"])) . "\n";
    $body .= "Data di arrivo: " . trim(stripslashes($_POST["dataarrivo"])) . "\n";
    $body .= "Data di partenza: " . trim(stripslashes($_POST["datapartenza"])) . "\n";
    $body .= "Adulti: " . trim(stripslashes($_POST["adulti"])) . "\n";
    $body .= "Bambini: " . trim(stripslashes($_POST["bambini"])) . "\n";
    $body .= "Telefono: " . trim(stripslashes($_POST["telefono"])) . "\n";
    $body .= "Trattamento: " . trim(stripslashes($_POST["trattamento"])) . "\n";

    $headers = "From: Modulo prenotazione";

    if(@mail($to, $subject, $body, $headers)) {
    echo "<center>La sua prenotazione &egrave stata inoltrata, grazie.</center>";
    echo "<SCRIPT>";
    $url = "http://provasiticd.altervista.org/";
    header("Refresh: 3; URL=\"$url\"");
    echo "</SCRIPT>";
    } else {
    echo "<center>Completare tutti i campi richiesti</center>";
    echo "<SCRIPT>";
    $url = "http://provasiticd.altervista.org/";
    header("Refresh: 3; URL=\"$url\"");
    echo "</SCRIPT>";
    }

    ?>

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Nel tuo codice l'unico controllo che fai è sul risultato della funzione mail. Non puoi usarla per verificare se tutti i campi sono regolari.

    Invece devi controllare che i campi siano compilati e che siano del tipo giusto (ad es. una mail deve essere verificata con una espressione regolare che verifica che l'indirizzo sia corretto).
    Se non ci sono errori allora invii la mail con mail()

  3. #3
    Non è un problema il verificare se è una mail o tutti quei controlli, sarebbe sufficiente un controllo sui campi che permetta: c'è scritto qualcosa ( non importa cosa ) su tutti i campi ?
    si --> allora invia la mail e dai messaggio di conferma
    no ---> allora non inviare la mail e dai il messaggio di errore
    è un modulo molto semplice e non voglio sprecare tempo per creare php che controllino il contenuto di ogni casella per vedere se è reale e corretto, mi basta che siano scritti tutti i campi.

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.