php中的addslashes()函数出错

时间:2010-08-17 07:22:45

标签: php trim addslashes

html表单代码 -

<td width="75">
<input name="txtQty[]" type="text" id="txtQty[]" size="5" 
 value="<?php echo $ct_qty; ?>" class="box" onKeyUp="checkNumber(this);">

当我提交表单时,我会调用脚本 -

if (!get_magic_quotes_gpc()) {
if (isset($_POST)) {
    foreach ($_POST as $key => $value) {
        $_POST[$key] =  trim(addslashes($value));
    }
}

if (isset($_GET)) {
    foreach ($_GET as $key => $value) {
        $_GET[$key] = trim(addslashes($value));
    }
}   
}

错误 -

  

警告:addslashes()期望参数1为字符串,数组在第53行的C:\ xampp \ htdocs \ shizin \ products \ library \ config.php中给出

我认为这个脚本只是用来修剪输入但是我不知道这个addlash函数做了什么以及为什么会出现这个错误。

4 个答案:

答案 0 :(得分:2)

如果您在int值上应用此代码,则可以删除这些功能

if (!get_magic_quotes_gpc()) { 
if (isset($_POST)) { 
    foreach ($_POST as $key => $value) { 
        $_POST[$key] =  $value; 
    } 
} 

if (isset($_GET)) { 
    foreach ($_GET as $key => $value) { 
        $_GET[$key] = $value; 
    } 
}    
} 

答案 1 :(得分:1)

  1. 整个方法都错了。
    收到用户提供的数据后,您必须剥离斜线,使用魔术引号添加,而不是添加。

  2. 关于阵列方法它说已经发布了2个答案,我希望这里有很好的解释。 不太好,但无论如何。

  3. 因此,您需要2个代码段 第一个是来自http://www.php.net/manual/en/function.stripslashes.php

    的stripslashes_deep()

    在你告诉我们之后你会得到第二个,你为什么认为你需要你发布的代码。

答案 2 :(得分:0)

错误说,addslashes函数尝试使用斜杠引用字符串, 但参数不是字符串的$ value是数组,  什么包含$_GET

因为调用此脚本的页面传递了一个数组。 txtQty[]

http://php.net/manual/en/function.addslashes.php

答案 3 :(得分:0)

在将$值传递给addslashes()之前,只需回显$ value,然后你应该立即看到问题。