Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] mail() znaczniki \r\n
zaiac
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 11.05.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Kihol
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 6
Dołączył: 20.06.2005
Skąd: Pyskowice

Ostrzeżenie: (0%)
-----


Brakuje chyba części kodu. Jak masz zdefiniowaną zmienną $eol ?
Wklej funkcję escape_data - to w niej pewnie jest problem
Go to the top of the page
+Quote Post
zaiac
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 11.05.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


$eol="\n";

Gdzie mogę znaleźć deklarację escape_data ?

Ten post edytował zaiac 30.01.2009, 11:53:24
Go to the top of the page
+Quote Post
Kihol
post
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 6
Dołączył: 20.06.2005
Skąd: Pyskowice

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
230005
post
Post #5





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


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ę.
Go to the top of the page
+Quote Post
zaiac
post
Post #6





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 11.05.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:46