2017-04-07 40 views
0

我正在使用下面的代碼進行驗證。HTTP ERROR 500 - SMSGteway.me

的login.php:

include "smsGateway.php"; 
$smsGateway = new SmsGateway('[email protected]', 'password'); 

$dId = 98751; 

$numb = '30xxxxx'; 

date_default_timezone_set('Asia/Karachi'); 

$dated = date('d-m-y h:i a', time()); 

$msg = "Fraudlent activity was detected on prescription data website on ".$dated." ."; 

$deviceID = $dId; 
$number = '+92'.$numb; 
$message = $msg; 

$result = $smsGateway->sendMessageToNumber($number, $message, $deviceID); 

smsGateway.php:

<?php 

class SmsGateway { 

    static $baseUrl = "https://smsgateway.me"; 


    function __construct($email,$password) { 
     $this->email = $email; 
     $this->password = $password; 
    } 

    function createContact ($name,$number) { 
     return $this->makeRequest('/api/v3/contacts/create','POST',['name' => $name, 'number' => $number]); 
    } 

    function getContacts ($page=1) { 
     return $this->makeRequest('/api/v3/contacts','GET',['page' => $page]); 
    } 

    function getContact ($id) { 
     return $this->makeRequest('/api/v3/contacts/view/'.$id,'GET'); 
    } 


    function getDevices ($page=1) 
    { 
     return $this->makeRequest('/api/v3/devices','GET',['page' => $page]); 
    } 

    function getDevice ($id) 
    { 
     return $this->makeRequest('/api/v3/devices/view/'.$id,'GET'); 
    } 

    function getMessages($page=1) 
    { 
     return $this->makeRequest('/api/v3/messages','GET',['page' => $page]); 
    } 

    function getMessage($id) 
    { 
     return $this->makeRequest('/api/v3/messages/view/'.$id,'GET'); 
    } 

    function sendMessageToNumber($to, $message, $device, $options=[]) { 
     $query = array_merge(['number'=>$to, 'message'=>$message, 'device' => $device], $options); 
     return $this->makeRequest('/api/v3/messages/send','POST',$query); 
    } 

    function sendMessageToManyNumbers ($to, $message, $device, $options=[]) { 
     $query = array_merge(['number'=>$to, 'message'=>$message, 'device' => $device], $options); 
     return $this->makeRequest('/api/v3/messages/send','POST', $query); 
    } 

    function sendMessageToContact ($to, $message, $device, $options=[]) { 
     $query = array_merge(['contact'=>$to, 'message'=>$message, 'device' => $device], $options); 
     return $this->makeRequest('/api/v3/messages/send','POST', $query); 
    } 

    function sendMessageToManyContacts ($to, $message, $device, $options=[]) { 
     $query = array_merge(['contact'=>$to, 'message'=>$message, 'device' => $device], $options); 
     return $this->makeRequest('/api/v3/messages/send','POST', $query); 
    } 

    function sendManyMessages ($data) { 
     $query['data'] = $data; 
     return $this->makeRequest('/api/v3/messages/send','POST', $query); 
    } 

    private function makeRequest ($url, $method, $fields=[]) { 

     $fields['email'] = $this->email; 
     $fields['password'] = $this->password; 

     $url = smsGateway::$baseUrl.$url; 

     $fieldsString = http_build_query($fields); 


     $ch = curl_init(); 

     if($method == 'POST') 
     { 
      curl_setopt($ch,CURLOPT_POST, count($fields)); 
      curl_setopt($ch,CURLOPT_POSTFIELDS, $fieldsString); 
     } 
     else 
     { 
      $url .= '?'.$fieldsString; 
     } 

     curl_setopt($ch, CURLOPT_URL,$url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
     curl_setopt($ch, CURLOPT_HEADER , false); // we want headers 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

     $result = curl_exec ($ch); 

     $return['response'] = json_decode($result,true); 

     if($return['response'] == false) 
      $return['response'] = $result; 

     $return['status'] = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

     curl_close ($ch); 

     return $return; 
    } 
} 

>

當我嘗試登錄,而不該代碼的一切就像一個魅力?但是,當我嘗試使用此代碼進行登錄時,它會在瀏覽器中顯示HTTP ERROR 500。 錯誤日誌顯示此: PHP解析錯誤:語法錯誤,意想不到的 '[' 在/home/xxxx/public_html/xxxx/smsGateway.php在線18

+0

那麼......哪一行是18行? – Tom

+0

@thebluefox第18行:return $ this-> makeRequest('/ api/v3/contacts','GET',['page'=> $ page]); – X3NTiN3

回答

2

也許它的PHP版本issure。嘗試array('page' => $page),登場['page' => $page]

+0

我目前的PHP版本是5.6.30 – X3NTiN3

+1

所以''''''''=> $ bar]'這樣的數組語法不起作用。它從PHP版本7和更高版本中可用。 – Playeasy

+0

感謝哥們。它現在工作正常! :) – X3NTiN3