2

PHPをHTMLに追加するには助けが必要です。PHPコードスニペットをHTMLに埋め込もうとしていますが、出力ではスニペット自体が評価されずにテキストボックスに表示されます。

HTML(register.php)で、以下のコード行を追加しました

<tr>
    <td>
        <?php utils::addControl('Name','label'); ?>
    </td>
    <td>
        <?php utils::addControl('username','text'); ?>
    </td>
</tr>

utils :: addControl()のソースは次のとおりです

    public function addControl($ctlName, $type) {

    switch ($type) {
        case 'text':
            echo <<<EOT
            <input type='text' name='$ctlName' value='&lt?php echo htmlspecialchars($ctlName); ?&gt'>
   EOT;
            break;
        case 'label':
            echo "<label for id='lbl$ctlName'>$ctlName</label>";
            break;
    }

出力が<?php echo htmlspecialchars(username); ?>テキストボックスに表示されています。

PHPスニペットを適切に評価するために何をすべきか。TIA。

4

1 に答える 1

3

サーバーは通常、PHPを探している間、スクリプトを1回通過するように構成されています…</ p>

Source → PHP → Output

ダブルパスではありません:

Source → PHP → PHP → Output

ダブルパスを実行した場合、シーケンスを出力に含めたい場合<?php(または<?、短いタグがオンになっている場合でも)、フープをジャンプする必要があります。

PHPを作成して、最初に必要な出力を生成するようにします。PHPからPHPを生成しようとしないでください。

$htmlCtrlName = htmlspecialchars($ctlName);
echo "<input type='text' name='$htmlCtlName' value='$htmlCtrlName'>"
于 2012-10-07T19:02:09.590 に答える