2014-11-29 2 views
0

Joomla 용 인증 플러그 인을 작성하고 있습니다. 플러그인이 외부 사이트를 호출하여 사용자 이름과 비밀번호를 확인하고 있습니다.Joomla에서 사용할 때 fopen()이 매우 느립니다.

코드가 작동하지만 내 문제는 Joomla 플러그인에서 fopen()을 호출 할 때 응답하기 위해 매우 긴 시간 (63 초)이 소요된다는 것입니다.

서버에서 Joomla를 통하지 않고 동일한 코드를 실행하면 fopen() 호출은 0.1 초 걸립니다.

Joomla가 변경할 수있는 설정이있어 fopen() 호출이 오래 걸릴 수 있습니까? 또는 fopen() 대신 사용해야하는 다른 함수가 있습니까? (나는 file_get_contents()을 시도했지만 동일한 결과를 가지고있다)

(0120)
$username = "admin"; 
$password = "1234" ; 
$verb = 'GET' 
$url = "https://xxx.xxx.xxx/api.phtml/login" ; 

$params = array("username"=>$username, "password"=>$password);  
$params = http_build_query($params); 
$url .= '?' . $params; 

$cparams = array('http' => array( 'method' => $verb, 
            'ignore_errors' => true)); 

$context = stream_context_create($cparams); 
$fp = fopen($url, 'rb', false, $context); 

allow_url_fopen이 활성화되어 있습니다.

줌라! 버전 : 줌라! 2.5.27 안정적
PHP 버전 : 5.2.6-1 + lenny10

나는 3 일 동안 이걸로 고생하고있어, 어떤 도움을 주시면 감사하겠습니다!

감사합니다.

+0

암호를 get 매개 변수 (URL)로 전달하지 마십시오. 전혀 안전하지 않습니다. 그리고 서버가 응답하는 데 시간이 걸린다 고 생각합니다. 브라우저가 joomla 사이트를로드하는 데 걸리는 시간은 얼마나됩니까? – Jigar

+0

내 플러그인을 사용 중지하면 로그인을 클릭하면 페이지가로드되기까지 1,16 초가 걸리며 플러그인을 사용하는 경우 페이지로드에는 1 분 4 초가 걸립니다. fopen() 호출 직전과 직후에'$ time = microtime (true);을 넣었습니다. 63 초가 걸렸습니다. https를 사용할 때 URL에 비밀번호를 전달하는 것에 대해 안전하다고 생각 했습니까? – Zero

+0

https://xxx.xxx.xxx/api.phtml/login에 대해 webpagetest.org에서 runa 테스트를 수행 할 수 있습니까? DNS가 최근에 변경되었습니다. fopen 대신 curl을 시도하고 다른 호스팅 회사를 시도해보십시오. – jdog

답변

0

일반적으로 fopen에 문제가있을 때 curl로 전환하면 문제가 해결됩니다. 어떤 경우든지, .htaccess 및 로컬 php.ini (또는 .user.ini) 파일에서 Joomla 사이트의 fopen에 대한 제한 사항을 확인하십시오.