2016-12-13 3 views
1

У меня есть специальная проблема с символом в моем PHP-коде. $ customer_code извлекается методом $ _POST.Неточные данные PHP при использовании метода POST

, когда я ввожу значение со специальным символом (например, D & C '), он может отправлять POST точные данные.

но в моем коде.

If($customer_code != 'D&C') {//this will return true. i also tried using " 
    die($customer_code . ' - D&C'); //will return D&C - D&C 
} 

почему POSTED 'D & C' и 'статический D & C' не равно? я надеюсь, что кто-то может мне помочь

+0

'die()' в нем не должно быть никакого кода – Blueblazer172

+2

Запустите 'var_dump()' на обоих и посмотрим, что он на самом деле содержит – Qirel

+0

Используйте '! ==' в вашем if. Кроме того, по умолчанию проверьте свою PHP-кодировку и добавьте '' в ваш html-файл – AnthonyB

ответ

0

Если вы уверены, что запрос POST работает (, как указано в комментариях, с помощью var_dump($_POST);, например), то это может быть проблемой кодирования. Если вы используете форму HTML, чтобы достигнуть страницы PHP, попробуйте добавить следующий код в форму:

<form action="your_page.php" accept-charset="ISO-8859-1"> 

Подробнее относительно его использования здесь: http://www.w3schools.com/tags/att_form_accept_charset.asp

и глубже статьи здесь: http://kunststube.net/frontback/

+0

Не поддерживает ли амперсанд (D и C) одну и ту же последовательность байтов как в ASCII, 8859, так и в UTF-8? – Progrock

0

спасибо за помощь, ребята, но я уже решил проблему.

с помощью str_replace

$customer_code = str_replace("&AMP;","&",$customer_code); 

специальный выпуск характер. все еще спасибо за усилие

Смежные вопросы