error during addslashes() function in php

梦想与她 提交于 2020-01-15 12:14:35

问题


html form code-

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

when I submit form I calls following script-

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));
    }
}   
}

error-

Warning: addslashes() expects parameter 1 to be string, array given in C:\xampp\htdocs\shizin\products\library\config.php on line 53

I think this script is being used just to trim input but I dont know what this addslash function does and why this error coming.


回答1:


If you apply this code on an int value then you remove these function like this

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; 
    } 
}    
} 



回答2:


  1. The whole approach is wrong.
    Upon receiving user supplied data you have to strip slashes, added by magic quotes, not add.

  2. About array approach it says 2 answers already posted, I hope it is well explained here. Not so well, but anyway.

So, you will need 2 code snippets.
A first one is stripslashes_deep() from http://www.php.net/manual/en/function.stripslashes.php

A second one you will get after you tell us, why did you think you need the code you posted.




回答3:


the error said , the addslashes function try to Quote string with slashes , but the $value the parameter is not a string is an array, what CONTAIN the $_GET ?

its because that the page that call to this script pass a array . txtQty[]

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




回答4:


Just echo $value before passing it to addslashes(), then you should see the problem immediately.



来源:https://stackoverflow.com/questions/3500182/error-during-addslashes-function-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!