Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    9

    parametro sbagliato in send mail ma non capisco quale

    Ciao a tutti, anche dall'australia siete il mio punto di riferimento...motivo per cui l'ora è un po' tarda ma se c'è qualche sonnambulo...
    Questo è il mio forum semplicissimo
    <form class="row" method="post" action="mailto.php">
    <div class="span6">
    <input type="text" name="nome" placeholder="You Name *" class="span6 left">
    <input type="email"name="email" placeholder="You Email *" class="span6 left">
    </div>
    <div class="span6">
    <textarea placeholder="Any comment *" name="messaggio" class="span6 right"></textarea>
    <input type="submit" value="invia" class="pull-right btn btn-primary bottom">
    </div>
    </form>
    questo è il mio codice php
    <?php
    $oggi = date("j F Y G:i");
    $sito = "http://www.miosito.it";
    $ip = "$_SERVER[REMOTE_ADDR]";
    $browser = "$_SERVER[HTTP_USER_AGENT]";
    $to = "miamail@gmail.com";
    $soggetto = "Modulo da $sito";


    if(trim($_POST['nome']) == "" OR trim($_POST['email']) == "" OR trim($_POST['messaggio']) == "" ) {
    echo "<font color=\"#FF0000\" face=\"verdana\" size=\"2\">Tutti i campi sono obbligatori</font>";

    }
    else {
    echo "Tutti i campi risultano completi procedo all'invio dell'email</br>";

    $body = "Modulo inviato il $oggi da $ip - $browser \n\n";
    $body .= "Nome: $_POST[nome] \nEmail: $_POST[email] \n";
    $body .= "Oggetto: $_POST[a]\n";
    $body .= "Messaggio: $_POST[messaggio]";

    if(!mail("$to","$soggetto", "$body")){
    echo "Attenzione! un problema nella funzione mail ha impedito l'invio </br> Contattaci telefonicamente oppure inviaci una mail";
    }else {
    echo "Email inviata correttamente a $to";
    }
    }
    ?>

    ma non funziona!!!! qualcuno sarebbe così gentile da spiegarmi eprchè? probabilmenre è $body ma non riesco a capire come modificarlo...

  2. #2
    Potresti creare una class, in questo modo una volta provata saresti sicuro del suo funzionamento, potresti chiamarla molte volte e se qualcosa non va saprai che dipende dallo script che stai facendo e non dall'invio email. Guarda questo esempio:

    codice:
    class classEmail
    {
    	var $from = NULL;
    	var $to = NULL;
    	var $subject = NULL;
    	var $body = NULL;
    	
    	function htmlMail()
    	{
    		$header = "MIME-Version: 1.0\n".
    				  "Content-type: text/html; charset=utf-8"."\n".
    				  "From: ".$this->from."\n".
    				  "Reply-To: ".$this->from."\n" ;
    		
    		return mail($this->to,$this->subject,$this->body,$header) ;
    	}
    }
    e per chiamarla dal tuo script potresti procedere in questo modo

    codice:
    function __autoload($class_name){ include "class/$class_name.php" ; }
    
    
    $email = new classEmail;
    $email->from = 'esempiofrom@dominio.it';
    $email->to = 'esempioto@dominio.it';
    $email->subject = 'Ciao, questo è un esempio';
    $email->body = 'Ciao, questo è un esempio di invio email';
    $email->htmlMail();
    La funzione __autoload serve a fare l'include della class senza dichiararlo, in questo caso è inutile poiché si tratta di una sola class quindi bastava un include, però se hai bisogno di fare diversi include di class allora basterà scrivere quel rigo e verrà fatto in automatico l'include di tutte le class che utilizzerai. La class che ho messo come esempio è funzionante, è quella che utilizzo nel form di contatti del sito www.nisper.it è semplice e garantisce

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.