【问题标题】:how to accept less than sign in a php function如何在php函数中接受小于号
【发布时间】:2012-03-03 09:15:31
【问题描述】:

我在插入小于号"<" 后跟另一个字符时遇到问题,比如说"<p" 或类似"<---me" 的东西。我通过这个函数:

function checkValues($value)
{
    $value = trim($value);
    if (get_magic_quotes_gpc()) 
    {
        $value = stripslashes($value);
    }
    $value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES)));

    $value = strip_tags($value); //this line doesnt accept lessthan  

    $value = mysql_real_escape_string($value);
    $value = htmlspecialchars ($value);
    return $value;
}

我知道如果我删除 strip_tags() 小于号将被接受,但是在通过我的函数后立即将其保存到数据库中是否安全?或者有没有办法让小于号通过这个函数而保存到数据库时没有任何问题?

【问题讨论】:

标签: php


【解决方案1】:

您不应将已清理的用户数据保存到数据库 (htmlspecialchars())。您应该在输出前对其进行消毒,以防止出现问题。

其实,将< 登录到数据库并没有错。只要确保在正确的上下文中使用正确的清理(不要在mysql_real_escape_string() 之后使用htmlspecialchars()

你的函数有很多错误,看这个例子:

这个值会在你的函数中创建

\"

这个值应该在你的函数中创建

\"

真的错了

那么你的函数应该是什么样的?

function checkValues($value)
{
    $value = trim($value);
    if (get_magic_quotes_gpc()) 
    {
        $value = stripslashes($value);
    }

    $value = mysql_real_escape_string($value);
    return $value;
}

// just before outputing
function beforeOutput($value) {
    return htmlspecialchars($value);
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 2022-01-09
  • 2013-01-06
  • 2020-02-13
  • 2020-12-16
  • 2011-08-17
  • 1970-01-01
相关资源
最近更新 更多