Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Invio E-mail

  1. #1

    Invio E-mail

    Da un form inserendo la propia e-mail dovrebbe inviare un messaggio a quell'indirizzo di posta elettronica. Ecco il codice HTML:
    Codice PHP:
    <form name="upload" id="upload" method="post" action="libreria.php" enctype="multipart/form-data" style="text-align:center">
        

        
    E-mail <input type="text" name="emailmittente">
        

    </
    form
    Ecco il codice PHP:
    Codice PHP:
    <?php
        
    if(!$risultato ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$"$emailmittente))
            {
                echo 
    " Questa $emailmittente non &egrave una email valida 
    "
    ;
            }
        else
        {
            
    $messaggio="";
            
    $messaggio .="Ciao, ti &egrave stata mandata una email da noi ";
            
    $oggetto="Modulo inviato dal sito [url]www.esempio.it[/url]";
            
    mail($oggetto,$messaggio);
            echo 
    "Le &egrave stata inviata una e-mail";
        }
    ?>
    Ecco ciò che compare:

    Notice: Undefined variable: emailmittente in C:\Program Files (x86)\EasyPHP-5.4.0RC4\www\libreria.php on line 2

    Deprecated: Function ereg() is deprecated in C:\Program Files (x86)\EasyPHP-5.4.0RC4\www\libreria.php on line 2

    Notice: Undefined variable: emailmittente in C:\Program Files (x86)\EasyPHP-5.4.0RC4\www\libreria.php on line 4
    Questa non è una email valida

    Consigli?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    intanto recupera il valore del form anteponendo nello script di gestione:

    Codice PHP:
    $emailmittente $_POST['emailmittente']; 
    mentre per ereg puoi anteporre "@" per togliere l'avviso o cambiare funzione con quelle nuove...

  3. #3
    Originariamente inviato da eiyen
    intanto recupera il valore del form anteponendo nello script di gestione:

    Codice PHP:
    $emailmittente $_POST['emailmittente']; 
    mentre per ereg puoi anteporre "@" per togliere l'avviso o cambiare funzione con quelle nuove...
    Quoto.
    Usa preg_match() al posto di ereg()

  4. #4
    Ok. Ho modificato il codice così:

    Codice PHP:
    <?php
        $emailmittente 
    $_POST['emailmittente'];
        if(!
    $risultato preg_match("^[^@ ]+@[^@ ]+\.[^@ \.]+$"$emailmittente))
            {
                echo 
    " Questa $emailmittente non &egrave una email valida 
    "
    ;
            }
        else
        {
            
    $messaggio="";
            
    $messaggio .="Ciao, ti &egrave stata mandata una email da noi ";
            
    $oggetto="Modulo inviato dal sito [url]www.esempio.it[/url]";
            
    mail($emailmittente,$oggetto,$messaggio);
            echo 
    "Le &egrave stata inviata una e-mail";
        }
    ?>
    Però compare:

    Warning: preg_match(): Unknown modifier '@' in C:\Program Files (x86)\EasyPHP-5.4.0RC4\www\libreria.php on line 3
    Questa mymail@hotmail.it non è una email valida!

  5. #5
    Anche se ha poco senso validare una mail dato che i casi possibili sono davvero molti, prova ad utilizzare:

    Codice PHP:
    if (!filter_var($emailFILTER_VALIDATE_EMAIL)) {
        
    // ERRORE!!!
    } else {
        
    // EMAIL CORRETTA

    che fai prima.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Ecco qui, ma nuovamente errore:



    Codice PHP:
    <?php
        $emailmittente 
    $_POST['emailmittente'];
        if (!
    filter_var($emailmittenteFILTER_VALIDATE_EMAIL)) 
            {
                echo 
    " Questa E-mail ($emailmittente) non &egrave valida. 
    "
    ;
            }
        else
        {
            
            
    $intestazioni="From: Sito<>\n";
            
    $intestazioni.="Reply-To: $emailmittente";
            
    $messaggio="messaggio ";
            
    $messaggio .="messaggio";
            
    $oggetto="Modulo inviato dal Sito [url]www.esempio.com[/url]";
            
    mail($emailmittente,$intestazioni,$oggetto,$messaggio);
            echo 
    "Le &egrave stata inviata una E-mail";
        }
    ?>
    Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files (x86)\EasyPHP-5.4.0RC4\www\libreria.php on line 15

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dovresti aprire un nuovo topic: si tratta di cambiare le impostazioni php e/o aggiungere headers da passare alla funzione mail

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.