2016-03-13 146 views
0

我尝试清除所有$_POST对我的PHP文件 我使用功能与tirmstripslashesmysql_real_escape_string

function filter($data) { 
$data = trim(htmlentities(strip_tags($data))); 
if (get_magic_quotes_gpc()) 
$data = stripslashes($data); 
$data = mysql_real_escape_string($data); 
return $data; 
} 




    foreach ($_POST as $key => $value) { 
$test="['".$key."']"; 
$_POST.$test=array(filter($value));  
    } 

我在这里尝试让所有来清除它第一线$_POST名称和值 并重新设置新值

+0

什么是你正在试图做的? – Iwnnay

+0

我尝试将所有$ _POST保护到所有脚本中 –

+0

这不是您如何访问php中的关联数组元素。你只要做'$ _POST [$ key] = ...'如果这不是你遇到的问题,你应该知道这一点。 – Terminus

回答

0

我的猜测是你看到了如何做类似的事情,并认为它需要像字符串一样运行。事实并非如此。我认为,相反,这是你正在寻找的实现代码:

<?php 

function filter($data) { 
    $data = trim(htmlentities(strip_tags($data))); 
    if (get_magic_quotes_gpc()) { 
     $data = mysql_real_escap_string(stripslashes($data)); 
    } 
    return $data; 
} 

foreach ($_POST as $key => $value) { 
    $_POST[$key] = filter($value);  
} 

有很多伟大的help on arrays at php.net。如果你正在寻找一些更先进的东西,我会建议看看array_walk。你的代码会更高性能和看起来像这样:

<?php 

function filter(&$data) { 
    $data = trim(htmlentities(strip_tags($data))); 
    if (get_magic_quotes_gpc()) { 
     $data = mysql_real_escap_string(stripslashes($data)); 
    } 
} 

array_walk ($_POST, 'filter'); 
+0

非常感谢iam这么开心 –

0

这里是给你的函数应用到您的文章阵列一个不错的简单的方法:

function filter(&$data) { 
    $data = trim(htmlentities(strip_tags($data))); 
    if (get_magic_quotes_gpc()) { 
     $data = mysql_real_escap_string(stripslashes($data)); 
    } 
    return $data; 
} 

array_walk($_POST, 'filter');