以下の PHP 文字列の出力は正しくありません。最後に追加の ( "> ) が表示されます。何が間違っているのか教えてください。
$part2 = HTMLentities('<input type="hidden" name="custom" value="<?php print($_SESSION["muser"]."-".$_SESSION["mpass"]);?>">');
print $part2;
ありがとう、KRA
以下の PHP 文字列の出力は正しくありません。最後に追加の ( "> ) が表示されます。何が間違っているのか教えてください。
$part2 = HTMLentities('<input type="hidden" name="custom" value="<?php print($_SESSION["muser"]."-".$_SESSION["mpass"]);?>">');
print $part2;
ありがとう、KRA
既に PHP モードになっている場合は、<?php ?>
構文の代わりに文字列連結を使用する必要があります。この例では、html の作成とエスケープ部分を分割しています。
$html = '<input type="hidden" name="custom" value="' . htmlspecialchars($_SESSION["muser"] . "-" . $_SESSION["mpass"]) . '">';
$part2 = htmlentities($html);
print $part2;
これはあなたが探しているものの多くだと思います:
$part = '<input type="hidden" name="custom" value="' . htmlentities($_SESSION['user'] . '-' . $_SESSION['mpass']) . '" />';
あなたの例には、貧弱な PHP 構文がたくさんあります。
<?php
タグを使用して、HTML から PHP にエスケープします。PHPファイルがある場合、それについて考える1つの方法は、実際にはHTMLドキュメントを持っているということですが、<?php
タグを追加してPHPコードを書き込むことができます.あなたの例では、PHP内からHTMLを印刷しようとしています. 、確かに複雑になる可能性があります。<?php
すでに PHP ブロックに入っているので、開始タグ を使用する必要はありません。print
。このprint
関数は、画面にテキストを書き込むために使用されます。私が書いた例のように、変数名を使用して文字列を結合することができます。htmlentities
文字列内の HTML をテキストにレンダリングするために使用されます。htmlentities
不明な (ユーザーが入力した) データが HTML を変更しないようにするために使用します。input
無効な HTML でタグが壊れないようにするために、上記のように $_SESSION 変数で htmlentities を使用することをお勧めします。文字列全体で使用すると、HTML が生のテキストであるかのように印刷されます。これを PHP ブロックの外側から記述する方法は次のとおりです。
<?php
// initial PHP code
?>
<input type="hidden" name="custom" value="<?php echo htmlentities($_SESSION['user'] . '-' . $_SESSION['mpass']) ?>" />
<?php
// continue PHP code
?>
末尾に > が追加されているためです。これを試して:
$part2 = HTMLentities('<input type="hidden" name="custom" value="<?php print($_SESSION["muser"]."-".$_SESSION["mpass"]);?>"');
print $part2;