【问题标题】:strip_tags php function is leaving the tagsstrip_tags php 函数正在离开标签
【发布时间】: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 标记,而不是代码中的包装 &lt;p&gt; 标记...
  • 你的代码似乎有解析错误?你错过了函数的 close } 括号
  • 这只是示例代码吧?因为login() 从未被调用,这就是为什么没有标签被剥离(并且可能 register globals 已打开 (fear)
  • 您还有两个关闭段落元素:一个在echo 中,一个在 PHP 代码块之后。

标签: php html strip-tags


【解决方案1】:

在此示例中,您没有调用 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>

【讨论】:

  • 哇,非常感谢您的帮助。这很好地解决了问题!
  • 没问题!如果这解决了您的问题,请随时接受答案:)
猜你喜欢
  • 2011-06-27
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多