2011-01-07 82 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中存在一个错误。

从中继线编译为我固定它