0

다른 기능 중에서도 특정 POST 변수를 가로 채고 PHP 세션을 설정하고 모든 관련 세션 변수를 설정해야하는 Apache 2 모듈을 개발하려고합니다.Apache 모듈 개발 : PHP 세션 액세스

내가 고려한 한 가지 옵션은 쿠키 라이브러리를 사용하여 요청에 PHPSESSID를 설정 한 다음이 모든 값을 $ _SESSION 연관 배열에 삽입하는 것입니다.

문제 PHP에 대한 API를 찾을 수없는 것 같습니다. 이러한 값이 실제로 아파치 서버 자체에 있다는 나의 의구심은 현재 근거가 없습니다.

누구에게도 이것이 가능한지 알고 있습니까? 또는 간단한 해결 방법이 간과된다고해도?

+2

나는 당신이하고 싶은 것을 위해 아파치 모듈이 아닌 PHP 확장을 작성해야한다고 생각한다. 요청에서 아파치에 조인하면 PHP가 아직 호출되지 않았으므로 세션 변수를 삽입 할 수있는 곳이 없다. 요청에서 나중에 연결하면 PHP가 이미 실행되었으므로 (FastCGI의 경우) 아파치 훅은 실행되지 않을 가능성이 높습니다. PHP 확장 기능 개발에 대한 정보는 [PHP at the Core] (http://www.php.net/manual/en/internals2.php)에서 확인하십시오. – drew010

+0

PHP 확장을 쓰는 것은 다른 웹 처리 시스템 (예 : CGI)을 작성하는 것을 의미 할 것이며, 특히 제 경우에는 그다지 큰 어려움이 없습니다. – ravemir

+0

잘 모르겠다. PHP 확장은 실제로 사용하고자하는 서버 API가 무엇인지 알고 싶지 않아야한다. 요청 시작을위한 후크를 추가하고, 게시 변수를 확인하고, 세션을 시작하고 그 안에 데이터를 주입하면됩니다. – drew010

답변

0

필자는 아파치 모듈의 다른 핸들러와 함께 PHP 확장을 작성하기로 결정했다.

모듈은 세션에 저장할 필요가있는 데이터를 "씹어 서"새로운 POST 변수로 전달합니다 (코드 구문을 사용하여 데이터의 유효성을 검사 한 후). PHP 확장은 새로운 세션을 시작하고 각 항목을 세션 변수로 설정합니다.

내 모듈이 PHP 모듈보다 먼저 실행된다고 가정합니다. 그럴 일이 없으면 PHP에서 유효성 검사를 처리하거나 처리기가 PHP보다 먼저 실행되도록해야합니다.