2011-08-04 7 views
0

私はテンプレート駆動のウェブサイトを作成していますが、SmartyやTwigのようなPHPテンプレートパッケージを使用していません。それはまったく自分のコーディングです。PHPテンプレートの構文 - これは正しいですか?

これは1つのテンプレート(mypage.php)です:

<?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>" . 

}

:内容は次のように、MySQLデータベースから来ている(ページに収まるように移動)

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

私はそれを正しくしたと思うが、もし私が間違っていたら私に知らせる...それは私の最初の適切な行く!私が見る(stackoverflow.comへ合うように編集)

歓声

+2

? – phindmarsh

+0

どのテンプレートですか?あなたが書いたあなたの質問にはテンプレートはありません。あなたはただあなたがPHPを使いたいと言っただけです。たぶんあなたは[文字列の中括弧](http://php.net/manual/en/language.types.string.php)を探しています(*変数の解析*までスクロールダウン)? – hakre

答えて

0

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>". 
} 
+0

OKですが、テンプレートは正しいですか? – saltwynd8336

+0

@saltwynd私はphp-templateウィザードではないので、あなたを助けることはできません。 – Johan

関連する問題