From 63168905ec094c37fa91a03df7cc00cc84606592 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Wed, 22 Oct 2014 09:04:32 +0200 Subject: [PATCH 1/2] Fix #1190 --- boot.php | 15 +++++++++++---- mod/network.php | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 0d7c6e878f..0dee716e77 100644 --- a/boot.php +++ b/boot.php @@ -522,21 +522,28 @@ if(! class_exists('App')) { if (substr($this->query_string, 0, 1) == "/") $this->query_string = substr($this->query_string, 1); } + if (x($_GET,'pagename')) $this->cmd = trim($_GET['pagename'],'/\\'); elseif (x($_GET,'q')) $this->cmd = trim($_GET['q'],'/\\'); - + + + // fix query_string + $this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string); + + // unix style "homedir" - + if(substr($this->cmd,0,1) === '~') - $this->cmd = 'profile/' . substr($this->cmd,1); - + $this->cmd = 'profile/' . substr($this->cmd,1); + // Diaspora style profile url if(substr($this->cmd,0,2) === 'u/') $this->cmd = 'profile/' . substr($this->cmd,2); + /** * * Break the URL path into C style argc/argv style arguments for our diff --git a/mod/network.php b/mod/network.php index ab44073508..b38824e679 100644 --- a/mod/network.php +++ b/mod/network.php @@ -297,7 +297,7 @@ function network_content(&$a, $update = 0) { if(! local_user()) { $_SESSION['return_url'] = $a->query_string; - return login(false); + return login(false); } $arr = array('query' => $a->query_string); From f7cf72e450704ed0e571f59963e15c6265883cee Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Wed, 22 Oct 2014 09:32:24 +0200 Subject: [PATCH 2/2] fix use of $->query_string --- mod/dfrn_request.php | 6 +----- mod/network.php | 7 ++++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 5e19a1ffc1..aee8c0306f 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -648,12 +648,8 @@ function dfrn_request_content(&$a) { if(! local_user()) { info( t("Please login to confirm introduction.") . EOL ); - /* setup the return URL to come back to this page if they use openid */ - - $stripped = str_replace('q=','',$a->query_string); - $_SESSION['return_url'] = trim($stripped,'/'); - + $_SESSION['return_url'] = $a->query_string; return login(); } diff --git a/mod/network.php b/mod/network.php index b38824e679..bff30f7fc3 100644 --- a/mod/network.php +++ b/mod/network.php @@ -16,9 +16,10 @@ function network_init(&$a) { } } - // convert query string to array and remove first element (which is friendica args) + // convert query string to array. remove friendica args $query_array = array(); - parse_str($a->query_string, $query_array); + $query_string = str_replace($a->cmd."?", "", $a->query_string); + parse_str($query_string, $query_array); array_shift($query_array); // fetch last used network view and redirect if needed @@ -300,8 +301,8 @@ function network_content(&$a, $update = 0) { return login(false); } + // TODO:is this really necessary? $a is already available to hooks $arr = array('query' => $a->query_string); - call_hooks('network_content_init', $arr);