• User Newbie

    Headers php mail

    io ho questo script
    [PHP]<?php
    if(isset($_POST['Email'])) {

    function died($Error) {
    // your error code can go here
    echo "Siamo spiacenti, ma sembra che vi sia un errore con il modulo che hai inviato. ";
    echo "Questi errori vengono visualizzate sotto.<br /><br />";
    echo $Error."<br /><br />";
    echo "Si prega di tornare indietro e correggere questi errori.<br /><br />";
    die();
    }
    // validation expected data exists
    if(!isset($_POST['Oggetto']) ||
    !isset($_POST['Nome']) ||
    !isset($_POST['Cognome']) ||
    !isset($_POST['Email']) ||
    !isset($_POST['Messaggio'])){
    died('Siamo spiacenti, ma sembra che vi sia un problema con il modulo che hai inviato.');
    }
    $Oggetto_field = $_POST['Oggetto'];
    $Nome_field = $_POST['Nome'];
    $Cognome_field = $_POST['Cognome'];
    $Telefono_field = $_POST['Telefono'];
    $Cellulare_field = $_POST['Cellulare'];
    $Email_field = $_POST['Email'];
    $Messaggio = $_POST['Messaggio'];
    $Contact = $POST['Contact'];
    $Refer = getenv ("HTTP_REFERER");
    $Ip = getenv ("REMOTE_ADDR");
    $Info = getenv ("HTTP_USER_AGENT");
    $Error_message = "";
    $Oggetto_exp = "/^[A-Za-z .'-]+$/";
    if(!preg_match($Oggetto_exp,$Oggetto_field)) {
    $Error_message .= 'Inserire l´oggetto della richiesta.<br />';
    }
    $Nome_exp = "/^[A-Za-z .'-]+$/";
    if(!preg_match($Nome_exp,$Nome_field)) {
    $Error_message .= 'Inserire il Nome.<br />';
    }
    $Cognome_exp = "/^[A-Za-z .'-]+$/";
    if(!preg_match($Cognome_exp,$Cognome_field)) {
    $Error_message .= 'Inserire il Cognome.<br />';
    }
    $Email_exp = '/^[A-Za-z0-9.
    %-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/';
    if(!preg_match($Email_exp,$Email_field)) {
    $Error_message .= 'Inserire un Indirizzo di E-mail Valido<br />';
    }
    if(strlen($Messaggio) < 2) {
    $Error_message .= 'Inserire un messaggio.<br />';
    }
    if(strlen($Error_message) > 0) {
    died($Error_message);
    } $To = "[email protected]";
    $Sender = "[email protected]";
    $Subject = "$Oggetto_field";
    $Email_message = " Questi sono i dati inseriti nel modulo presente alla pagina: $Refer\n da $Nome_field $Cognome_field con indirizzo IP: $Ip\n Browser e sistema operativo: $Info\n Oggetto: $Oggetto_field\n Nome: $Nome_field\n Cognome: $Cognome_field\n Telefono: $Telefono_field\n Cellulare: $Cellulare_field\n E-Mail: $Email_field\n Messaggio: $Messaggio\n Come preferisci essere ricontattato: $Contact\n";
    $Headers = 'From: '.$Email_field."\r\n".
    'Reply-To: '.$Email_field."\r\n" .
    'Sender: '.$Sender."\r\n".
    'X-Mailer: PHP/' . phpversion();

    @mail($To, $Subject, $Email_message, $Headers);
    header("location:");
    }
    else {
    header("location:");
    }
    ?>
    [/PHP]
    che riceve i dati da un form adesso io vorrei modificare l'header in modo da inserire nel from e nel reply-to anche il nome e il cognome presi dal form ma con tutte le prove fatte non funziona qualcuno sa aiutarmi???


  • User Attivo

    Ho dato un occhio al manuale PHP, non sono un grande esperto e potrei sbagliare, mi suonano però strani gli apici usati anche lì (che corrispondono al tuo codice nella var $Headers).

    Tuo codice/manuale:
    $Headers = 'From: '.$Email_field."\r\n".
    'Reply-To: '.$Email_field."\r\n" .
    'Sender: '.$Sender."\r\n".
    'X-Mailer: PHP/' . phpversion();

    Prova così (sostituito ' a "):
    $Headers = 'From: '.$Email_field.'\r\n'.
    'Reply-To: '.$Email_field.'\r\n' .
    'Sender: '.$Sender.'\r\n'.
    'X-Mailer: PHP/' . phpversion();

    Oppure così (sostituito " a '):
    $Headers = "From: ".$Email_field."\r\n".
    "Reply-To: ".$Email_field."\r\n" .
    "Sender: ".$Sender."\r\n".
    "X-Mailer: PHP/" . phpversion();

    Quindi un problema di concatenazione. O proprio non saprei, per quanto posso ricordare non mi sembra di aver avuto particolari problemi quando l'ho usato in passato. Se non risolvi proverò a cercare qualche vecchio script.