다른 파일로 리디렉션해야하는 PHP 파일이 있지만 두 번째 파일에 배열을 전달해야합니다. 어떻게해야합니까?두 PHP 파일 사이에 배열을 전달하십시오.
나는 이것이 잘못되었다는 것을 알고 있지만 논리적으로 이와 비슷한 것이 필요하다.
<?php
$arr = array('this'=>'is', 'some'=>'stuff');
header("someurl.php", vals=>$arr);
?>
다른 파일로 리디렉션해야하는 PHP 파일이 있지만 두 번째 파일에 배열을 전달해야합니다. 어떻게해야합니까?두 PHP 파일 사이에 배열을 전달하십시오.
나는 이것이 잘못되었다는 것을 알고 있지만 논리적으로 이와 비슷한 것이 필요하다.
<?php
$arr = array('this'=>'is', 'some'=>'stuff');
header("someurl.php", vals=>$arr);
?>
$ 배열을 노출하지 않으려면 PHP inbuild 세션 지원을 사용해야합니다.
session_start(); // DO CALL ON TOP OF BOTH PAGES
$_SESSION['array'] = $array;
echo $_SESSION['array']; // GIVES SAME $array FOR BOTH PAGES
사용 http_build_query
:
header("Location: someurl.php?" . http_build_query($arr));
. 그것은이 단지 URL에게 그것의 본래 리디렉션이 POST를 할 수 없어
someurl.php?vals=Array
참고 generat라는 것, 그러나
header("Location: someurl.php?vals=$arr");
일해야 할 것이다. 새로운 GET 요청이 발생합니다. 즉, URL에 데이터를 전달해야합니다. 매우 큰 URL이있는 경우 URL의 길이 제한이 있으므로 거의 대부분을 잃을 수 있습니다. 이 짧은 사람이 있다면
그러나이 같은 시도 할 수 있습니다 :
$url = 'someurl.php?vals=' . url_encode(serialize($arr));
header("Location: $url");
을하고 작동 바랍니다.
세션 또는 요청에 배열을 저장 한 다음 검색 할 수 있습니다. 다른 요청 인 경우 세션에서해야합니다.
$ _SESSION [ 'myarray'] = $ array_you_want_to_store;
그리고.
$ array_you_want_to_retrieve = $ _SESSION [ 'myaarray'];
사용자가 탭 브라우징 (= everyone)을 사용하고 한 번에 여러 링크를 클릭하면 상당한 문제가 발생합니다. – Halcyon
네, 맞습니다. –
"파일 간 전달"이란 무엇입니까? –