Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45

    Problema Mail Form Require

    Ciao a tutti ho questo form mail, ma nonostante abbia cercato di mettere tutti i campi "obbligatori e richiesti", basta mettere il numero minimo di caratteri al messaggio e lasciare il resto dei campi vuoti che da comunque messaggio di successo senza errori, dove sbaglio?



    Codice PHP:
    <?php  
    if(isset($_POST['email'])) {       
         
    $email_to "miamailsito";     
    $email_subject "Website email";           
    function 
    died($error) {         
    // error         
    echo $error."
    "
    ;         
    echo 
    "Please go back and fix these errors.
    "
    ;         
    die();     }        
    // validation      
    if(!isset($_POST['name']) ||         
    !isset(
    $_POST['surname']) ||         
    !isset(
    $_POST['azienda']) ||         
    !isset(
    $_POST['comments']) ) {                 
          
    died('Siamo spiacenti, ma si sono verificati degli errori.');          
     }        
    $first_name $_POST['name'];     
    $last_name $_POST['surname']; 
    $azienda $_POST['azienda'];     
    $email_from $_POST['email'];    
    $comments $_POST['comments']; 
        
    $error_message "";    
    $string_exp "^[a-z .'-]+$";  
    if(
    preg_match('/$string_exp/i',$first_name)) {       

    $error_message .= 'Il Nome inserito non è valido.
    '
    ;   }   
    if(
    preg_match('/$string_exp/i',$last_name)) { 
          
    $error_message .= 'Il Cognome inserito non è vaildo.
    '
    ;   }   
    if(
    preg_match('/$string_exp/i',$azienda)) {    
       
    $error_message .= "Il nome dell'Azienda inserito non è valido.
    "
    ;   }     
    $email_exp "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";   
    if((
    $email_from != "") && preg_match('/$email_exp/i',$email_from)) {         
    //CHECKED IF THE EMAIL EXISTS       
    $error_message .= "L'indirizzo Email inserito non è valido.
    "
    ;   }   
    if(
    strlen($comments) < 5) {       
    $error_message .= 'Il Messaggio inserito non è valido.
    '
    ;   }       
    if(
    strlen($error_message) > 0) {       
    died($error_message);   }     


    $email_message "Dettagli.\n\n";        
    function 
    clean_string($string) {       
    $bad = array("content-type","bcc:","to:","cc:","href");      
     return 
    str_replace($bad,"",$string);     }        
    $email_message .= "Nome: ".clean_string($first_name)."\n";     
    $email_message .= "Cognome: ".clean_string($last_name)."\n";     
    $email_message .= "Azienda: ".clean_string($azienda)."\n";     
    $email_message .= "Email: ".clean_string($email_from)."\n";     
    $email_message .= "Messaggio: ".clean_string($comments)."\n";       
    // create email headers 
    $headers 'From: '.$email_from."\r\n"'Reply-To: '.$email_from."\r\n" 'X-Mailer: PHP/' phpversion(); @mail($email_to$email_subject$email_message$headers); } 
    ?> 
    <div id="contact"> Messaggio inviato con successo! Riceverete una risposta il più presto possibile.  [url="index.php?menu=contattaci"]Clicca qui per inviare un altro messaggio.[/url] </div

  2. #2
    Perchè dovrebbe? non hai inserito controlli, hai solo controllato se i campi nel POST esistono, isset controlla se esiste un valore, quindi dovresti controllare anche se i valori sono diversi da "".
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45
    Originariamente inviato da codencode
    Perchè dovrebbe? non hai inserito controlli, hai solo controllato se i campi nel POST esistono, isset controlla se esiste un valore, quindi dovresti controllare anche se i valori sono diversi da "".
    Ma con questa parte di codice
    Codice PHP:
    $first_name $_POST['name'];      
    $last_name $_POST['surname'];  
    $azienda $_POST['azienda'];      
    $email_from $_POST['email'];     
    $comments $_POST['comments']; 
    il _POST è validato anche se il campo è vuoto?

  4. #4
    $first_name = $_POST['name'];
    è un'operazione di assegnazione appunto significa poni
    $first_name uguale a $_POST['name'].
    Una istruzione di validazione può essere la seguente:
    Codice PHP:
    if($first_name==""){
         echo 
    "Errore"

    che appunto controlla se la variabile $first_name è vuota.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    In quello script non c'è nessun controllo per vedere se un utente ha digitato qualcosa.
    Ora ti posto un po di codice.
    Codice PHP:
    if(strlen($first_name) <= || ($first_name) == "")
    {
      Print 
    "il nome è troppo corto, oppure non hai inserito nulla";
       exit();

    strlen $nome_variabile, non fa altro che controllare la lunghezza dei caratteri che un untente ha inserito, nel mio caso ho messo che se un utente inserisce caratteri minori o uguale a 2 deve stampare l'errore, perchè credo non esistono nomi con caratteri minori di 2.
    Programmatore e responsabile seo della testata giornalistica www.europacalcio.it - www.canforagennaro.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45
    Originariamente inviato da Exitpeople
    In quello script non c'è nessun controllo per vedere se un utente ha digitato qualcosa.
    Ora ti posto un po di codice.
    Codice PHP:
    if(strlen($first_name) <= || ($first_name) == "")
    {
      Print 
    "il nome è troppo corto, oppure non hai inserito nulla";
       exit();

    strlen $nome_variabile, non fa altro che controllare la lunghezza dei caratteri che un untente ha inserito, nel mio caso ho messo che se un utente inserisce caratteri minori o uguale a 2 deve stampare l'errore, perchè credo non esistono nomi con caratteri minori di 2.
    Ottimo ora funziona il require, però ho dei problemi con la restrizione dei caratteri, ad esempio la mail me la passa in qualsiasi modo compresi i caratteri speciali... problema nelle _exp

  7. #7
    Ripulisici le variabile e metti i giusti metatag.
    Programmatore e responsabile seo della testata giornalistica www.europacalcio.it - www.canforagennaro.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45
    Originariamente inviato da Exitpeople
    Ripulisici le variabile e metti i giusti metatag.
    E' la prima volta che uso il "preg_match" usavo l' ereg(i) ormai obsoleto, è sbagliato la stringa del pattern? Vorrei capire così da non ripetere più l'errore...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.