Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] mail() znaczniki \r\n
Forum PHP.pl > Forum > Przedszkole
zaiac
Hej,

Przegrzebałem forum ale nie znalazłem odpowiedzi na mój problem, chociaż kod wydaje się podobny do tych wklejanych w wielu postach.
Wysyłam maila funkcją mail()

  1. <?php
  2. $topic = escape_data($_POST['_test_topic']);
  3. $text = escape_data($_POST['_test_text']);
  4. $headers = 'From: xxx'.$eol;
  5. $headers .= 'Reply-To: xxx@gmail.com'.$eol;
  6. $headers .= "MIME-Version: 1.0 ";
  7. $headers .= "X-Mailer: PHP v".phpversion().$eol;
  8. $headers .= "Content-type: text/html; charset=iso-8859-2".$eol;
  9.    
  10. $to = '...' //adresat
  11.        
  12. mail($to, $topic, $text, $headers)
  13. ?>


Mail dochodzi ale w dziwnej formie.

Wpisując maila o treści:

bla bla
tralalalala

dostaję na skrzynkę maila:

bla bla\r\ntralalalala


W jaki sposób można poradzić sobie z tymi znacznikami żeby poprawnie były interpretowane nowe linie?

Z góry dzięki za pomoc.

Pozdrawiam,
zajac
Kihol
Brakuje chyba części kodu. Jak masz zdefiniowaną zmienną $eol ?
Wklej funkcję escape_data - to w niej pewnie jest problem
zaiac
$eol="\n";

Gdzie mogę znaleźć deklarację escape_data ?
Kihol
Chodzi o to, że funkcja escape_data() nie jest wbudowaną funkcją PHP, musisz poszukać w kodzie deklaracji tej funkcji np:

  1. <?php
  2. function escape_data($data)  {
  3. ...
  4. }
  5. ?>


Założę się, że w tej funkcji są jakieś escape stringi itp
230005
Definiowałeś gdziekolwiek tą funkcję (znaczy, czy pisałeś coś takiego jak tu wyżej pokazał Kihol)? Stawiam, że wkleiłeś sobie skądś ten kod bez pełnego zrozumienia jak działa winksmiley.jpg . Ale jakby nie było, odnajdź to escape_data() i pokaż tu nam definicję.
zaiac
Oto ta funkcja:

  1. <?php
  2. function escape_data ($data) {
  3.    global $dbc;
  4.    if (ini_get('magic_quotes_gpc')) {
  5.        $data = stripslashes($data);
  6.    }
  7.    return mysql_real_escape_string (trim ($data), $dbc);
  8. }
  9. ?>


Ok - poradziłem sobie.
Dla osób mających podobny problem - zmieniłem skrypt na:

  1. <?php
  2. $text = nl2br($_POST['_test_text']);
  3. ?>


Pozdrawiam!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.