以下 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;
这是因为末尾有一个额外的>。试试这个:
$part2 = HTMLentities('<input type="hidden" name="custom" value="<?php print($_SESSION["muser"]."-".$_SESSION["mpass"]);?>"');
print $part2;
我认为这更多的是您正在寻找的:
$part = '<input type="hidden" name="custom" value="' . htmlentities($_SESSION['user'] . '-' . $_SESSION['mpass']) . '" />';
您的示例中有很多糟糕的 PHP 语法。
<?php
标签将 HTML 转义为 PHP。当您有一个 PHP 文件时,您可以考虑的一种方式是您确实有一个 HTML 文档 - 但是您可以添加<?php
标签来编写 PHP 代码。在您的示例中,您尝试从 PHP 中打印 HTML ,这可能会变得很复杂。您已经在 PHP 块中,因此您不需要使用开始<?php
标记。 print
函数。该print
函数用于将文本写入屏幕。您可以像我编写的示例中那样使用变量名称来组合字符串。htmlentities
用于将字符串中的任何 HTML 呈现为文本。我们htmlentities
用来防止未知(用户输入的)数据修改我们的 HTML。像我在上面所做的那样在 $_SESSION 变量上使用 htmlentities 是个好主意,以确保它们不会input
用无效的 HTML 破坏我们的标签。在整个字符串上使用它只会打印您的 HTML,就好像它是原始文本一样。这是一种从 PHP 块外部编写它的方法:
<?php
// initial PHP code
?>
<input type="hidden" name="custom" value="<?php echo htmlentities($_SESSION['user'] . '-' . $_SESSION['mpass']) ?>" />
<?php
// continue PHP code
?>