Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    form mail metodo post che non invia l'indirizzo mail di chi scrive

    Ciao a tutti
    sono nuova del forum e spero di non aver postato nel posto sbagliato.
    Ho la seguente pagina unica con form e php post per l'invio di mail da mio sito. Non conosco che ben poco di php ma ho provato a personalizzare un codice che mi piaceva. Funziona quasi tutto però nell'intestazione non mi arriva l'indirizzo di chi ha inviato il form. Invece mi viene "Apache..." cioè il nome del server.
    Inoltre vorrei aggiungere qualcosa che mi convalidi l'indirizzo mail (che controlli che sia stata inserita una mail e non testo). Ho trovato qualcosa in giro ma non riesco ad adattarlo.
    La mia pagina è qs:
    <CODE>
    <?php
    //raccogliamo le variabili inviate
    $nome=$_POST['nome'];
    $mail=$_POST['mail'];
    $subject=$_POST['subject'];
    $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($mail) and !empty($subject)and !empty($messaggio) ){
    // Intestazioni aggiuntive
    $header = "From: ". $nome . " <" . $_POST[mail] . ">\r\n";
    //inviamo l'email
    $mail=mail("firemgb@gmail.com", "Mail da $_POST[nome]" , $messaggio , "OGGETTO $_POST[subject]" , $header);
    //controlliamo che la mail sia stata inviata correttamente
    if($mail){
    //messaggio in caso di successo
    $ok="La mail è stata inviata correttamente. Riceverete una risposta al più presto.<br/><br/>";
    }
    else{
    //messaggio in caso di errore
    $errore="Non &egrave; stato possibile inviare l'email. Riprova.<br/><br/>";
    }
    }
    else{
    //messaggio in caso di campi mancanti
    $errore="Siete pregati di compilare tutti i campi<br/>;<br/>";
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Form invio email</title>
    <style type="text/css">

    </style>
    <link rel="stylesheet" href="style.css" type="text/css">
    </head>
    <body background="images/background.jpg">
    <?php if(isset($errore)){ echo $errore; }else{ if(isset($ok)){ echo $ok; } } ?>
    <p class="unnamed1">&nbsp;</p>
    <h2>CONTATTI E INFORMAZIONI</h2>
    <h2>&nbsp;</h2>
    <form name="mailform" method="post" action="<? $_SERVER['PHP_SELF'] ?>">
    <table width="51%" border="1" bgcolor="#DDDDDD" height="434">
    <tr>
    <td width="26%" height="2"><b>Nome e Cognome</b></td>
    <td width="74%" height="2">
    <input type="text" name="nome" />
    </td>
    </tr>
    <tr>
    <td width="26%" height="2"> <b>Mail</b><br />
    </td>
    <td width="74%" height="2">
    <input type="text" name="mail" />
    </td>
    </tr>
    <tr>
    <td width="26%" height="5"><b>Oggetto</b> <br />
    </td>
    <td width="74%" height="5">
    <input type=text name="subject">
    </td>
    </tr>
    <tr>
    <td width="26%" height="33"><b>Messaggio</b>
    <td width="74%" height="33"></td>
    </tr>
    <tr>
    <td width="26%" height="97">
    <textarea name="messaggio" cols="40" rows="5"></textarea>
    </td>
    <td width="74%" height="97"></td>
    </tr>
    <tr>
    <td width="26%" height="68">
    <input type="submit" name="Submit" value="Invia" />
    &nbsp;
    <input type="reset" name="Submit2" value="Cancella" />
    </td>
    <td width="74%" height="68"></td>
    </tr>
    <tr>
    <td width="26%" height="71">Compilare tutti i campi. Grazie.</td>
    <td width="74%" height="71">;</td>
    </tr>
    </table>
    <p>;</p>
    </form><br />
    </body>
    </html>
    </CODE>
    Grazie!
    Per il moderatore:
    Spero di aver postato correttamente il codice come da regolamento.
    FireLightning

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    228
    c'è qualche errore e qualche contrasto tra queste 4 righe:

    $mail=$_POST['mail'];//fin qui tutto ok

    if(!empty($nome) and !empty($mail) and !empty($subject)and !empty($messaggio) ){//questo test gira o è qui che si blocca?

    $header = "From: ". $nome . " <" . $_POST[mail] . ">\r\n"; //qui CERTAMENTE mancano le virgolette ('mail'), inoltre perché riprenderlo dalla superglobale $post se ce l'hai nella variabile $mail?

    $mail=mail("firemgb@gmail.com", "Mail da $_POST[nome]" , $messaggio , "OGGETTO $_POST[subject]" , $header);//ci metti un booleano, e va bene, ma $mail non la usavi già per altro? Inoltre credo dovrebbe essere così:
    blabla=mail("firemgb@gmail.com", "Mail da"+$_POST['nome'] , $messaggio , "OGGETTO"+$_POST['subject'] , $header)



    SICURAMENTE l'errore è qua in mezzo, in più fai un casino assurdo perché ti salvi tutti i dati nelle variabili ($mail,$name...) ma poi al momento di usarli li riprendi da $_POST.. questo non è propriamente un "errore", ma rallenta la lettura del codice, contribuisce alla confusione e spreca risorse



  3. #3
    Quote Originariamente inviata da SimoX90 Visualizza il messaggio
    c'è qualche errore e qualche contrasto tra queste 4 righe:

    $mail=$_POST['mail'];//fin qui tutto ok

    if(!empty($nome) and !empty($mail) and !empty($subject)and !empty($messaggio) ){//questo test gira o è qui che si blocca?

    $header = "From: ". $nome . " <" . $_POST[mail] . ">\r\n"; //qui CERTAMENTE mancano le virgolette ('mail'), inoltre perché riprenderlo dalla superglobale $post se ce l'hai nella variabile $mail?

    $mail=mail("firemgb@gmail.com", "Mail da $_POST[nome]" , $messaggio , "OGGETTO $_POST[subject]" , $header);//ci metti un booleano, e va bene, ma $mail non la usavi già per altro? Inoltre credo dovrebbe essere così:
    blabla=mail("firemgb@gmail.com", "Mail da"+$_POST['nome'] , $messaggio , "OGGETTO"+$_POST['subject'] , $header)



    SICURAMENTE l'errore è qua in mezzo, in più fai un casino assurdo perché ti salvi tutti i dati nelle variabili ($mail,$name...) ma poi al momento di usarli li riprendi da $_POST.. questo non è propriamente un "errore", ma rallenta la lettura del codice, contribuisce alla confusione e spreca risorse


    ...Intanto grazie... Ma che disastro...
    Però perdonami ma ci ho capito poco... Ciò che hai suggerito dopo blabla va sostituito a ciò che io ho dopo $mail? Perchè ci ho provato ed ho messo anche le virgolette ma non va. Ricevo correttamente il messaggio con l'oggetto e il nome del mittente ma non la sua mail....
    FireLightning

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.