I have a php file that needs to redirect to another, but I need to pass an array to the second file. How can I do this.
I know this is wrong, but I need something l
That's not how you do headers. it'd have to be
header("Location: someurl.php?vals=$arr");
however, this would just generat the URL
someurl.php?vals=Array
Note that a redirect by its nature cannot do a POST. it will result in a new GET request, meaning you have to pass data in the URL. If you have a very large url, you're almost guaranteed to lose most of it, as URLs have length limits.
However, if it's a short one, you can try something like:
$url = 'someurl.php?vals=' . url_encode(serialize($arr));
header("Location: $url");
and hope it works.
If you don't want to expose your $array, you MUST use PHP inbuild session support.
session_start(); // DO CALL ON TOP OF BOTH PAGES
$_SESSION['array'] = $array;
echo $_SESSION['array']; // GIVES SAME $array FOR BOTH PAGES
You may store the array on the session or the request and then retrieve it.
If it is a different request you'll have to do it in the session.
$_SESSION['myarray'] = $array_you_want_to_store;
And then.
$array_you_want_to_retrieve = $_SESSION['myaarray'];
Use http_build_query:
header("Location: someurl.php?" . http_build_query($arr));