From 090711183d13724302aaaf7277959c7960c59508 Mon Sep 17 00:00:00 2001 From: Miha Vrhovnik Date: Wed, 12 Oct 2011 10:35:39 +0200 Subject: [PATCH] session data needs to be encoded because it can contain non binary safe characters e.g null. Fixes #2067 --- .../Bridge/Doctrine/HttpFoundation/DbalSessionStorage.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/HttpFoundation/DbalSessionStorage.php b/src/Symfony/Bridge/Doctrine/HttpFoundation/DbalSessionStorage.php index 8faf528a7c..88e1bf4693 100644 --- a/src/Symfony/Bridge/Doctrine/HttpFoundation/DbalSessionStorage.php +++ b/src/Symfony/Bridge/Doctrine/HttpFoundation/DbalSessionStorage.php @@ -132,7 +132,7 @@ class DbalSessionStorage extends NativeSessionStorage ))->fetchColumn(); if (false !== $data) { - return $data; + return base64_decode($data); } // session does not exist, create it @@ -170,7 +170,8 @@ class DbalSessionStorage extends NativeSessionStorage $rowCount = $this->con->exec(sprintf( $sql, $this->con->quote($id), - $this->con->quote($data), + //session data can contain non binary safe characters so we need to encode it + $this->con->quote(base64_encode($data)), time() )); @@ -196,7 +197,8 @@ class DbalSessionStorage extends NativeSessionStorage { $this->con->exec(sprintf("INSERT INTO {$this->tableName} (sess_id, sess_data, sess_time) VALUES (%s, %s, %d)", $this->con->quote($id), - $this->con->quote($data), + //session data can contain non binary safe characters so we need to encode it + $this->con->quote(base64_encode($data)), time() ));