PHP用户输入数据问题?

时间:2010-08-02 01:01:30

标签: php

好的当用户在数据库中输入标签时,我使用逗号删除HTML元素和单独的标签,但出于某种原因,当我删除html标签时,空值将与其他标签一起提交到数据库中例如,如果用户输入以下数据。

<html>,tag2,tag3,tag4 //an empty value is entered
,tag2,tag3,tag4 //this will also enter an empty value

html标签将被剥离,但是一个空值被提交到数据库中,如何才能阻止这种情况发生?

我认为这与我的代码部分有关。

$tags = explode(",", $_POST['tag']);

5 个答案:

答案 0 :(得分:4)

尝试

array_filter( //remove elements that evaluate to FALSE (includes empty ones)
    array_map('trim', //trim space around tags
        array_map('strip_tags', //remove html tags from the... tags
            explode(",", $_POST['tag'])))); //separate on comma

答案 1 :(得分:0)

这是一个删除PHP数组中空元素的函数的链接: http://www.bitrepository.com/remove-empty-values-from-an-array-in-php.html

答案 2 :(得分:0)

这将删除空白标签:

$tags = explode(",", $_POST['tag']);
$new_set  = array();

foreach ($tags as $tag){

  if ($tag == ''){

    $new_set[] = $tag;
  }
}

$tags = implode(',', $new);

// now store $tags into your database.

答案 3 :(得分:0)

将删除所有空数组元素。

 foreach($tags as $key => $tag) {
   if (empty($tag)) unset($tags[$key]);
 }

答案 4 :(得分:0)

如果你跑

explode(",", ",apple,pear,banana");

你会得到一个像这样的数组:

array('', 'apple', 'pear', 'banana');

explode()函数在有逗号的情况下拆分字符串。有三个逗号,这意味着它会将字符串拆分为四个。因为在输入字符串中的第一个逗号之前没有任何内容,这意味着第一个结果将是一个空字符串。

如果您不想这样,则需要从explode()的结果中过滤掉任何空字符串。您可以使用array_filter():

array_filter(explode(",", ",apple,pear,banana"));