【问题标题】:PHP template syntax - is this correct?PHP 模板语法 - 这是正确的吗?
【发布时间】:2011-08-04 09:24:12
【问题描述】:

我正在创建一个模板驱动的网站,但没有使用 Smarty 或 Twig 等 PHP 模板包,这完全是我自己的编码。

这是一个模板(mypage.php):(移动以适应页面)

<TITLE>{$title}</TITLE>
<TABLE>
<TR><TD>{$maker}</TD><TD>{$model}</TD><TD>{$trim}</TD><TD>{$body}</TD>
<TD>{$price}</TD>
</TABLE>

内容来自 MySQL 数据库,如下所示:

<?php
mysql_connect("localhost", "mylogin", "password") or die(mysql_error());
mysql_select_db("test12") or die(mysql_error());
$query  = "SELECT name, subject, message FROM contact";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    echo "<table><td>{$row['maker']} <br><TD>{$row['model']}</TD><TD>{$row['trim']}</TD><TD>{$row['price']}</TD>" .

}

我认为我做对了,但如果我做错了,请告诉我……这是我第一次正确尝试! (编辑以适应 stackoverflow.com)

干杯

【问题讨论】:

  • 哪个模板?你写的问题中没有任何模板,你只是说你想使用 PHP。也许您正在寻找curly braces in strings(向下滚动到变量解析)?

标签: php mysql templates templating templating-engine


【解决方案1】:

我看到的一个错误是您没有对从数据库中检索到的值进行转义。
这让您对 XSS 持开放态度。

我会将回声部分更改为:

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
  $maker = htmlspecialchars($row['maker']);
  $model = htmlspecialchars($row['model']);
  $trim = htmlspecialchars($row['trim']);
  $price = htmlspecialchars($row['price']);

  echo "<table><td>{$maker}<br><TD>{$model}</TD><TD>{$trim}</TD><TD>{$price}</TD>".
}

【讨论】:

  • @saltwind 我不是 php 模板向导,所以无法帮助您。
猜你喜欢
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
相关资源
最近更新 更多