PHP satır sonları çalışmak için görünmüyor

4 Cevap php

Ben mail () işlevini kullanarak bir mesaj gönderir aşağıdaki kodu var. Her şey çalışmak için görünmüyor, her satırın sonunda satır sonları dışında çalışıyor. Eğer ben "\ r \ n" Bu bana bir satır mola verecek umuduyla kullanıyorum ama ben mola almak için <br> eklemiş değil, ama ben daha ziyade bu kullanmak olmaz gördüğünüz gibi durumda birisi bir HTML e-posta istemcisi yok.

<?php
  $to = 'user@example.com'; // Was a valid e-Mail address, see comment below
  $name = $_REQUEST['name'] ;
  $email = $_REQUEST['email'] ;
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['message'] ;

  $content = 'Name: '.$name."\r\n";
  $content .= 'Email: '.$email."\r\n";
  $content .= 'Subject: '.$subject."\r\n";
  $content .= 'Message: '.$message."\r\n";

  $headers  = 'MIME-Version: 1.0' ."\r\n";
  $headers .= 'Content-type: text/html; charset=iso-8859-1' ."\r\n";

  // Additional headers
  $headers .= 'To: iVEC Help <help@ivec.com>'. "\r\n";
  $headers .= 'From: '.$name.' <'.$email.'>' . "\r\n";

  mail( $to, $subject, $content, $headers);

?>

<p> You sent it ... good work buddy </p>
<p> <?php   '$name' ?> </p>

4 Cevap

HTML olarak yolluyoruz - text/plain için içerik türünü değiştirmek ve çalışması gerekir.

Sorun posta bir HTML e-posta olduğunu, senin başlıklarını, demek ki:

$headers .= 'Content-type: text/html; charset=iso-8859-1' ."\r\n";

HTML ve metin hem de müşterileriniz ile uyumluluk sağlamak istiyorsanız, Multipart içerik türünü kullanarak düşünün. Bu çok farklı şekillerde elde edilebilir, ancak basit bir şekilde sizin için bunu bir kütüphane kullanmaktır. Örneğin, kullanabilirsiniz PEAR:Mail_Mime

Ben bu alanda bir uzman değilim, ama benim tahminim html-render (satır sonları bir alana çevrilir anlamına gelir) ima / html, metin içerik türünü kuruyoruz olurdu. (Değil görünür) herhangi bir HTML öğelerini kullanarak değilseniz, / düz metin içerik türünü ayarlayarak deneyin.

Daha önce de belirtildiği, ya da düz / metin veya satır için bir HTML sonu eklemek için ayarladığınız şekilde keser:

$content = 'Name: '.$name."</br>\r\n";