Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Form e controllo campi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360

    Form e controllo campi

    Salve ragazzi,

    ho creato un form e nel PHP volevo mettere un controllo che se i campi
    nome
    cognome
    email
    non contengono dati, il modulo non deve essere inviato.

    Questo è quello che metto nel PHP
    Codice PHP:
    if ($nome == '') { die("<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Compila il campo nome.</div>"); }
    if (
    $cognome == '') { die("<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Compila il campo cognome.</div>"); }
    if (
    $email == '') { die("<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Compila il campo email.</div>"); } 
    Forse non ho concatenato bene i controlli, mi da sempre che devo compilare il campo nome anche se è compilato, gli altri non li vede.

    Dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    159
    Non è più comoda qualcosa di questo tipo?
    Codice PHP:
    if (empty($_POST['nome']) || empty($_POST['cognome']) || empty($_POST['email']) {
        echo 
    "Compilare tutti i campi";
    } else {
        
    //Qui elabori i dati


  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Originariamente inviato da freenetw
    Non è più comoda qualcosa di questo tipo?
    Codice PHP:
    if (empty($_POST['nome']) || empty($_POST['cognome']) || empty($_POST['email']) {
        echo 
    "Compilare tutti i campi";
    } else {
        
    //Qui elabori i dati

    Hai ragione! Ho un problema però, visto che uso questo codice
    Codice PHP:
    // L'INDIRIZZO DEL DESTINATARIO DELLA E-MAIL
    $to "info@email.com";

    $from stripslashes($_REQUEST['fromname'])."<".stripslashes($_REQUEST['fromemail']).">";

    // PER INVIARE E-MAIL IN FORMATO HTML, SI DEVE IMPOSTARE L'INTESTAZIONE CONTENT-TYPE
    $intestazioni  "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=UTF-8\r\n";

    // L'OGGETTO DELLA E-MAIL
    $subject "oggetto;

    // COSTRUZIONE DEL CORPO DEL MESSAGGIO
    $body = "Nome" . trim(stripslashes($_POST["nome"])) . "\n";
    $body .= "Cognome" . trim(stripslashes($_POST["cognome"])) . "\n";
    $body .= "E-mail" . trim(stripslashes($_POST["email"])) . "\n\n";
    $body .= "Note" . trim(stripslashes($_POST["note"])) . "\n";

    // INTESTAZIONI SUPPLEMENTARI
    $headers = "From" . stripslashes($_REQUEST['nome']) ." ". stripslashes($_REQUEST['cognome'])."<".stripslashes($_REQUEST['email']).">";

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

    echo "
    <div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Il modulo e' stata inviato con successo.</div>";

    } else {
    // ALTRIMENTI...

    echo "<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Si sono verificati dei problemi nell'invio del modulo.</div>.";

    }

    ?> 
    mi va in pagina bianca perché c'è già in fondo un IF. Come dovrei impostare la cosa?

    Grazie!

  4. #4
    Devi modificare il codice:

    Codice PHP:
    // INVIO DELLA E-MAIL 
    if(mail($to$subject$body$headers$intestazioni)) { // SE L'INVIO E' ANDATO A BUON FINE... 

    echo "<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Il modulo e' stata inviato con successo.</div>"

    } else {
    // ALTRIMENTI... 

    echo "<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Si sono verificati dei problemi nell'invio del modulo.</div>."


    con:

    if (controlla i dati)
    else
    elabora i dati ( mail£to, $ subject, etc, etc, etc,)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Ho provato in questo modo ma non va
    Codice PHP:
    <?php

    if (empty($_POST['nome']) || empty($_POST['cognome']) || empty($_POST['email']) { 
        echo 
    "Compilare tutti i campi."
    } else { 

    // L'INDIRIZZO DEL DESTINATARIO DELLA E-MAIL
    $to "info@com";

    $from stripslashes($_REQUEST['fromname'])."<".stripslashes($_REQUEST['fromemail']).">"

    // PER INVIARE E-MAIL IN FORMATO HTML, SI DEVE IMPOSTARE L'INTESTAZIONE CONTENT-TYPE 
    $intestazioni  "MIME-Version: 1.0\r\n"
    $intestazioni .= "Content-type: text/html; charset=UTF-8\r\n"

    // L'OGGETTO DELLA E-MAIL 
    $subject "oggetto; 

    // COSTRUZIONE DEL CORPO DEL MESSAGGIO 
    $body = "Nome" . trim(stripslashes($_POST["nome"])) . "\n"; 
    $body .= "Cognome" . trim(stripslashes($_POST["cognome"])) . "\n"; 
    $body .= "E-mail" . trim(stripslashes($_POST["email"])) . "\n\n"; 
    $body .= "Note" . trim(stripslashes($_POST["note"])) . "\n"; 

    // INTESTAZIONI SUPPLEMENTARI 
    $headers = "From" . stripslashes($_REQUEST['nome']) ." ". stripslashes($_REQUEST['cognome'])."<".stripslashes($_REQUEST['email']).">"; 

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

    echo "
    <div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Il modulo e' stata inviato con successo.</div>"

    } else {
    // ALTRIMENTI... 

    echo "<div style=\"font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;\">Si sono verificati dei problemi nell'invio del modulo.</div>."


    }

    ?>
    Sempre pagina bianca.

  6. #6
    Ciao...qui:
    // L'OGGETTO DELLA E-MAIL
    $subject = "oggetto;
    ti manca la chiusura della stringa...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Originariamente inviato da albx87
    Ciao...qui:


    ti manca la chiusura della stringa...
    Hai ragione ma non va ugualmente, c'è sicuramente qualche altra cosa che non va, ma non riesco ad identificarla.

  8. #8
    hai provato a mettere un error_reporting in cima allo script?!
    Tipo:

    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    // il resto dello script....
    ?>

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Originariamente inviato da albx87
    hai provato a mettere un error_reporting in cima allo script?!
    Tipo:

    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    // il resto dello script....
    ?>
    Grazie per l'aiuto, l'ho fatto ma mi da solo pagina bianca!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    360
    Ho risolto mettendo in testa questo
    Codice PHP:
    // RECUPERO I DATI DEI CAMPI
    $nome    trim(stripslashes($_POST["nome"]));
    $cognome trim(stripslashes($_POST["cognome"]));
    $email   trim(stripslashes($_POST["email"]));

    // CONTROLLO I CAMPI OBBLIGATORI
    if($nome    == '') die('<div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">Non hai inserito il tuo nome.

    [url="javascript:parent.window.location.reload()"]Chiudi modulo[/url]</div>'
    );
    if(
    $cognome == '') die('<div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">Non hai inserito il tuo cognome.

    [url="javascript:parent.window.location.reload()"]Chiudi modulo[/url]</div>'
    );
    if(
    $email   == '') die('<div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">Non hai inserito l\'e-mail.

    [url="javascript:parent.window.location.reload()"]Chiudi modulo[/url]</div>'
    ); 

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.