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