From 944d98d16e62e5b0e7c655374819a7b88199e005 Mon Sep 17 00:00:00 2001 From: Eugen Date: Sat, 23 Mar 2013 00:58:43 +0100 Subject: [PATCH] Fix for double escaping of queries in the profiler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sometimes the logged queries would be rendered with visible HTML entities in the profiler, due to double encoding (You know, > stuff). I could not find out why it was being escaped twice, but I found an easy fix: since PHP 5.2.3 the htmlspecialchars function had a double_encoding parameter that could be set to false. VoilĂ ! --- laravel/profiling/profiler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laravel/profiling/profiler.php b/laravel/profiling/profiler.php index fe4397e5..1c722681 100644 --- a/laravel/profiling/profiler.php +++ b/laravel/profiling/profiler.php @@ -146,9 +146,9 @@ public static function query($sql, $bindings, $time) foreach ($bindings as $binding) { $binding = Database::escape($binding); - + $sql = preg_replace('/\?/', $binding, $sql, 1); - $sql = htmlspecialchars($sql); + $sql = htmlspecialchars($sql, ENT_QUOTES, 'UTF-8', false); } static::$data['queries'][] = array($sql, $time);