Visualizzazione risultati 1 fino 12 di 12

Discussione: mail ricevute da form mail

  1. #1
    Guest

    Predefinito mail ricevute da form mail

    Salve a tutti,
    stò realizzando per un'associazione un piccolo sito molto basilare, solo html, css e javascript, solo ke ora mi si è posto il problema di creare un form per le mail di contatto.
    Il problema è questo, il form sembra perfettamente funzionante, ma la mail che ricevo non ha come mittente la mail scritta nel form, ma un certo apache@ns141.altervista.org... Ho cercato un pò sul web, ma nn sono riuscito a venirne a capo. Pensando fosse un problema della mail impostata, ho anche cambiato mail, ma il risultato non cambia...
    Qualche consiglio?
    Lascio il mio mail.php
    Codice:
    <?php
    // ************Inizio Configurazione***************
    //Indirizzo emai a cui inviare i msg
    $mailto = "mailacuiinviare@gmail.com";
    //Oggetto della mail
    $subject = "Contatti";
    //Pagina da mostrare dopo l'invio
    $redirect = "inviata.html";
    // ************Fine Configurazione****************
    
    
    foreach($HTTP_POST_VARS as $key => $value) {
    
    $message .= $key . ': ' . $value;
    $message .= "\n";
    
    }
    if (@mail($mailto, $subject, $message)) {
    
    header("Location: $redirect");
    } else {
    // Messaggio in caso di errore
     echo('
    
    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
    }
    ?>
    Questo il form html:
    Codice HTML:
    			<form name="form1" id="form1" method="post" action="mail.php">
    				<p>Nome</p>
    					<p><input type="text" name="nome" /></p>
    				<p>Cognome</p>
    					<p><input type="text" name="cognome" /></p>
    				<p>Email</p>
    					<p><input type="text" name="email" /></p>
    				<p>Contenuto</p>
    					<p><textarea name="contenuto" cols="50" rows="10"></textarea></p>
    					<p><input name="Invia" type="submit" value="Invia" /></p>
    			</form>
    P.s. Il sito è hostato su altervista :P
    Ultima modifica di maemoincrys : 02-08-2011 alle ore 12.57.41

  2. #2
    Guest

    Predefinito

    Codice PHP:
    <?php
    // ************Inizio Configurazione***************
    //Indirizzo emai a cui inviare i msg
    $mailto = "mailacuiinviare@gmail.com";
    //Oggetto della mail
    $subject = "Contatti";
    //Pagina da mostrare dopo l'invio
    $redirect = "inviata.html";
    // Chi manda l' emil
    $headers = "From: tuamail@mail.it";
    // ************Fine Configurazione****************


    foreach($HTTP_POST_VARS as $key => $value) {

    $message .= $key . ': ' . $value;
    $message .= "\n";

    }
    if (@
    mail($mailto, $subject, $message, $headers)) {

    header("Location: $redirect");
    } else {
    // Messaggio in caso di errore
    echo('

    Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>'
    );
    }
    ?>

  3. #3
    Guest

    Predefinito

    Scusami ma nn ho capito... -.-'

  4. #4
    Guest

    Predefinito

    Prova questo ;) Lo uso attuamente sul mio sito e funziona bene => Creare un semplice modulo di contatto in PHP
    Ultima modifica di newshardware : 02-08-2011 alle ore 14.49.42

  5. #5
    Guest

    Predefinito

    Cosa non hai capito?

    Ti ho postato il codice con l' aggiunta di:

    Codice PHP:
    $headers = "From: tuamail@mail.it";
    che modifica il nome di chi invia l' email.

  6. #6
    Guest

    Predefinito

    @mybeatnews
    scusa, avevo letto così di sfuggita e pensavo avessi soltanto ricopiato il codice... xD

    @newshardware
    Questo funziona alla perfezione, ma x mia curiosità, cercherò di capire cosa nn và nel mio vecchio medoto :D

    EDIT:

    Ok, optato per lo script di newshardware.. XD
    Ora ho solo un piccolo problema, ho inserito anche un captcha, viene visualizzato correttamente, se il campo apposito è vuoto mi stampa un echo di errore, ma se lo riempio con una lettera, che nn c'entra niente con il captcha, la mail parte lo stesso, ci stò sbattendo un pò la testa, ma nn riesco a venirne a capo... Aiuti?

    Codice PHP:
    <?php
    $ogg
    ="$_POST[oggetto]";
    $test="$_POST[testo]";
    $em="$_POST[email]";
    $dest="mailacuiinviare@gmail.com";
    if (
    $em==""){
    echo
    "<center><font color='red'><b>Non hai inserito la tua email</b></font></center> ";
    }elseif (
    $ogg=="") {
    echo
    "<center><font color='red'><b>Non hai specificato oggetto del messaggio</b></font></center>";
    }elseif (
    $test=="") {
    echo
    "<center><font color='red'><b>Non hai inserito il testo</b></font></center>";
    }elseif (
    $dest=="") {
    echo
    "<center><font color='red'><b>Non hai inserito il destinatario</b></font></center>";
    }elseif (
    $_POST['codice']=="") {
    echo
    "<center><font color='red'><b>Non hai inserito il captcha</b></font></center>";
    }elseif (
    $_SESSION['CODICE']==$_POST['codice']) {
    echo
    "<center><font color='red'><b>Captcha errato!</b></font></center>";
    }else {

    mail("$dest","$ogg","$test","From: $em");
    echo
    "<center><b>La tua email e' stata inviata con successo!</b></center>";
    }
    ?>
    Questo è il generatore di captcha invece:
    Codice PHP:
    <?php
    session_start
    ();
    $random_txt = md5(microtime());
    $random_txt = substr($random_txt, 0, 5);
    $immagine = imagecreatefrompng("captcha.png");
    $colore = imagecolorallocate($immagine, 0, 0, 0);
    imagestring($immagine, 100, 35, 15, $random_txt, $colore);
    $_SESSION['CODICE'] = $random_txt;
    header("Content-type: image/jpeg");
    imagejpeg($immagine);
    ?>
    Grazie nuovamente :D

    EDIT:

    Nessuno? :(
    Ultima modifica di alemoppo : 03-08-2011 alle ore 19.22.18 Motivo: Non fare doppi post: usa il tasto "Edita" per editare!

  7. #7
    Guest

    Predefinito

    Al posto di
    Codice:
    elseif ($_SESSION['CODICE']==$_POST['codice']) {
    metti:
    Codice:
    elseif ($_SESSION['CODICE']!=$_POST['codice']) {

  8. #8
    Guest

    Predefinito

    Ora riconosce il captcha errato, ma se lo metto corretto me lo visualizza sempre come errato... Sembra non consideri proprio l'else... O è la condizione che non funziona.... Boh... Ora praticamente non invia niente....

    EDIT:

    Niente da fà, nn ho soluzioni.... :@
    Ultima modifica di alemoppo : 03-08-2011 alle ore 19.20.08 Motivo: Non scrivere messaggi consecutivi: usa il tasto Edita!

  9. #9
    Guest

    Unhappy Help

    Ciao newshardware...grazie per aver messo a disposizione i file per i form. Io ho un sito appoggiato su altervista (joomla) e vorrei capire come e dove devo caricare quei due file...potete aiutarmi?

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

    Predefinito

    Citazione Originalmente inviato da maemoincrys Visualizza messaggio
    Ora riconosce il captcha errato, ma se lo metto corretto me lo visualizza sempre come errato... Sembra non consideri proprio l'else... O è la condizione che non funziona.... Boh... Ora praticamente non invia niente....

    EDIT:

    Niente da fà, nn ho soluzioni.... :@
    Prova a mettere la session_start() all'inizio del file (la riga dopo il "<?php").

    p.s: i tag <center>, <font>, sono obsoleti! Dovresti usare CSS.

    Ciao!

  11. #11
    Guest

    Predefinito

    C'è anche da notare che se lo script sarà accessibile a tutti, non c' è nessun controllo.

  12. #12
    Guest

    Talking

    @alemoppo, ti sono debitore, funziona perfettamente :D Grazie mille
    Per quanto riguarda i tag, sò ke sono obsoleti, ma usare i css x un semplice msg di avviso mi sembra inutile, cmq vedrò quello che riesco a combinare ;)
    Cmq per aiutare chi si approccia al form mail e al captcha in generale, posto l'intero codice funzionante, così è più chiaro:
    Form in html:
    Codice:
    <form name="form1" id="form1" method="post" action="mail.php">
    	<form name="modulo" method="post" action="mail.php">
    		<div>La tua email <br />
    			<input type="text" name="email" size="30"></div>
    		<div>Oggetto <br />
    			<input type="text" name="oggetto" size="30"></div>
    		<div>Messaggio <br />
    			<textarea name="testo" cols="40" rows="7"></textarea></div>
    		<div><img src="captcha.php" alt="Captcha"/>
    			<input name="codice" type="text" id="codice" size="5" maxlength="5"/></div>
    		<div><input type="submit" value="Invia email"> <input type="reset" value="Resetta campi"></div>
    	</form>
    </form>
    Php per la generazione del captcha:
    Codice PHP:
    <?php
    session_start
    ();
    $random_txt = md5(microtime());
    $random_txt = substr($random_txt, 0, 5);
    $immagine = imagecreatefrompng("captcha.png");
    $colore = imagecolorallocate($immagine, 0, 0, 0);
    imagestring($immagine, 100, 35, 15, $random_txt, $colore);
    $_SESSION['CODICE'] = $random_txt;
    header("Content-type: image/jpeg");
    imagejpeg($immagine);
    ?>
    Php per l'invio della mail con relativi controlli dei campi:
    Codice PHP:
    <?php
    session_start
    ();
    $ogg="$_POST[oggetto]";
    $test="$_POST[testo]";
    $em="$_POST[email]";
    $dest="mailacuiinviare@gmail.com";
    if (
    $em==""){
    echo
    "Non hai inserito la tua email";
    }elseif (
    $ogg=="") {
    echo
    "Non hai specificato oggetto del messaggio";
    }elseif (
    $test=="") {
    echo
    "Non hai inserito il testo";
    }elseif (
    $_POST['codice']=="") {
    echo
    "Non hai inserito il captcha";
    }elseif (
    $_SESSION['CODICE']!=$_POST['codice']) {
    echo
    "Captcha errato!";
    }else {

    mail("$dest","$ogg","$test","From: $em");
    echo
    "La tua email e' stata inviata con successo!";
    }
    ?>
    Grazie nuovamente

Regole di scrittura

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