에 _redirector 도우미를 사용하여 I 오류 컨트롤러에 컨트롤러 (경우에 따라)가 재 리디렉터 도우미를 사용하여 행동 '하지-로그인 한'. 내 문제는 다음과 같습니다 : 사용자가 로그인을 수행 한 후 해당 페이지로 돌아갈 수 있도록 $ _POST 배열 (리디렉션이 발생한 위치의 URL)에 인수를 전달하려고합니다.
리디렉션 도우미를 사용하는 동안 어떻게 $ _POST 배열에 데이터를 둘 수 있습니까?
감사합니다.
에 _redirector 도우미를 사용하여 I 오류 컨트롤러에 컨트롤러 (경우에 따라)가 재 리디렉터 도우미를 사용하여 행동 '하지-로그인 한'. 내 문제는 다음과 같습니다 : 사용자가 로그인을 수행 한 후 해당 페이지로 돌아갈 수 있도록 $ _POST 배열 (리디렉션이 발생한 위치의 URL)에 인수를 전달하려고합니다.
리디렉션 도우미를 사용하는 동안 어떻게 $ _POST 배열에 데이터를 둘 수 있습니까?
감사합니다.
(예. goToRoute
)을 paramters은 함께 전달됩니다. 당신이 요청에 refferrer를 추가 따라서 경우에 당신은 실제로 리디렉션하기 전에 :
// Assuming $request is a Zend_Controller_Request
$request->setParam('ref', $referrer);
// then use the redirector
는 그 변수를 재 지정시 요청과 함께 전달됩니다. 그러면 리디렉션 된 작업의 요청에서 해당 변수를 확인하거나 잡아서 양식의 숨겨진 필드로 설정해야합니다. 그런 다음 양식이 로그인 액션에 게시되면 다시
ref
변수가 있는지 확인하고 해당 위치로의 성공적인 로그인 리디렉션을 확인할 수 있습니다. 내가 당신이라면
지금 내가 실제로 URL하지만 이전 요청의 매개 변수의 직렬화 또는 JSON 인코딩 된 배열로 참조를 사용하지 않을 것입니다. 그런 식으로이 두 번째 인스턴스에서도 goToRoute
을 사용할 수 있습니다.
는 Zend_Controller_Router_Rewrite
및 Zend_Controller_Action_Helper_Redirector
의 코드를 살펴 보는 것입니다.
일부 소켓 또는 컬 jiggery pokery 없이는 불가능합니다.
같은 방식으로 $ _SESSION 배열을 사용해 보시지 않겠습니까?
사용자가 검색 주소창의 리디렉션 URL을 볼 수 있는지 여부가 중요합니까? 나는 그들이 신경 쓰일지 의심하고 몇몇 톱 사이트에서 몇 번 본다.
저는 사람을 다른 페이지로 리디렉션 할 때 POST를 보낼 수 없다고 확신합니다. 하지만 어쩌면 그렇게 할 수 있습니다. 만약 그렇다면 누군가가 나를 틀린 것으로 여기기를 바랍니다.
나는 당신이 젠드 프레임 워크를 사용하여 원하는 것을 할 것입니다 방법을 잘 모르겠어요,하지만 난 방법 일반적으로 그것을 수행하는 두 가지 방법을 제안한다. GET 변수를 보내거나 세션 변수를 사용하여 백 URL을 저장할 수 있습니다. 모두가 하나의 작용하에 속하는처럼 로그인 페이지로 제어를 전달
은 는 _redirect
보다 _forward
같은 더 느낀다. 특히 당신이 곧 돌아올 것이기 때문에.
_forward($action, $controller = null, $module = null, array $params = null)
그런 다음 원래 위치를 $params
에 전달할 수 있습니다. 당신이 내부 리디렉션으로 리디렉터를 사용하는 경우
리디렉션 할 때 절대로 POST 데이터를 보낼 수 없습니다. 오직 GET. 실제 리다이렉트 (redirect) 헤더는 "당신이 틀린 장소에 있고, 여기 [찾고있다]"라고만 알려줍니다. –