ошибка во время функции addlashes () в php - PullRequest
1 голос
/ 17 августа 2010

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

error-

Предупреждение: addlashes () ожидает, что параметр 1 будет строкой, а массив указан в C: \ xampp \ htdocs \ shizin \ products \ library \ config.php в строке 53

Я думаю, что этот скрипт используется только для обрезки ввода, но я не знаю, что делает эта функция addlash и почему возникает эта ошибка.

Ответы [ 4 ]

2 голосов
/ 02 декабря 2010

Если вы примените этот код к значению 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 голос
/ 17 августа 2010
  1. Весь подход неверен.
    При получении данных, предоставленных пользователем, вы должны вырезать слеш, добавленные магическими кавычками, а не добавлять.

  2. О подходе к массиву сказано, что 2 ответа уже опубликованы, надеюсь, это хорошо объяснено здесь. Не очень хорошо, но все равно.

Итак, вам понадобятся 2 фрагмента кода.
Первый - это stripslashes_deep () из http://www.php.net/manual/en/function.stripslashes.php

Второй, который вы получите после того, как расскажете нам, почему вы решили, что вам нужен код, который вы опубликовали.

0 голосов
/ 17 августа 2010

Просто передайте значение $ echo $ перед addlashes (), и вы сразу увидите проблему.

0 голосов
/ 17 августа 2010

говорит об ошибке, функция addslashes пытается заключить в кавычки строку с косой чертой, но значение $, параметр не является строкой, является массивом , что СОДЕРЖИТ $_GET?

это потому, что страница, которая вызывает этот скрипт, передает массив.txtQty[]

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

...