下面我的代码是在检查页面源没有删除用户名的HTML标签时输出,即使我指定剥离它们。如果我通过PHP函数<p>
本身删除底部的echo
标记而只删除Login()
,strip_tags
可以正常工作,但如果我尝试输出条带标记的值HTML,它失败了。
PHP代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<?php
function Login() {
$username = $_POST['username'];
$password = $_POST['password'];
$username = strip_tags($username);
$password = strip_tags($password);
$username = trim($username);
$password = trim($password);
?>
<?php echo "<p>" . $username . "</p>" ?></p>
<?php echo "<p>" . $password . "</p>" ?></p>
</body>
</html>
有关为什么回显文本$ username和$ password与标签一起显示的任何见解仍然非常感激。
答案 0 :(得分:3)
在此示例中,您没有调用Login()
函数,并且在函数声明后缺少}
。此外,变量范围已关闭。请考虑以下事项:)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
<?php
function Login() {
$username = strip_tags(trim($_POST['username']));
$password = strip_tags(trim($_POST['password']));
echo '<p>', $username, '</p><p>', $password, '</p>';
}
if (!empty($_POST)) Login();
?>
</body>
</html>