anilCSE
anilCSE

Reputation: 2461

How to send query params as query string?

I have this scenario. I am implementing payment for my application and url is like http://example.com/payment?referenceId=123. And before that I need to check for authentication and need to use redirect_url concept if the user is not logged in. I have this url for redirect_url: http://example.com/login?redirect_url=URL Since I have query parameters in source url too, I couldn't use that url as redirect_url. How can I do this?

Upvotes: 1

Views: 62

Answers (3)

Mangesh Sathe
Mangesh Sathe

Reputation: 2177

For URL http://example.com/login?redirect_url=http://example.com/payment?referenceId=12‌​3

Use $redirect_url = $_GET['redirect_url']; // $redirect_url contains http://example.com/payment?referenceId=12‌​3

Then use php's inbuild function parse_url to filter out 'referenceId' from $redirect_url

<?php
$url = '//www.example.com/path?googleguy=googley';

var_dump(parse_url($url));
?>

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

Check for more info http://php.net/manual/en/function.parse-url.php

This part googleguy=googley will actually hold your required data

Upvotes: 0

Thomas N T
Thomas N T

Reputation: 459

To check authentication store referenceId as a session variable. Start session in your authentication page and check the url-referenceId is equal to the stored userId of that particular session.

session_start(); 

$_SESSION['referenceId'] = 123; 

if((url_ReferenceId)=$_SESSION['referenceId'])
{

//Check for authentication
}

Upvotes: 0

Parth Shah
Parth Shah

Reputation: 21

One possible way to do this task is to store http://example.com/payment?referenceId=123 in session when redirecting to login page and when login is completed then check if session has value for redirect then redirect to that url from session.

Upvotes: 1

Related Questions