noobie-php
noobie-php

Reputation: 7223

Header() substitute

Hi I am new to php and want to know some alternate function for the header('location:mysit.php');

I am in a scenario that I am sending the request like this:

header('Location: http://localhost/(some external site).php'&?var='test')

something like this but what I wanna do is that I want to send values of variables to the external site but I actually dont want that page to pop out.

I mean variables should be sent to some external site/page but on screen I want to be redirected to my login page. But seemingly I dont know any alternative please guide me. Thx.

Upvotes: 0

Views: 476

Answers (4)

matthiasmullie
matthiasmullie

Reputation: 2083

You could connect to another URL in the background in numerous ways. There's cURL ( http://php.net/curl - already mentioned here in previous comments ), there's fopen ( http://php.net/manual/en/function.fopen.php ), there's fsockopen ( http://php.net/manual/en/function.fsockopen.php - little more advanced )

Upvotes: 0

Repox
Repox

Reputation: 15476

The way you usually would do that is by sending those parameters by cURL, parse the return values and use them however you need.

By using cURL you can pass POST and GET variables to any URL. Like so:

$ch = curl_init('http://example.org/?aVariable=theValue');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

Now, in $result you have the response from the URL passed to curl_init().

If you need to post data, the code needs a little more:

$ch = curl_init('http://example.org/page_to_post_to.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'variable1=value1&variable2=value2');
$result = curl_exec($ch);
curl_close($ch);

Again, the result from your POST reqeust is saved to $result.

Upvotes: 1

Sascha Galley
Sascha Galley

Reputation: 16091

You are searching for PHP cUrl:

$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

Upvotes: 3

Quentin
Quentin

Reputation: 943207

Set the location header to the place you actually want to redirect the browser to and use something like cURL to make an HTTP request to the remote site.

Upvotes: 2

Related Questions