Pass Data from One PHP Page to Another using header()
Solution 1
The following code works:
file1.php
:
<?php
header( 'Location: inner/file2.php?x=1&y=2&z=3' );
?>
inner/file2.php
:
<?php
print '<pre>';
var_dump( $_GET );
print '</pre>';
?>
The result of visiting http://localhost/testing/file1.php
is a redirect to http://localhost/testing/inner/file2.php?x=1&y=2&z=3
which displays:
array(3) {
["x"]=>
string(1) "1"
["y"]=>
string(1) "2"
["z"]=>
string(1) "3"
}
I would suggest copying over these test files and proving to yourself that the basic concept of redirecting with passed values is working. Then, build up the rest of your code around a known-good kernel. Good luck!
Solution 2
Without an example of the variables you want to send, it's kind of hard to tell what the problem might be, but a possible problem could be the characters in the variables.
To make sure there are no invalid characters, you can use urlencode()
, perhaps in combination with htmlentities()
, see the manual:
header("location:http://$host$uri/$extra?sms=".urlencode($msg)."&num=".urlencode($msg_num));
user1059869
Updated on November 23, 2020Comments
-
user1059869 over 3 years
I want to send data from one PHP file to another PHP file in a subfolder where the first PHP file is present. I have a folder named
folder1
which has contains a PHP file namedfile1.php
and I want to call another file namedfile2.php
in a subfolder offolder1
namedfolder2
. I am using theheader()
function like this infile1.php
:$host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'folder1/folder2/file2.php'; header("location:http://$host$uri/$extra?sms=".$msg."&num=".$msg_num);
Data is not passing. Is there any solution using
header()
? I can't usecURL
because of some restrictions.