0

我的Zend服務亞馬遜包集成到我的codeigniter框架中,我遇到了一個非常令人沮喪的問題。該庫在我的本地主機上工作得很好,但是當我從活動網站嘗試它時,它不起作用,它給我一個內部服務器錯誤。爲什麼會這樣呢?Zend服務亞馬遜 - 內部服務器錯誤 - 適用於本地主機?

在PHP日誌中的錯誤是:

[22-Nov-2012 21:29:02] PHP Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home5/tradejun/public_html/application/controllers/dev.php on line 30 [22-Nov-2012 21:29:02] PHP Parse error: syntax error, unexpected T_STRING in /home5/tradejun/public_html/application/controllers/dev.php on line 30

第30行:

$autoloader = new Zend\Loader\StandardAutoloader(array(

這裏是我的控制器功能:

public function amazon2($isbn) { 
    set_include_path(get_include_path() . PATH_SEPARATOR . 'application/libraries/Amazon'); 
    require_once 'Zend/Loader/StandardAutoloader.php'; 

    $autoloader = new Zend\Loader\StandardAutoloader(array(
     'namespaces' => array(
      'Zend'  => dirname(__FILE__) . '/Zend', 
      'ZendRest' => dirname(__FILE__) . '/ZendRest', 
      'ZendService' => dirname(__FILE__) . '/ZendService', 
     ), 
     'fallback_autoloader' => true)); 

    $autoloader->register(); 

    $tag  = 'colleg-21'; // replace with your Amazon app ID 
    $appId  = '[appid]'; // replace w/ your access key from https://portal.aws.amazon.com/gp/aws/securityCredentials 
    $secretKey = '[secretkey]'; 
    $query = new ZendService\Amazon\Query($appId, 'UK', $secretKey); 
    $item = $query->itemLookup($isbn, 
     array('SearchIndex' => 'Books', 
      'AssociateTag' => $tag, 
      'IdType'  => 'ISBN', 
      'ResponseGroup' => 'Large',)); 
    $item->smallImageAddress = $item->SmallImage->Url->getImageAddress(); 
    $item->mediumImageAddress = $item->MediumImage->Url->getImageAddress(); 
    $item->largeImageAddress = $item->LargeImage->Url->getImageAddress(); 
    $data['item'] = $item; 
    $this->load->view('development/amazon',$data); 
} 

誰能提供任何建議或可能的解決方案?

  • 工作完全正常在本地主機上,但活着不是主機服務器
  • 我使用ZendService_Amazon-2.0.2.zip
  • CodeIgniter的版本是2.02
+0

什麼是錯誤信息?你有沒有檢查日誌? –

+0

@E_p我已經在問題中發佈了錯誤消息的鏈接。我應該檢查什麼日誌?對不起,我在這方面有點小氣。 – emkay

+1

它不顯示錯誤。由於顯示錯誤被關閉。您的Web服務器錯誤日誌應該包含發生事件的實際錯誤。如果您有權訪問您的php.ini開關'display_errors On'來查看錯誤。不要忘記在 –

回答

0

它必須是舊版本的php - 不支持命名空間。你需要php 5.3的命名空間。你需要升級。

編輯:命名空間所需的更正版本號;只需要5.3,而不是5.4。謝謝,E_p

+0

5.3支持命名空間 –

+0

謝謝你們。有什麼辦法可以修改代碼來解決這個問題嗎? - 沒關係,升級比我想象的要容易。謝謝:) – emkay

+0

對不起。命名空間爲5.3。很高興你可以升級,因爲5.2已經結束了一段時間。 – Robbie