2011-01-07 24 views
1

我試圖創建一個使用PHP的oauth提供程序,它是官方的oauth類。使用PEAR OAuth提供程序類的PHP seg故障

我只是想讓提供者處理請求,但它實際上給了我兩個段落錯誤。

這裏是我的供應商

<?php 

    class Provider{ 

     private $oauth; 

     public function __construct(){ 

      try { 

      /* create our instance */ 
      $this->oauth = new OAuthProvider(); 

      /* setup check functions */ 
      $this->oauth->consumerHandler(array($this,'checkConsumer')); 
      $this->oauth->timestampNonceHandler(array($this,'checkNonce')); 
      $this->oauth->tokenHandler(array($this,'checkToken')); 

      /* If we are issuing a request token we need to disable checkToken */ 
      if(strstr($_SERVER['REQUEST_URI'],"oauth/request_token")){ 
       $this->oauth->isRequestTokenEndpoint(true); 
      } 

      /* now that everything is setup we run the checks */ 
       $this->oauth->checkOAuthRequest(null,OAUTH_HTTP_METHOD_GET); 
      } catch(OAuthException $E){ 
       echo OAuthProvider::reportProblem($E); 
       $this->oauth_error = true; 
      } 


     } 

     public function checkConsumer($provider){ 
      $provider->consumer_secret = "secret"; 
      return OAUTH_OK; 
     } 

     public function checkToken($provider){ 
      return OAUTH_OK; 
     } 

     public function checkNonce($provider){ 
      return OAUTH_OK; 
     } 

    } 
?> 

這裏是我的客戶,我使用的測試。

<?php 
    $oauth_client = new Oauth("key","secret"); 
    try { 
     $oauth_client->getRequestToken("http://localhost/OAuthProviderExample/oauth/request_token"); 
    } catch(OAuthException $E){ 
     echo $E; 
    } 
?> 

客戶端輸出該

exception 'OAuthException' with message 'making the request failed (dunno why)' in /var/www/OAuthProviderExample/client/index.php:4 Stack trace: #0 /var/www/OAuthProviderExample/client/index.php(4): OAuth->getRequestToken('http://localhos...') #1 {main} 

和錯誤日誌顯示該

[Fri Jan 07 09:33:45 2011] [notice] child pid 3662 exit signal Segmentation fault (11) 
[Fri Jan 07 09:33:45 2011] [notice] child pid 3663 exit signal Segmentation fault (11) 

我對現在做什麼不知道!

+0

什麼版本的PHP在運行它? – 2011-01-07 08:54:26

回答

2

顯然PECL版本1.0.0中存在一個錯誤。

從中繼線編譯爲我固定它