Visualizzazione risultati 1 fino 5 di 5

Discussione: header posta e funzione nl2br

  1. #1
    scambiolibritlc non è connesso Neofita
    Data registrazione
    06-03-2013
    Messaggi
    5

    Predefinito header posta e funzione nl2br

    Buongiorno a tutti
    Ho da poco caricato un sito su AV. tutto funziona che è una meraviglia a parte due cose:
    1- Ho uno script php che invia una mail che arriva correttamente ma nell' header trovo scritto APACHE e non il nome del mittente.
    2-Sul message viene caricato un testo prelevato da una textarea al quale faccio passare la funzione nl2br che dovrebbe trasformarmi gli "a capo" in spazi ma cio non avviene e trovo scritto laddove c'è un a capo "rn".
    questo il codice:
    Codice PHP:
    // altro codice
    $nome = mysql_real_escape_string($_POST['nome']);
    $messaggio = mysql_real_escape_string($_POST['messaggio']);
    $recuperadatilibro = mysql_query("SELECT * FROM libri WHERE id='$id'");
    $row=mysql_fetch_assoc($recuperadatilibro);

    $isbn = $row['isbn'];
    $titolo= $row['titolo'];
    $autore= $row['autore'];
    $editore=$row['editore'];
    $prezzo_cop= $row['prezzo_cop'];
    $prezzo_ric= $row['prezzo_ric'];
    $stato= $row['stato'];
    $email= $row['email'];

    // stripslashes è una funzione di PHP che permette di eliminare da una stringa i caratteri di escape ( \ )
    $nome=stripslashes($nome);
    $messaggio=stripslashes($messaggio);
    $isbn=stripslashes($isbn);
    $titolo=stripslashes($titolo);
    $autore=stripslashes($autore);
    $editore=stripslashes($editore);
    $prezzo_cop=stripslashes($prezzo_cop);
    $prezzo_ric=stripslashes($prezzo_ric);
    $stato=stripslashes($stato);


    $to = "$email";
    $subject="Richiesta acquisto libro da Scambiolibritlc.";
    $header="DA: $nome";
    $message=nl2br("$messaggio");//nl2br è una funzione che trasforma gli a capo in spazi
    $message.="\r\n";
    $message.="\r\n";
    $message.="Libro richiesto: \r\n";
    $message.="\r\n";
    $message.="Codice ISBM: $isbn \r\n";
    $message.="Titolo: $titolo \r\n";
    $message.="Autore: $autore \r\n";
    $message.="Editore: $editore \r\n";
    $message.="Prezzo di copertina: $prezzo_cop \r\n";
    $message.="Prezzo richiesto: $prezzo_ric";

    $sentmail=mail($to,$subject,$message,$header);
    // altro codice
    Come posso fare per correggere questi difetti?
    Grazie
    Carlo

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

    Predefinito

    1: devi impostare il campo "From" nell'header.

    2: dove hai letto che la nl2br() trasforma gli "a capo" in spazi? Trasforma gli a capo in <br>.
    <br> è untag html per far andare a capo del testo. Per come hai impostato l'header, l'email che invii non è in formato HTML, quindi non ha senso utilizzare la nl2br.

    Ciao!

  3. #3
    scambiolibritlc non è connesso Neofita
    Data registrazione
    06-03-2013
    Messaggi
    5

    Predefinito

    Grazie Alemoppo
    Il primo problema è stato risolto ma per il secondo probabilmente ho un po di confusione.
    Secondo te qual'è il sistema migliore per importare nel message il testo di una textarea.
    Grazie per la pazienza.
    Carlo

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

    Predefinito

    Se non vuoi inviare l'email in formato HTML, puoi benissimo lasciare il testo come esce dalla mysql_real_escape_string().

    Ciao!

  5. #5
    scambiolibritlc non è connesso Neofita
    Data registrazione
    06-03-2013
    Messaggi
    5

    Predefinito

    Scusa se insisto ma forse non mi so spegare bene.
    Il problema è che quando prelevo il testo dalla textarea e lo invio alla mail trovo scritto degli "rn" senza apici laddove è stato premuto invio.
    Esempio, se nella textarea scrivo:
    Ciao
    Sono Carlo
    Arrivederci
    nella mail trovo scritto:
    CiaornSono CarlornArrivederci
    Come faccio ad eliminare quei rn?
    Grazie ancora.
    Carlo

Regole di scrittura

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