2012-11-10 3 views
4

PHP 컬을 사용하여 학교 포털에 연결하려하지만 특정 페이지로 리디렉션되는 것으로 보이기 때문에 운이없는 것 같습니다. 나는 jQuery 모바일에서 학교 일정을 보여주는 webapp을 만들고있다.하지만 자신의 일정을 보여주기 위해서는 로그인하고 거기서 일정대로 가야한다. 이것은 PHP에서 CURL을 사용하여 달성하고자하는 것입니다.PHP 컬을 사용하여 학교 포털로 리디렉션

주어진 링크와 함께 작동하는 http://codeaid.net/php/get-the-last-effective-url-from-a-series-of-redirects-for-the-given-url에서 자습서를 사용했지만 내 학교 포털로 리디렉션하는 데 사용해야하는 링크를 찾을 수 없습니다.

어떤 URL을 사용해야하는지 알기 위해 따라야 할 단계가 있다면 도움이 될 것입니다.

내가 사용했던 코드 :

<?php function getLastEffectiveUrl($url) 
    { 
     // initialize cURL 
     $curl = curl_init($url); 
     curl_setopt_array($curl, array(
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_FOLLOWLOCATION => true, 
    )); 

    // execute the request 
    $result = curl_exec($curl); 

    // fail if the request was not successful 
    if ($result === false) { 
     curl_close($curl); 
     return null; 
} 

      // extract the target url 
      $redirectUrl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL); 
      curl_close($curl); 

      return $redirectUrl; 
    } 

    $lastEffectiveUrl = getLastEffectiveUrl('https://login.hhs.nl'); 
    echo $lastEffectiveUrl . "-"; 
?> 

가 다시이 내가 Codeaid에서 따라 한 튜토리얼과 나는 자신이 만드는 더 신용을하지 않습니다.

내 학교 페이지 링크는 https : // portal.hhs.nl이며 거기에 갈 때 볼 수 있듯이 다른 페이지로 리디렉션됩니다.) 첫번째보기에서

, 나는이 (헤더로 리디렉션 생각했다 :

+1

코드가 잘된 것처럼 보이지만 코드에 어떤 문제가 있습니까? – Nelson

+0

페이지가 리디렉션되어 아무 말도하지 않습니까? 아마도 실제 로그인 페이지가 어디로 리디렉션됩니까? 아니면 자동 연결 시도를 적극적으로 중단하려고 시도했을까요? –

+0

답장을 보내 주셔서 감사합니다. 코드 자체가 완벽하게 작동합니다. 문제는 내가 콘텐츠를 얻기 위해 사용해야하는 링크를 찾을 수 없다는 것입니다. 그것이 매번 다른 URL로 리디렉션되기 때문에 그것이라고 생각하지만, 나는 그것을 검증하는 방법을 모른다. 적극적으로 자동 연결 시도를 중지하려고하면 어떻게 확인할 수 있습니까? –

답변

1

싶은 것은 불가능 근처는 ... 그들은 설명해 드리죠 ... 여러 가지 방법과 보안 토큰 여러 리디렉션을 적용 내가 Tamper Data을 사용할 때하지만 사진이 더 분명 해졌다 :

1) 당신이 https://portal.hhs.nl을 열고, 당신은 몇 가지 메타 태그

<META name="verify-v1" content="Yh6PvgPdX64Vdo9akXqTvstTouu9uQcvrPpFaL9jqZs=" /> 
<META name="verify-v1" content="eiUD3J3OcF6SjBKGe5ZvkMTzVEJ9rnpr1NaCKV9OIKw=" /> 
<meta name="google-site-verification" content="Ka0UPoAllNqYvbuviJCk8iV64YfqfWbX6G1APHdY5tg" /> 
<META content="text/html; charset=windows-1252" http-equiv=Content-Type> 
<META content="0; URL=http://portal.hhs.nl/portal/pls/portal/PORTAL.home" http-equiv=Refresh> 

그래서으로 리다이렉션 당신은 여기가 내가 탬퍼 데이터로 리디렉션있을 때이 PHP: Can CURL follow meta redirects

2) 몇 가지 이유를 들어 내가 데이터를 "열"수 없습니다 할 방법은 ... 그 메타 태그를 구문 분석 및 리디렉션해야 그래서이 단계에 대한 연구를해야합니다 ...

3) 그리고 JavaScript가있는 또 다른 "리디렉션"기술이 있습니다.

<FORM NAME="SingleSignOn" METHOD="POST" ACTION="https://aselect.hhs.nl/aselectserver/server" > 
<INPUT TYPE="HIDDEN" NAME="request" VALUE="direct_login1" > 
<INPUT TYPE="HIDDEN" NAME="rid" VALUE="C741680139CA153E" > 
<INPUT TYPE="HIDDEN" NAME="a-select-server" VALUE="aselectserver1" > 
</FORM> 
</BODY> 

그냥 마지막으로 우리가 https://aselect.hhs.nl/aselectserver/server에있어) ...

4 사람들을 분석하고 그 POST 값으로 https://aselect.hhs.nl/aselectserver/server로 리디렉션 어디서 실제로 입력 우리의 자격 증명, 당신은 또한 데이터를 분석하고 전송해야 신임장과 함께. 이러한 보안 조치들이 우리와 같은 자동화 된 꼬마를 중지 할 분명히 있는지 확인하고, 무엇을 언젠가 경우 해당 단계가 변경되었습니다 :이 단계 후에 만은 ... 포털의 의미를

결론을 알아? 내가 제안하는 것은 어떤 API에 대해 학교에 물어 보는 것입니다. 네덜란드에있는 어떤 학교에서 Untis을 사용하고 있으며, JSON 데이터를 반환하는 훌륭한 API가 있다는 것을 알고 있습니다!

당신이 주장하거나 API에 손댈 수 없다면, 열심히 준비하십시오!

베셀 succes (행운을 빌어 요)!

+0

대단히 감사합니다. 당신은 매우 명확하게 설명했습니다. :) 지금이 방법을 시도해 볼 필요가 없습니다. 그냥 학교 voor API에 문의하겠습니다.하지만 그들은 그것을 제공하지 않을 것이라고 생각합니다. 또는 그것을 가지지 않을 것이다. 나는 그대로두고 그냥 학교에서 영구 링크를 사용합니다 .. 나는 그 변화가 10 주 안에 한 번 생각합니다 .. 다른 방법을 시도 할 것입니다. 만약 내가 하나 그것을 가지고 게시됩니다 여기 :) 당신의 노력과 명확한 explenation에 대단히 감사합니다. –

+0

@ JarnovanRhijn 당신은 환영합니다 :) – HamZa

관련 문제