2012-01-16 5 views
5

Piszę wiadomość e-mail, która zostanie wysłana po przesłaniu formularza. Z jakiegoś powodu, znak \n wyświetla się poprawnie na wszystkich liniach oprócz jednej. Nie widzę żadnej różnicy między tą linią a pozostałymi, więc nie mogę się domyślić, dlaczego to nie działa. Kod znajduje się poniżej, wraz z danymi wyjściowymi, które otrzymuję, a także listą użytych zmiennych.Dlaczego n nie działa na jednej linii mojego skryptu PHP, ale czy działa dobrze na wszystkich innych?

Jak widać z wiadomości e-mail, \n na końcu linii "Adres pracy" nie działa, więc "Nazwa firmy" po prostu podąża prosto, zamiast być w kolejnej linii. Następnie nazwa firmy po nazwie firmy działa poprawnie, więc adres domowy znajduje się w następnej linii.

Oto kod do wiadomości:

$xmsg = "First Name: $firstname\n" . 
     "Last Name: $lastname\n" . 
    "Work Tel: $worktel\n" . 
    "Home Tel: $hometel\n" . 
    "Mobile Tel: $mobtel\n" . 
    "E-mail: $email\n" . 
    "Work Address: $workad\n" . 
    "Company Name: $company\n" . 
    "Home Address: $homead\n" . 

Oto wynik:

First Name: Joe 
Last Name: Bloggs 
Work Tel:
Home Tel: 0987654321 
Mobile Tel: 0789456123 
E-mail: [email protected] 
Work Address: Bloggoffice, Joe Street, London, N1 J0E Company Name: 
Home Address: 9 Blogg Street, Borough of Joe, London, SE4 J03 

A w przypadku jest to przydatne, oto lista zmiennych używana:

$firstname = $_SESSION['firstname']; 
$lastname = $_SESSION['lastname']; 
$worktel = $_SESSION['worktel']; 
$hometel = $_SESSION['privtel']; 
$mobtel = $_SESSION['mobtel']; 
$email = $_SESSION['email']; 
$company = $_SESSION['companyname']; 
$workad = $_SESSION['workad1'] . ', ' . $_SESSION['workad2'] . ', ' .  $_SESSION['workad3'] . ', ' . $_SESSION['workpostcode']; 
$homead = $_SESSION['homead1'] . ', ' . $_SESSION['homead2'] . ', ' . $_SESSION['homead3'] . ', ' . $_SESSION['homepostcode']; 

Byłbym wdzięczny za każdą pomoc, mam nadzieję, że to nie tylko głupi błąd, który przeoczyłem!

+6

Co mówi 'var_dump ($ workad)'? –

+3

Proszę [nie dodawaj podpisów ani sloganów do swoich postów] (http://stackoverflow.com/faq#signatures). – meagar

+0

na marginesie, naprawdę nie jest dobrą praktyką zagracanie przestrzeni nazw sesji ze wszystkimi tymi zmiennymi – jere

Odpowiedz

1

Używanie stałej stałej wydaje się bardziej poprawne niż użycie . Ponieważ PHP_EOL jest właściwym znakiem końca linii dla każdej platformy.

+0

To naprawdę nie ma znaczenia. Nigdy nie miałem problemów ze zwykłymi zakończeniami linii Unix, z wyjątkiem sytuacji, gdy próbujesz użyć starszego programu do otwierania ich (ale kto to robi?) – Evert

+0

Wydaje się, że to rozwiązało problem, to świetnie, dziękuję! – Chris

Powiązane problemy