• 30-01-2016, 19:50:49
    #1
    Arkadaşlar Sms işlemleri için Netgsm firmasını kullanıyoruz.

    NetGsmin vermiş olduğu api aşağıdaki gibidir.

    <?php
    
    function sendsms($msg, $telno, $header)
    {
      $username= "";
      $pass= "";
      
      $startdate=date('d.m.Y H:i');
      $startdate=str_replace('.', '',$startdate );
      $startdate=str_replace(':', '',$startdate);
      $startdate=str_replace(' ', '',$startdate);
      
      $stopdate=date('d.m.Y H:i', strtotime('+1 day'));
      $stopdate=str_replace('.', '',$stopdate );
      $stopdate=str_replace(':', '',$stopdate);
      $stopdate=str_replace(' ', '',$stopdate);
    
      
    	$url="http://api.netgsm.com.tr/bulkhttppost.asp?usercode=$username&password=$pass&gsmno=$telno&message=$msg&msgheader=$header&startdate=$startdate&stopdate=$stopdate";
    	//echo $url;
    	
        $ch = curl_init(); 
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    //  curl_setopt($ch,CURLOPT_HEADER, false);
        $output=curl_exec($ch);
        curl_close($ch);
        return $output;
    	
    }
    
    $mesaj=$_POST['mesaj'];
    $tel='$_POST['tel']'; 
    $baslik='$_POST['baslik']';
    echo sendsms($mesaj,$tel,$baslik);
    
    ?>
    Form içeriğine örnek olarak "test" yazıyorum ve gönder dediğimde mesajı cep telefonuna gönderiyor. o konuda sıkıntı yok fakat "test test" yazdığımda yani herhangi bir boşluk kullanımında Bad Request HTTP Error 400. The request is badly formed hatası alıyorum. Bunun sebebi nedir nasıl çözebilirim?

    Konu hakkında bilgisi olan arkadaşlar yardımlarını esirgemesse sevinirim. Hayırlı akşamlar.
  • 30-01-2016, 20:07:48
    #2
    başlık kısmına test test yazıyor isen karşı taraf bunu kabul etmiyor demektir. SMS Sistemlerinde başlık bilgisi TESTTEST şeklinde olmalı boşluk veya türkçe karkater içermemeli yanlış hatırlamıyorsam 11 karakteri geçmemeli gibi kontrolleri mevcut. Eğer mesaj içerisinde gönderiyorsan bunu sms firmasına sorman gerekir. Aldığın 400 bad request hatası server'ın senin gönderdiğin bilgilerden bir şey anlamadığı anlamına geliyor.
  • 30-01-2016, 20:18:09
    #3
    sky adlı üyeden alıntı: mesajı görüntüle
    başlık kısmına test test yazıyor isen karşı taraf bunu kabul etmiyor demektir. SMS Sistemlerinde başlık bilgisi TESTTEST şeklinde olmalı boşluk veya türkçe karkater içermemeli yanlış hatırlamıyorsam 11 karakteri geçmemeli gibi kontrolleri mevcut. Eğer mesaj içerisinde gönderiyorsan bunu sms firmasına sorman gerekir. Aldığın 400 bad request hatası server'ın senin gönderdiğin bilgilerden bir şey anlamadığı anlamına geliyor.
    merhabalar.
    başlık ve telefon kısmında sorun yok, tamamen mesaj içeriğinden kaynaklı bir durum. boşluk kullanmadığım sürece gönderimi yapıyor ama boşluk kullandığımda hata veriyor. konuya cok hakim olmadığımdan sorunun neyden kaynaklandığı konusunda bir kanıyada varamadım acıkcası
  • 01-02-2016, 13:53:54
    #4
    Merhaba,

    Veri gönderimini GET yoluyla yaptığınız için mesajınızı urlencode ye sokmak zorundasınız.

    Yani kısaca

    function sendsms($msg, $telno, $header)
    {
      $username= "";
      $pass= "";
    
    // $msg değişkenini urlencode ye sokup request uri den gidecek şekilde ayarlıyalım.
    $msg = urlencode($msg);