PHP dataValidation错误

时间:2015-01-10 13:29:28

标签: php function validation

在我的表单中验证用户输入,因此我制作了dataValidation并添加了htmlspecialchars()

      <?php

header('Content-Type: text/plain');

$post_cat = dataValidation("<a href='test'>Test</a>", ENT_QUOTES, 'UTF-8');

function dataValidation($cleandata) {
    $data = trim($cleandata);
    $data = stripslashes($cleandata);
    $data = htmlspecialchars($cleandata);
    return $cleandata;
}

echo $post_cat;

当我回复时,我会像这样<a href='test'>Test</a>

获得输出

但实际上在使用 htmlspecialchars()

输出应该是这样的:

&lt;a href='test'&gt;Test&lt;/a&gt;

但在我的情况下,dataValidation功能无效

2 个答案:

答案 0 :(得分:1)

return $cleandata;

应该是

return $data;

此外,您还要丢弃$data的中间值。你可能不想要那个。


不是答案的一部分,但我建议您使用带代码分析的IDE。代码分析可以告诉您{em>每次分配后$data没有被使用。这样可以让你及早发现这个bug。

答案 1 :(得分:1)

我认为应该是这样的

   function dataValidation($cleandata) {
     $data = trim($cleandata);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
   }