PHP Warning: Invalid UTF-8 sequence in argument in /ajax.php on line 24
Prior to
should there be something likeCode:echo json_encode ($result);exit();
Code:$result = htmlentities((string)$result, ENT_QUOTES, 'utf-8', FALSE);
PHP Warning: Invalid UTF-8 sequence in argument in /ajax.php on line 24
Prior to
should there be something likeCode:echo json_encode ($result);exit();
Code:$result = htmlentities((string)$result, ENT_QUOTES, 'utf-8', FALSE);
That Software Guy. My Store: Zen Cart Support
Available for hire - See my ad in Services
Plugin Moderator, Documentation Curator, Chief Cook and Bottle-Washer.
Do you benefit from Zen Cart? Then please support the project.
Can you describe the steps you took to trigger the error message?
.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole
Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.
Checkout by credit card (Paypal Express) with this item - the checkout confirmation page is blank in the center column, but the remainder of the page including the footer do render.
The fix I suggested above seems to resolve this issue.
That Software Guy. My Store: Zen Cart Support
Available for hire - See my ad in Services
Plugin Moderator, Documentation Curator, Chief Cook and Bottle-Washer.
Do you benefit from Zen Cart? Then please support the project.
Similar issue identified at: https://www.zen-cart.com/showthread....ment-with-V154
The direction of this thread appeared to resolve the issue.
ZC Installation/Maintenance Support <- Site
Contribution for contributions welcome...
FWIW, this change breaks one of my commercial plugins. That plugin returns an array of information to an AJAX request and the suggestion of simply casting the result to a string wrecks havoc!
Here's the change that I made, allowing the return values to be string-value-containing-names or array elements:
Code:<?php /** * ajax front controller * * @package core * @copyright Copyright 2003-2015 Zen Cart Development Team * @copyright Portions Copyright 2003 osCommerce * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 * @version GIT: $Id: Author: Ian Wilson Modified in v1.6.0 $ */ require ('includes/application_top.php'); //-bof-lat9 *** 1 of 2 *** function htmlentities_mixed ($mixed_value, $flags, $encoding = 'utf-8', $double_encode = true) { if (!is_array ($mixed_value)) { $result = htmlentities ((string)$mixed_value, $flags, $encoding, $double_encode); } else { $result = array (); foreach ($mixed_value as $key => $value) { $result[$key] = htmlentities_mixed ($value, $flags, $encoding, $double_encode); } } return $result; } //-eof-lat9 *** 1 of 2 *** $language_page_directory = DIR_WS_LANGUAGES.$_SESSION['language'].'/'; if (isset ($_GET['act'])&&isset ($_GET['method'])) { $className = 'zc'.ucfirst ($_GET['act']); $classFile = $className.'.php'; if (file_exists (DIR_FS_CATALOG.DIR_WS_CLASSES.'ajax/'.$classFile)) { require (DIR_FS_CATALOG.DIR_WS_CLASSES.'ajax/'.$classFile); $class = new $className (); if (method_exists ($class, $_GET['method'])) { $result = call_user_func (array( $class, $_GET['method'] )); //-bof-lat9 *** 2 of 2 *** $result = htmlentities_mixed ($result, ENT_QUOTES, 'utf-8', FALSE); //-eof-lat9 *** 2 of 2 *** echo json_encode ($result);exit(); } else { echo 'method error'; } } }
That Software Guy. My Store: Zen Cart Support
Available for hire - See my ad in Services
Plugin Moderator, Documentation Curator, Chief Cook and Bottle-Washer.
Do you benefit from Zen Cart? Then please support the project.
Bookmarks