• ModSenior

    [php]
    if(!isset($_POST["nome"]) || $_POST["nome"] == '')
    die('Nome mancante');
    [/php]


  • User

    Ho provato.. ma inserendo questo che mi hai detto tu.. seguito dagli altri cambiando solo la variabile.. mi dice che è vuoto solo il primo campo..
    Quindi mi compare il messaggio Nome mancante..
    Appena compilo il campo nome mi dice cognome mancante.. mentre invece voglio che mi dice manca questo, questo e quastaltro..


  • ModSenior

    Dovresti postare cosa hai fatto.


  • User

    [PHP]
    if(isset($_POST['submit']))
    {

    if(!isset($_POST["nome"]) || $_POST["nome"] == '')
    

    die('Nome mancante');
    if(!isset($_POST["cognome"]) || $_POST["cognome"] == '')
    die('Cognome mancante');
    if(!isset($_POST["indirizzo"]) || $_POST["indirizzo"] == '')
    die('Indirizzo mancante');
    if(!isset($_POST["tel"]) || $_POST["tel"] == '')
    die('Tel mancante');
    if(!isset($_POST["mail"]) || $_POST["mail"] == '')
    die('Mail mancante');
    if(!isset($_POST["prodotto"]) || $_POST["prodotto"] == '')
    die('Seleziona il Prodotto');

    // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
    $to = "[email protected]";

    // IL SOGGETTO DELLA MAIL
    $subject = "RICHIESTA PRODOTTO - TECNOWOODSHOP.IT";

    // COSTRUZIONE DEL CORPO DEL MESSAGGIO
    $body = "Contenuto del modulo:\n\n";

    $body .= "Dati personali ;\nCognome: " . trim(stripslashes($_POST["cognome"])) . "\n";
    $body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
    $body .= "Indirizzo: " . trim(stripslashes($_POST["indirizzo"])) . "\n";
    $body .= "Tel: " . trim(stripslashes($_POST["tel"])) . "\n";
    $body .= "Mail: " . trim(stripslashes($_POST["mail"])) . "\n";
    $body .= "Prodotto: " . trim(stripslashes($_POST["prodotto"])) . "\n";
    $body .= "Ricevere Newsletter?: " . trim(stripslashes($_POST["new"])) . "\n\n";

    // INTESTAZIONI SUPPLEMENTARI
    $headers = "From: Modulo utenti <INDIRIZZO-COME-SOPRA>";

    // INVIO DELLA MAIL
    if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "<div style="text-align:center;width:160px;color:#00ff00" align="center"><b>"."MAIL INOLTRATA."."</b></div>";

    }

    else {// ALTRIMENTI...

    echo "<div style="text-align:center;width:160px;color:red" align="center"><b>"."ERRORE MAIL."."</b></div>";

    }

    }

    ?>

    [/PHP]


  • ModSenior

    Invece di usare die sarebbe da usare echo e inserire una variabile flag per non inviare l'email in caso di errori, ma dovresti comunque studiare le basi di php.


  • User

    EeehhHHh!1 No scusami ho capito ben poco.. Siccome dovrei fare solo quest'ultima cosa.. ti chiedo umilmente se mi puoi aiutare.. Per quanto riguarda il php me lo devo insegnare.. ma per ora non ho tempo..


  • ModSenior

    [php]
    if(!isset($_POST["nome"]) || $_POST["nome"] == '')
    {
    $err = true;
    echo 'Nome mancante<br>';
    }
    if(!isset($_POST["cognome"]) || $_POST["cognome"] == '')
    {
    $err = true;
    echo 'Cognome mancante<br>';
    }
    if(!isset($_POST["indirizzo"]) || $_POST["indirizzo"] == '')
    {
    $err = true;
    echo 'Indirizzo mancante<br>';
    }
    if(!isset($_POST["tel"]) || $_POST["tel"] == '')
    {
    $err = true;
    echo 'Tel mancante<br>';
    }
    if(!isset($_POST["mail"]) || $_POST["mail"] == '')
    {
    $err = true;
    echo 'Mail mancante<br>';
    }
    if(!isset($_POST["prodotto"]) || $_POST["prodotto"] == '')
    {
    $err = true;
    echo 'Seleziona il Prodotto<br>';
    }
    if(isset($err))
    die;
    [/php]


  • User

    Grazie 🙂


  • ModSenior

    Ti ho già scritto il codice esatto veramente...
    Forse non hai visto la seconda pagina della discussione.


  • User

    Comunque vedi che il "$_POST["prodotto"]" è un menu a tendina.. Quindi non so come si deve procedere per questo? Penso che sia in ogni caso selezionato il menu a tendina.. Ma se io voglio che devi selezionare una voce differente da "Seleziona prodotto" per procedere come deve essere sto codice?? Comunque questa è l'ultima cosa che ti chiedo.. Prometto che non ti stresso più..


  • ModSenior

    Se invece di:

    
    <option>Seleziona il prodotto</option>
    
    

    Metti:

    
    <option value="">Seleziona il prodotto</option> 
    
    

    Funziona sicuramente.


  • User

    :DDD Grazie mille... Vorrei averle io le tue conoscenze 😞


  • ModSenior

    Basta studiare, e tanta pratica... E chiunque può imparare.


  • User

    Scusami ancora.. Una cosa che ho visto e che quando non compili un campo.. non ti è possibile tornare indietro per compilare quel campo mancante.. o.o come si può fare?


  • ModSenior

    La soluzione più veloce è questa:
    [php]
    if(!isset($_POST["nome"]) || $_POST["nome"] == '')
    {
    $err = true;
    echo 'Nome mancante<br>';
    }
    if(!isset($_POST["cognome"]) || $_POST["cognome"] == '')
    {
    $err = true;
    echo 'Cognome mancante<br>';
    }
    if(!isset($_POST["indirizzo"]) || $_POST["indirizzo"] == '')
    {
    $err = true;
    echo 'Indirizzo mancante<br>';
    }
    if(!isset($_POST["tel"]) || $_POST["tel"] == '')
    {
    $err = true;
    echo 'Tel mancante<br>';
    }
    if(!isset($_POST["mail"]) || $_POST["mail"] == '')
    {
    $err = true;
    echo 'Mail mancante<br>';
    }
    if(!isset($_POST["prodotto"]) || $_POST["prodotto"] == '')
    {
    $err = true;
    echo 'Seleziona il Prodotto<br>';
    }
    if(isset($err))
    die('<a href="javascript:history.back()">Torna indietro</a>');
    [/php]


  • User

    E nel caso in cui volessi che il messaggio mail inviata o errore mail.. comparisse come per l'errore del campo vuoto.. ovvero con il form che scompare come devo fare.. qui il codice di quel punto.

    [PHP] // INVIO DELLA MAIL
    if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...

    echo "<div style="text-align:center;width:160px;color:#00ff00;margin:0" align="center"><b>"."MAIL INOLTRATA."."</b></div>";

    }

    else {// ALTRIMENTI...

    echo "<div style="text-align:center;width:160px;color:red;margin:0" align="center"><b>"."ERRORE MAIL."."</b></div>";

    } [/PHP]


  • ModSenior

    Se ho ben capito cosa vuoi, dovresti mettere die invece di echo:
    [php]
    // INVIO DELLA MAIL
    if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...

    die("<div style="text-align:center;width:160px;color:#00ff00;margin:0" align="center"><b>"."MAIL INOLTRATA."."</b></div>");

    }

    else {// ALTRIMENTI...

    die("<div style="text-align:center;width:160px;color:red;margin:0" align="center"><b>"."ERRORE MAIL."."</b></div>");

    }
    [/php]