Не удается удалить обратную косую черту из кода ниже?

ниже приведен мой код, проблема в том, что при вводе любого имени пользователя с апострофом (‘) при возвращении результатов поиска отображается дополнительный символ «\ backslash».

Ниже мой код, я считаю, что функция addslashes используется в checkusername функция, так что добавляется обратная косая черта.

if ( 0 < count( $my_field_place ))
{
for ( $i = 0; $i < count( $my_field_place ); $i++ )
{
if ( true === isset( $Fields[$i] ))
{
print "gMapping[$i] = new MappingItem( '" .
addslashes( $Fields[$i] ) .
"', '" .
checkusername( $my_field_place[$i] ) .
"' );";
}
}
}function checkusername($inStr)
{
$orig = array();
$new  = array();

$orig[00] = "/\n/`"          ;  $new[00] = "\\?n";
$orig[01] = "/[^\x-*()]/";  $new[01] = "";

$var1 = preg_replace($orig, $new, $inStr);
$var2 = addslashes($var1 );     // i am not sure why addslashes is used but i am asked not to remove because of security reasion?

return $var2;
}

Примечание: я гуглю и нахожу, что он используется по соображениям безопасности
Так как в моем случае мы показываем только результат поиска. Поэтому я не уверен, почему эта функция используется здесь.
Мое исправление состоит в том, чтобы добавить stripslashes() перед возвратом функция удаляет обратную косую черту, добавленную функцией addlashes ().
Пожалуйста, найдите фрагмент кода и комментарий для изменения кода ниже:

function checkusername($inStr)
{
$orig = array();
$new  = array();

$orig[00] = "/\n/`"          ;  $new[00] = "\\?n";
$orig[01] = "/[^\x-*()]/";  $new[01] = "";

$var1 = preg_replace($orig, $new, $inStr);
$var2 = addslashes($var1);

return stripslashes($var2); // i am not sure stripslashes is correct fix or not?
}

Пожалуйста, помогите, это нормально, чтобы добавить stripslashes или есть другой способ справиться с этим?

1

Решение

Вы можете ограничить пользователя от этих специальных символов
хотя в Gmail, Yahoo, FB и т. д. они никогда не будут
разрешить этот символ. т позволяет несколько слов, которые будут представлены в несколько читабельным образом
ниже некоторые документы
https://support.google.com/a/answer/33386?hl=en
см. второе руководство

0

Другие решения

Других решений пока нет …