Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > mail() c PHP


Автор: Spiker 21.4.2009, 01:29
Я хочу в сообщение внести пхп код, но сообщения приходят в хтмл и не потдерживають пхп, то-есть выводят пхп таги и не делаю пхп функцию.
Я хотел-бы в сообщение внести код который бы с базы данных доставал данные и высвечивал в сообщении.

1.Пытался использовать функции - пока-что не идет.
2.При внедрении сообщения в аррей, то-есть сообщение в самой функции все работает, но если я прав если будет больше результатов то-есть 2 или больше, пользователь получит в одном сообщений два или больше одинаковых сообщений только сразными данными с базы данных


2 Пункт - Код
Код

 
$sql1 = "SELECT pd_name, pd_stars
        FROM tbl_games
        WHERE oi.od_id=gameID
        ORDER BY od_id ASC"; 
$result1 = mysql_query("SET NAMES cp1251") or die(mysql_error());
$result1 = mysql_query("SET CHARACTER SET cp1251") or die(mysql_error());
$result1 = dbQuery($sql1); 

$gameID = array();    
while ($row = dbFetchAssoc($result1)) { 
    $gameID[] = $row; 
} 

$sql = "SELECT od_number_of_stars      
        FROM tbl_stars
        WHERE od_id = $GameID"; 

$result = dbQuery($sql); 
extract(dbFetchAssoc($result)); 


$numItem  = count($gameID); 
$subTotal = 0; 
for ($i = 0; $i < $numItem; $i++) { 
    extract($gameID[$i]); 
        
$message = "
<html>
<head>
<meta http-equiv=Content-Type content='text/html; charset=windows-1251' /> 
</head>
<body>


Date: $od_date<br>

______________<br>
Games<br>
<table>
    <tr align=center> 
        <td>Game</td> 
        <td>Stars</td>  
    </tr>
    <tr> 
        <td>$pd_name</td> 
        <td align=right>$od_number_of_stars</td> 
    </tr>  
</table><br>
</body>
</html>";
}


Добавлено через 1 минуту и 57 секунд
когда на простой страничке яб использовал

Код

$numItem  = count($gameID); 
$subTotal = 0; 
for ($i = 0; $i < $numItem; $i++) { 
    extract($gameID[$i]); 
?> 
    <tr class="content"> 
        <td><?php echo "$pd_name"; ?></td> 
        <td align="right"><?php echo $stars; ?></td> 
    </tr> 
    <?php 
} 

Автор: Grig 21.4.2009, 04:31
попробуйте так: 
Код

$message = "
<html>
<head>
<meta http-equiv=Content-Type content='text/html; charset=windows-1251' /> 
</head>
<body>
Date: ".$od_date."<br>
______________<br>
Games<br>
<table>
    <tr align=center> 
        <td>Game</td> 
        <td>Stars</td>  
    </tr>
    <tr> 
        <td>".$pd_name."</td> 
        <td align=right>".$od_number_of_stars."</td> 
    </tr>  
</table><br>
</body>
</html>";

Автор: Photon 21.4.2009, 05:09
Ну вообще-то по правилам языка PHP в строковых переменных, заключенных в двойные кавычки, вполне нормально отрабатываются обычные переменные. Т.е. если написать:

Код

    $name = "Вася";
    $message = "Превед, $name";
    echo $message;


то мы вполне закономерно увидим фразу "Привет, Вася". Но для полной уверенности в этом, а также для того, чтобы можно было использовать массивы (особенно многомерные), переменные надо заключать в фигурные скобки:

Код

    $name = "Вася";
    $message = "Превед, {$name}";
    echo $message;


P.S. Даже специально провел эксперимент с отправкой почты. Все переменные нормально подменяются своими значениями и письмо приходит в нужном виде.. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)