Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Пропадают символы при проверке.

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

selbstausrotten



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Делаю проверку водимых данных и столкнулся с такой проблемой.
 
Если прогонять каждую переменную (здесь имя пользователя) отдельно, то всё нормально.
 
$imja = 'Петечкін, Вася ';

Код:
 
    $imja = stripslashes($imja);
    $imja = htmlspecialchars($imja);
    $imja = strip_tags($imja);
    $imja = trim($imja);
    $imja = htmlentities($imja, ENT_COMPAT, 'utf-8');
 

Получаем "Петечкін, Вася ".
А если использовать

Код:
 
if (!function_exists('check'))
{
  function check($var)
  {
    $var = stripslashes($var);
    $var = htmlspecialchars($var);
    $var = strip_tags($var);
    $var = trim($var);
    $var = htmlentities($var, ENT_COMPAT, 'utf-8');
    return $var;
  }
}
$imja = check ($imja);

Получаем "ПетечкінВася ".
Пропадают пробел, запятая...
Пробовал вычислить где пропадают - не получается.
Пропадают даже при пустой функции
Код:
 
if (!function_exists('check'))
{
  function check($var)
  {
    return $var;
  }
}
$imja = check ($imja);

Особенно сбивает с толку, что в другом скрипте с такой же проверкой всё работает нормально.

Всего записей: 47 | Зарегистр. 10-02-2011 | Отправлено: 14:21 08-11-2014 | Исправлено: selbstausrotten, 17:27 08-11-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
selbstausrotten

Цитата:
if (!function_exists('check'))  
{  

а вариант того, что есть такая же функция но с другим кодом, не рассматривается?
ну и сделайте var_dump переменной после каждого шага и посмотрите где именно это происходит

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 21:50 09-11-2014
selbstausrotten



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii, проверял всё. Функция одна. Символы пропадают просто по факту прохождения через функцию (даже пустую!).

Всего записей: 47 | Зарегистр. 10-02-2011 | Отправлено: 21:51 11-11-2014 | Исправлено: selbstausrotten, 22:12 11-11-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
selbstausrotten

Цитата:
Символы пропадают просто по факту прохождения через функцию (даже пустую!)

ну не бывает такого ))  
либо у вас глючный php, либо вы что то просто упускаете из виду.
еще раз - посмотрите в каком виде значение приходит в функцию.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 21:58 11-11-2014
selbstausrotten



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел.
Прошел весь цикл формирования страницы.
Вы были правы: такая функция уже использовалась в одном из подключаемых файлах.
Спасибо!

Всего записей: 47 | Зарегистр. 10-02-2011 | Отправлено: 23:00 11-11-2014 | Исправлено: selbstausrotten, 23:02 11-11-2014
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
selbstausrotten
на будущее
 

Код:
$reflFunc = new ReflectionFunction('имя_функции');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();

 
покажет где определена.
 
либо, просто убрать
Цитата:
if (!function_exists('check'))  

и ошибка укажет была ли функция определена ранее и где.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 23:42 11-11-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Пропадают символы при проверке.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru