【发布时间】:2012-10-02 17:53:44
【问题描述】:
当我检查不删除用户名的 HTML 标记的页面源时,我的下面的代码给出了一个输出,即使我指定删除它们。如果我通过 PHP 函数 Login() 本身删除底部的 <p> 标记并仅删除 echo ,则 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 与标签一起显示的见解仍然将不胜感激。
【问题讨论】:
-
我假设您的意思是它们是包含的 HTML 标记,而不是代码中的包装
<p>标记... -
你的代码似乎有解析错误?你错过了函数的 close } 括号
-
这只是示例代码吧?因为
login()从未被调用,这就是为什么没有标签被剥离(并且可能 register globals 已打开 (fear)) -
您还有两个关闭段落元素:一个在
echo中,一个在 PHP 代码块之后。
标签: php html strip-tags