2014-09-08 3 views
0

다른 질문 (passing variables in cgi)에 대한 해결책을 찾기 위해 나는 apache_notes이라는 개념에 부딪혔다. 그런 다음 신비한 $r 변수를 사용하는 CPAN의 일련의 모듈로 나를 안내했다. 물건을 다 써 버리고, 그러나 너무 깊이 파고 들지 않았다). 어떤 모듈도 실제로 $r이 어디에서 왔는지를 설명하지 못합니다. 그들은 모두 쉽게 사용할 수 있다고 가정합니다. 내가 변수를 이해할 수있는 것은 mod_perl과 관련이 있으며 (나는 거의 아무것도 알지 못함) 또는 아파치 handlers과 관련이 있습니다.

내 질문은 mod_perl 또는 apache handler 정의를 사용하지 않고 CGI 스크립트 호출에서 $r 아파치 요청 변수를 가져 오는 방법이 있습니까? CGI의 apache_notes에 액세스 할 수있는 방법이 있는지

또한, 나는 그 상기 질문에 대답 할 생각하고,이를 달성하는 방법에 대한이 답변 주시면 감사하겠습니다!)

답변

2

번호 그것은 아파치의 (libapr) 요청 객체. Apache에 임베드되지 않은 경우 Apache 요청 객체가 없습니다.

하지만 어쨌든 CGI의 메모에는 사용할 수 없습니다. 스크립트가 정보를 요청 객체에 매달아 정보를 공유 할 수있는 다른 코드는 없으므로 대신 변수 만 사용할 수 있습니다.

+0

필자가 사용하는 노트는 다른 스크립트를 호출하는 것이지만 (이상적으로는 아파치 하위 요청이 될 수도 있지만, mod_perl이나 핸들러 외부에서는 가능하지 않다) 필요한 데이터를 보내야한다. 이전 접근법은 URI :: get() 호출을 수행하는 것이었지만 필요한 변수를받지 못했습니다. 따라서이 해결책을 찾으십시오. 어떤 아이디어? (참조 된 질문 참조). – insaner

+2

@insaner 다른 스크립트를 실행중인 경우 환경, 명령 줄 또는 파일 시스템을 통해 데이터를 전달할 수 있습니다. 동일한 규칙이 CGI없이 적용됩니다. – hobbs

+0

미안하지만 (이것은 다른 질문에 언급되어 있습니다) 미안하지만, get() 호출을 사용하는 이유와 $ r의 데이터가 필요한 이유는 아파치가 특정 재 작성을 해결하는 방법을 알아야하기 때문입니다 규칙 및 리다이렉션이 필요하므로 ENV를 수정하는 스크립트를 호출하는 것만 큼 쉽지는 않습니다 (이전에 다른 스크립트에서 수행 한 작업). 즉, get ("/ path/something")은 스크립트로 해석 될 수 있지만 index.html로만 해석 될 수도 있습니다. 이 경우 index.html을 스크립트로 호출하는 것은 의미가 없습니다. 또한 동일한 요청 유형 (GET 또는 POST)을 만들어야합니다. – insaner

관련 문제