Показать сообщение отдельно
  #1 (permalink)  
Старый 21.12.2018, 13:24
Профессор
Отправить личное сообщение для giwuf Посмотреть профиль Найти все сообщения от giwuf
 
Регистрация: 16.05.2017
Сообщений: 167

Почему при передаче php переменной в скрипт данные кодируются в uft-8?
Добрый день. Вопрос не из простых.

Касается он настройки платежной системы в интернет-магазине woocommerce. Проблема заключается в следующем: данные переменной php (почтовый адрес) передаются в скрипт почему-то закодированными.

Для начала получаю данные поля email введенные пользователем. С помощью var_dump проверяю, что в переменной содержится верная информация (email o4137889@nwytg.net), но при передаче переменной внутрь скрипта
accountId: '<?=$order->billing_email?>'


получаю вот такую закодированную строку в **utf-8**
accountId: '&#x6f;4&#x31;&#x33;7&#x38;&#x38;9&#x40;&#x6e;w&#x79;&#x74;g&#x2e;&#x6e;e&#x74;',


Причем, не важно выводится ли она через сокращенные <?= ?> или <?php ?> и echo
accountId: '<?php echo $billing_email ?>',

, через переменную или напрямую - результат каждый раз идентичен.

С чем это может быть связано и как исправить?

Код:
global $woocommerce;			
$order = new WC_Order( $order_id );
var_dump($order->billing_email); //o4137889@nwytg.net

<script src="https://widget.cloudpayments.ru/bundles/cloudpayments"></script>
<script>
	var widget = new cp.CloudPayments();
        widget.<?=$widget_f?>({ // options              <!-- /////////////???????????????  -->
        publicId: '<?=$this->public_id?>',  //id из личного кабинета
        description: 'Оплата заказа <?=$order_id?>', //назначение
        amount: <?=$order->get_total()?>, //сумма
        currency: '<?=$this->currency?>', //валюта
        invoiceId: <?=$order_id?>, //номер заказа 
        accountId: '<?=$order->billing_email?>', //идентификатор плательщика
        data: <?php echo (($this->kassa_enabled == 'yes') ? json_encode($kassa_array) : "{}") ?>
		            },
	function (options) { // success
		window.location.replace('<?=$this->get_return_url($order)?>');
	},
	function (reason, options) { // fail
		window.location.replace('<?=$order->get_cancel_order_url()?>');
        }
);
</script>


Сервер находится на unix под управлением vesta cp с php версией 7.2

Последний раз редактировалось giwuf, 21.12.2018 в 13:33.
Ответить с цитированием