From ba5d3a24bc8626cac59cf0d44f242e7fa585a145 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Mon, 20 Mar 2017 09:09:29 +0100
Subject: [PATCH] =?UTF-8?q?=C3=84nderung=20von=20URL-Parametern=20nun=20m?=
 =?UTF-8?q?=C3=B6glich?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bislang konnten nicht mehrere GET-Request hintereinander auf die gleiche URL, aber mit anderen Parametern gestartet werden. Dies ist nun möglich. Die vorhandenen paramter werden nun geupdated
---
 app/Http/Controllers/ProxyController.php | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/app/Http/Controllers/ProxyController.php b/app/Http/Controllers/ProxyController.php
index 07616a4..fb4ea04 100644
--- a/app/Http/Controllers/ProxyController.php
+++ b/app/Http/Controllers/ProxyController.php
@@ -33,11 +33,26 @@ class ProxyController extends Controller
             # Let's redirect to the correct URI
             $proxyParams   = $request->except(array_keys($params));
             $redirProxyUrl = $targetUrl;
+            $redirParams   = [];
             if (strpos($redirProxyUrl, "?") === false) {
                 $redirProxyUrl .= "?";
+            } else {
+                # There are already Params for this site which need to get updated
+                $tmpParams = substr($redirProxyUrl, strpos($redirProxyUrl, "?") + 1);
+                $tmpParams = explode("&", $tmpParams);
+                foreach ($tmpParams as $param) {
+                    $tmp = explode("=", $param);
+                    if (sizeof($tmp) === 2) {
+                        $redirParams[$tmp[0]] = $tmp[1];
+                    }
+                }
             }
 
             foreach ($params as $key => $value) {
+                $redirParams[$key] = $value;
+            }
+
+            foreach ($redirParams as $key => $value) {
                 $redirProxyUrl .= $key . "=" . urlencode($value) . "&";
             }
 
-- 
GitLab