2013-08-08 2 views
-3

Я хочу использовать таблицу html в переменной php, чтобы я мог использовать эту переменную в php mail, и эта почта должна отображать таблицу html. Я использовал EOD, но не работал. Вот код, который я использую, который не работает.Хранение таблицы HTML в переменной php?

$body1 = <<<EOD 
    <br><br> 
     <h3 align="center">Career Details</h3> 
     <table border="1" width="100%"> 
     <col width="50%"> 
     <col width="50%"> 
     <tr> 
      <td style="text-align:left;">Name: $nameField </td> 
      <td style="text-align:left;">Email: $emailField </td> 
     </tr> 
     <tr> 
      <td style="text-align:left;">Date of Birth: $dob</td> 
      <td style="text-align:left;">Passport Number: $passportnum</td> 
     <tr> 
      <td style="text-align:left;">Gender: $gender</td> 
      <td style="text-align:left;">Nation: $nation</td> 
     <tr> 
      <td style="text-align:left;">Phone: $phone</td> 
      <td style="text-align:left;">Prefered Location: $location</td> 
     <tr> 
      <td style="text-align:left;">Area of Interest: $areaofinterest</td> 
    </table> 
    EOD; 


    $body=$body1; 
    $headers = 'From: [email protected]domain.com'; 
    if(mail($mailto, $emailSubject, $body, $headers)){ 
    header ('Location: http://www.mydomain.net?page_id=664'); 
} 
+1

А что вы пытались это исправить? –

+0

Я попытался ob_start() и повторил html в переменной с помощью get_contents, но тоже не работал –

+0

Закрытие 'EOD;' ** должно быть ** полностью влево (как первое, что стоит на линии). Используйте 'error_reporting (-1);' при работе над вашим кодом. –

ответ

1

Пространство до EOD;. Он должен быть на своей собственной линии, без какого-либо пространства. Пример:

$body1 = <<<EOD 
yourstuff 
EOD; // Note that there is no space before EOD;. 
+0

Я не получил тебя @bruno –

0

Из инструкции PHP:

Очень важно отметить, что строка с закрывающим идентификатором не должна содержать никаких других символов, за исключением, возможно, точки с запятой (;). Это означает, что идентификатор не может быть отступом, и не должно быть пробелов или вкладок до или после точки с запятой. Также важно понимать, что первый символ перед закрывающим идентификатором должен быть новой строкой, определенной локальной операционной системой. Это \ n в системах UNIX, включая Mac OS X. Заключительный разделитель (возможно, за которым следует точка с запятой) также должен следовать новой строке.

Если это правило нарушено, а закрытый идентификатор не является «чистым», он не будет считаться закрывающим идентификатором, а PHP продолжит искать его. Если правильный идентификатор закрытия не найден до конца текущего файла, в последней строке будет отображаться ошибка синтаксического анализа.

Кроме того, вы должны исправить ваш HTML таблицу (обратите внимание, `` </tr> отсутствует в коде):

$body1 = <<<EOD 
     <br><br> 
     <h3 align="center">Career Details</h3> 
     <table border="1" width="100%"> 
      <col width="50%"> 
      <col width="50%"> 
      <tr> 
       <td style="text-align:left;">Name: $nameField </td> 
       <td style="text-align:left;">Email: $emailField </td> 
      </tr> 
      <tr> 
       <td style="text-align:left;">Date of Birth: $dob</td> 
       <td style="text-align:left;">Passport Number: $passportnum</td> 
      </tr>  
      <tr> 
       <td style="text-align:left;">Gender: $gender</td> 
       <td style="text-align:left;">Nation: $nation</td> 
      </tr>  
      <tr> 
       <td style="text-align:left;">Phone: $phone</td> 
       <td style="text-align:left;">Prefered Location: $location</td> 
      </tr>  
      <tr> 
       <td style="text-align:left;">Area of Interest: $areaofinterest</td> 
      </tr>  
     </table> 
EOD; 
+0

попробовал это тоже, но не повезло –

+0

какая ошибка вы получаете ?, вы должны быть уверены, что у вас есть место после EOD; –

Смежные вопросы