Visualizzazione risultati 1 fino 7 di 7

Discussione: Form non invia email automaticamente

  1. #1
    Guest

    Unhappy Form non invia email automaticamente

    Ciao a tutti. Ho un problema con un form per l'invio di email.

    questa è la pagina nella quale ho inserito il form.

    Il problema è che quando clicco su invia, mi apre thunderbird per inviare la mail. Io voglio che una volta cliccato su invia, mi invii la mail direttamente a me, senza utilizzare nient'altro oltre la pagina web. Grazie :)

    il codice è il seguente:

    Codice PHP:
    <?php
    //raccogliamo le variabili inviate
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $messaggio=$_POST['messaggio'];
    $Submit=$_POST['Submit'];
    //controlliamo che sia stato inviato il form
    if($Submit=='Invia!'){
    //controlliamo che siano stati inseriti tutti i dati
    if(!empty($nome) and !empty($email) and !empty($messaggio)){
    //inviamo l'email
    $mail=mail("sama9@hotmail.it", "emailsito", $messaggio);
    //controlliamo che la mail sia stata inviata correttamente
    if($mail){
    //messaggio in caso di successo
    $ok="Email inviata!";
    }
    else{
    //messaggio in caso di errore
    $errore="Non è stato possibile inviare l'email, riprova.";
    }
    }
    else{
    //messaggio in caso di campi mancanti
    $errore="Tutti i campi sono obbligatori!";
    }
    }
    ?>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="./reset.css"/>
    <link rel="stylesheet" href="./style2.css"/>
    <head>
    <title>Marco Sam&agrave;</title>
    </head>

    <body>
    <div id="main_wrapper">
    <div id="main_wrapper2">
    <div id="header">
    <ul id="menu">
    <li id="logo"><img src="img/logo.png" /></li>
    <li class="vociattuale"><img class="quadri" src="img/quadro.png" /> CONTATTI</li>
    <li class="voci"><a class="vocix" href="Portfolio.php"><img class="quadri" src="img/quadro2.png" />PORTFOLIO</a></li>
    <li class="voci"><a class="vocix" href="AboutMe.php"><img class="quadri" src="img/quadro2.png" />ABOUT ME</a></li>
    <li class="voci"><a class="vocix" href="Home.php"><img class="quadri" src="img/quadro2.png" />HOME</a></li>
    </ul>
    </div>

    <div id="contenuto">
    <div id="contenuto2">
    <ul id="presentazione2">
    <li id="gd2"> Scrivimi una mail <br /> <br /> </li>
    <li id="txt">
    <form action="mailto:sama9@hotmail.it" method="post" sourceindex="0">
    <label for="nome">
    <span>

    Nome e Cognome / Azienda<br>
    </span>
    <input name="nome" type="text" id="nome" value="" size="40" sourceindex="1"><br>
    </label>
    <label for="tel">
    <span>

    Indirizzo E-mail
    </span>
    <br>
    <input name="email" type="text" id="email" value="" size="40" sourceindex="2">
    </label>
    <label for="msg">
    <span class="no_ast">

    <br>
    Messaggio<br>
    </span>
    <textarea name="msg" cols="40" rows="4" id="msg" sourceindex="3"></textarea>
    <br>
    </label>
    <input class="submit" type="submit" value="Invia" sourceindex="4">
    </form>
    </li>
    </ul>
    </div>
    </div>

    <div id="footer">
    <div id="footer2">
    <ul id="menu">
    <span id="copy">COPYRIGHT &copy; 2013 MARCO SAM&Agrave;</span>
    </ul>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>
    Ultima modifica di marcosama : 27-06-2013 alle ore 13.31.46

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,672

    Predefinito

    L'action del form deve essere la pagina PHP stessa: i dati deve inviarli a quella pagina (Contatti.php).

    Ciao!

  3. #3
    Guest

    Predefinito

    scusa, non sono molto esperto.

    Devo cambiare

    <form action="mailto:sama9@hotmail.it" method="post" sourceindex="0">

    con

    <form action="mailto:Contact.php" method="post" sourceindex="0">

    ?

    se si, ho provato a fare così ma il risultato non cambia :(

    edit:
    mettendo <form action="Contact.php" method="post" sourceindex="0"> non mi esce niente, ma ancora non ho ricevuto nessuna mail...
    Ultima modifica di marcosama : 27-06-2013 alle ore 13.54.28

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da marcosama Visualizza messaggio
    scusa, non sono molto esperto.

    Devo cambiare

    <form action="mailto:sama9@hotmail.it" method="post" sourceindex="0">

    con

    <form action="mailto:Contact.php" method="post" sourceindex="0">7

    ?

    se si, ho provato a fare così ma il risultato non cambia :(
    Non puoi mandare una mail direttamente da un form (action="indirizzo@mail).
    Devi inviare il form coi dati ad una pagina PHP che si occuperà di gestire i dati ricevuti e inviare la/le mail. Chiaro che devi scrivere tutto il codice PHP nella pagina che riceve. Se non esiste nessuna pagina contact.php chiaro che non saranno inviate mail...

  5. #5
    Guest

    Predefinito

    ok grazie mille :)

    Ho cercato un po' su internet e sono riuscito a raggiungere un buon compromesso.

    Ora le mail mi arrivano, con

    mittente: Apache (apache@ns196.altervista.org) --> non so perchè esce questo indirizzo.
    oggetto: ho messo che mi esce il nome di chi mi ha inviato il messaggio
    e-mail: nel testo come prima cosa c'è l'indirizzo e-mail del mittente e sotto il suo testo ^^

    Ora ho un'ultima domanda:posso riuscire a mettere come mittente l'indirizzo e-mail del mittente? (se è troppo complicato, lasciate stare :) )

    Questo è il codice utilizzato

    Codice PHP:
    <?php
    //raccogliamo le variabili inviate
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $messaggio=$_POST['messaggio'];
    $Submit=$_POST['Submit'];

    //controlliamo che sia stato inviato il form
    if($Submit=='Invia'){
    //controlliamo che siano stati inseriti tutti i dati
    if(!empty($nome) and !empty($email) and !empty($messaggio)){
    //inviamo l'email
    $mail=mail("sama9@hotmail.it", "$nome", $messaggio, $email);
    //controlliamo che la mail sia stata inviata correttamente
    if($mail){
    //messaggio in caso di successo
    $ok="Email inviata!<br/>";
    }
    else{
    //messaggio in caso di errore
    $errore="Non &egrave; stato possibile inviare l'email, riprova.<br/>";
    }
    }
    else{
    //messaggio in caso di campi mancanti
    $errore="Tutti i campi sono obbligatori!<br/>";
    }
    }
    ?>

    Codice HTML:
    <?php if(isset($errore)){ echo $errore; }else{ if(isset($ok)){ echo $ok; } } ?>
    
    <form name="mailform" method="post" action="<? $_SERVER['../AppData/Local/Temp/Rar$DIa0.457/PHP_SELF'] ?>">
    Nome e Cognome / Azienda<br />
    <input type="text" name="nome" /><br />
    Indirizzo E-mail <br />
    <input type="text" name="email" />
    <br />
    Messaggio
    <textarea name="messaggio" cols="40" rows="4"></textarea>
    <input type="submit" name="Submit" value="Invia" />
    <input type="reset" name="Submit2" value="Cancella" />
    </form>
    
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script>

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,672

    Predefinito

    prima di rispondere alla domanda: che è sta cosa?
    Codice PHP:
    action="<? $_SERVER['../AppData/Local/Temp/Rar$DIa0.457/PHP_SELF'] ?>
    Dentro $_SERVER[''] andrebbe soltanto PHP_SELF!

    Tornando al mittente: devi modificare:

    Codice PHP:
    $mail=mail("sama9@hotmail.it", "$nome", $messaggio, $email);
    Con:
    Codice PHP:
    $mail=mail("sama9@hotmail.it", "$nome", $messaggio, 'From: '.$email);
    Vedi qui per ulteriori dettagli sulla mail().

    EDIT:
    Non sarebbe male prima filtrare $email tramite la filter_var(), passando come secondo parametro FILTER_SANITIZE_EMAIL e poi ricontrollarla con FILTER_VALIDATE_EMAIL.

    p.s: ieri nel primo messaggio avevo "censurato" l'email, per evitare che gli spam bot ti riempissero la casella di posta di spam. Poi ho visto che l'hai riscritta, quindi ho lasciato stare...

    Ciao!
    Ultima modifica di alemoppo : 28-06-2013 alle ore 12.26.43

  7. #7
    Guest

    Predefinito

    okey grazie mille :)

    problema risolto ^^

    Potete chiudere =)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •