Уважаемые мастера помогите разобраться с Php

Статус
Закрыто для дальнейших ответов.

vovan

Active Member
Регистрация
06.07.2006
Сообщения
40
Доброго времени суток! :biggrin:
У меня такая проблема: я хочу отправить по почте страницу, но на ней содержатся фрагменты кода PHP, так вот каким образом мне это сделать. Я использую функцию mail() и вот код переменной $message, - тела письма:
Код:
$message = '<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body bgcolor="#0099FF">
<table bgcolor="#00FF99">
  <tr>
	<th scope="row" class="1">Ф.И.О.</th>
	<td class="2"> <?php echo $_POST['fio']; ?> </td>
  </tr>
</table>
</body>
</html>'
Вот упрощённый вариант. Проблема в том что мне нужно чтобы в таблицу вставлялись данные из формы при помощи $_POST['']. Может код можно как-то экранировать, или ещё что-либо сделать?
Вобщем заранее спасибо. :biggrin:
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
делайте так:
<?php echo str_replace('<', '&lt;', $_POST['element']); ?>

вам хватит.
 

vovan

Active Member
Регистрация
06.07.2006
Сообщения
40
делайте так:
<?php echo str_replace('<', '<', $_POST['element']); ?>

вам хватит.
Именно так и сделал, но проблема в следующем:
Код:
$message = '<html>
<head>
<title>?????</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>
<body bgcolor="#0099FF">
<table>
  <tr>
	<th scope="row" class="1">??????? ??? ????????</th>
	<td class="2"> <?php echo str_replace('<', '<', $_POST['fio']); ?> </td>
  </tr>
  <tr>
	<th scope="row" class="1">e-mail</th>
	<td class="2"><?php echo str_replace('<', '<', $_POST['E_mail']); ?></td>
  </tr>
</table>
</body>
</html>'
$headers  = "Content-type: text/html; charset=windows-1251 \r\n"; 
$headers .= "From: vip.yeisk.su\r\n";
mail ($to, $subject, $message, $headers);
?>
Дело в том что мне приходится ставить знак ' перед и после тела сообщения, и происходит ошибка с кодом PHP, из-за этого выдаётся :
Код:
Parse error: parse error, unexpected T_STRING in /home/ftp/host/vip.yeisk.su/proga.php on line 23
Помогите! :wacko:
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
Правильно что не работает, потому что бред пишете.

Вы пытаетесь писать PHP-код внутри PHP-кода. Поясняю: у Вас код всего файла заключён в какие знаки? <? и ?>, так? так.

А Вы внутри него пытаетесь ещё вставить <? и ?>! Причём их Вы ставите внутрь кавычек ($message='') и внутрь их тоже ставите кавычки!

Мораль:
Код:
message = '<html>
<head>
<title>?????</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

</head>
<body bgcolor="#0099FF">
<table>
  <tr>
	<th scope="row" class="1">??????? ??? ????????</th>
	<td class="2">' . str_replace('<', '&lt;', $_POST['fio']) . '</td>
  </tr>
  <tr>
	<th scope="row" class="1">e-mail</th>
	<td class="2">' . str_replace('<', '&lt;', $_POST['E_mail']) . '</td>
  </tr>
</table>
</body>
</html>';
 

vovan

Active Member
Регистрация
06.07.2006
Сообщения
40
Спасибо огромное deMone! Теперь с текстом проблем нет :biggrin: , но появилась новая :blink: , вот ошибка :blush: :
Код:
Parse error: parse error, unexpected T_VARIABLE in /home/ftp/host/vip.yeisk.su/proga.php on line 68
а вот строка 68 и так далее:
Код:
$headers  = "Content-type: text/html; charset=windows-1251 \r\n"; 
$headers .= "From: vip.yeisk.su\r\n";
mail ($to, $subject, $message, $headers);
?>
подскажи плиз что делать :eek:hmy: . Спасибо!
 

deMone

Злой страшный дядька
Регистрация
30.01.2006
Сообщения
937
а что было ДО 68 строки (дайте строк пять до и столько же после)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ