Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php - SMS preko http-a

[es] :: PHP :: php - SMS preko http-a

Strane: 1 2 3

[ Pregleda: 21221 | Odgovora: 42 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

host4dzaba
php
nema

Član broj: 220879
Poruke: 4
84.41.106.*



Profil

icon Re: php - SMS preko http-a27.04.2009. u 14:30 - pre 181 meseci
i zaboravih ,ako neko ima sms gateway neka mi se javi ...
Budi ono što jesi :)
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: php - SMS preko http-a27.04.2009. u 15:08 - pre 181 meseci
Citat:
host4dzaba: pa jedno od rešenja za Nikola Poša je da iskoristiš taj sms od sezampro-a... ako imas login page ,send page mislim da ne bi bilo tesko skontati da preko fsockopen ili curl to napravis ,sa svojim nalogom.naravno ...

Hvala na trudu, pokušaću ovih dana nešto od toga...
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: php - SMS preko http-a27.04.2009. u 19:40 - pre 181 meseci
Evo ipak sam danas uzeo to da odradim i završio sam posao za oko pola sata. Ali da nije bilo Zend Framework-a, i njegove klase Zend_Http_Client, ko zna koliko bi mi vremena trebalo...
 
Odgovor na temu

SrdjanS.

Član broj: 101282
Poruke: 13
*.neobee.net.



Profil

icon Re: php - SMS preko http-a26.10.2009. u 11:12 - pre 175 meseci
Citat:
Nikola Poša: Evo ipak sam danas uzeo to da odradim i završio sam posao za oko pola sata. Ali da nije bilo Zend Framework-a, i njegove klase Zend_Http_Client, ko zna koliko bi mi vremena trebalo... :)


Može li neki detaljan opis kako si to uradio? I meni bi trebalo isto..
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: php - SMS preko http-a26.10.2009. u 15:03 - pre 175 meseci
Pa evo mogu da ti pokažem deo koda tog modela kojeg sam pravio za te potrebe:
Code:

class DNBK_SMS
{
    /**
      * Link ka Sezampro-ovoj stranici koja obavlja prijavu 
      * (login).
      *
      * @var string
      */
    protected $sezampro_login_uri = 'http://moj.sezampro.rs/logindo.asp';
    
    /**
      * Link ka Sezampro-ovoj stranici koja obavlja odjavu 
      * (logout).
      *
      * @var string
      */
    protected $sezampro_logout_uri = 'http://moj.sezampro.rs/logout.asp';
    
    /**
      * Link ka Sezampro-ovoj stranici za korisnicki nalog.
      *
      * @var string
      */
    protected $sezampro_account_uri = 'http://moj.sezampro.rs/account/default.asp';
    
    /**
      * Link ka Sezampro-ovom skriptu koji obavlja slanje 
      * SMS poruka.
      *
      * @var string
      */
    protected $sezampro_sms_send_uri = 'http://moj.sezampro.rs/service/sms/default.asp?Action=Send';
    
    /**
      * Link ka Sezampro-ovoj stranici sa koje se salju 
      * SMS poruke.
      *
      * @var string
      */
    protected $sezampro_sms_service_uri = 'http://moj.sezampro.rs/service/sms/default.asp';
    
    /**
      * Objekat klase Zend_Http_Client.
      *
      * @var Zend_Http_Client
      */
    protected $zend_http_client;
    
    /**
      * Konstruktor
      *
      * @param string Sezampro username korisnika.
      * @param string Sezampro password korisnika.
      * @return DNBK_SMS
      */
    public function __construct($username, $password)
    {    
        $this->zend_http_client = new Zend_Http_Client();
        $this->zend_http_client->setCookieJar();
        
        $this->login($username, $password);
    }
    
    /**
      * Funkcija koja salje i izvrsava zahtev na odredjenoj web 
      * stranici.
      *
      * @access protected
      * @param string Url web stranice.
      * @param string Metod kojim ce se izvrsiti zahtev (POST, GET) (opciono).
      * @param array Dodatni podaci koji trebaju da se posalju (opciono).
      * @return Zend_Http_Response
      */
    protected function send_request($uri, $method = 'GET', $data = array())
    {
        $this->zend_http_client->setUri($uri);
        if ($method == 'POST' && !empty($data)) {
            $this->zend_http_client->setParameterPost($data);
        }
        
        return $this->zend_http_client->request($method);
    }
    
    /**
      * Funkcija za prijavljivanje na Sezampro-ov korisnicki 
      * panel.
      *
      * @access protected
      * @param string Sezampro username korisnika.
      * @param string Sezampro password korisnika.
      * @return void
      */
    protected function login($username, $password)
    {
        $data = array(
            'username'  => $username,
            'password'  => $password
        );
        
        $response = $this->send_request($this->sezampro_login_uri, 'POST', $data);
        if (!$response->isSuccessful()) {
            include_once('exceptions/DNBK_SMS_Exception.php');
            throw new DNBK_SMS_Exception('Došlo je do greške pri pokušaju prijave na Sezampro-ov panel.', 1);
        }
    }
    
    /**
      * Funkcija za odjavu sa Sezampro-ovog korisnickog
      * panela.
      *
      * @access protected
      * @return void
      */
    protected function logout()
    {
        $response = $this->send_request($this->sezampro_logout_uri);
        if (!$response->isSuccessful()) {
            include_once('exceptions/DNBK_SMS_Exception.php');
            throw new DNBK_SMS_Exception('Došlo je do greške pri pokušaju odjave sa Sezampro-ovog panela.', 2);
        }
    }

Kao što vidiš, taj model utilizira Zend-ovu Http_Client komponentu. U okviru tog modela postoje još neke funkcije, al' one su baš usko vezane za sam projekat za kojeg sam pravio ovaj model, tako da ti one ne bi bile od značaja.

U principu, poenta je to izvršavanje HTTP zahteva kroz PHP kod. Bitna stvar je što uz pomoć Zend_Http_Client možeš da prenosiš sesiju, odnosno, cookie. Npr. izvršiš zahtev za login, i posle toga bi hteo da se to tvoje stanje prenosi i na ostale stranice na koje budeš slao zahtev, pošto je ideja da imaš pristup tim nekim zaštićenim stranicama, kao što je u ovom mom primeru ta stranica za slanje SMS-ova, do koje mogu da dođu samo prijavljeni korisnici.

I kao što vidiš, ti sad jednostavno možeš da pošalješ zahtev na bilo koju stranicu, npr. možeš da izvšriš tu formu za slanje SMS-ova, tako što ćeš na nju poslati POST zahtev i pritom poslati asocijativni niz, čiji indeksi odgovaraju imenima polja u toj nekoj formi. Na taj način, postižeš efekat kao da si ti, fizički, iz GUI-a, popunio i submit-ovao tu formu. Ja tako npr. imam jedan metod u okviru ovog modela (kojeg nisam prikazao gore u kodu), koji vrši baš to slanje SMS-ova, tako što POST-om šalje ovakav niz:
Code:
$data = array(
    'phone' => $broj_mobilnog,
    'Msg'   => $tekst
);

Indeksi u tom niz odgovaraju upravo imenima polja u SMS formi na Sezampro-ovoj stranici.
 
Odgovor na temu

SrdjanS.

Član broj: 101282
Poruke: 13
*.adsl-a-1.sezampro.yu.



Profil

icon Re: php - SMS preko http-a26.10.2009. u 20:08 - pre 175 meseci
Hvala ti na ovome, proanaliziracu detaljno.

A kada šalješ poruke na ovaj način preko Sezama, da li u pristigloj poruci piše ono from:tvoje_korisnicko_ime i da li je naglašeno da je poruka poslata preko Sezama?
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: php - SMS preko http-a26.10.2009. u 21:13 - pre 175 meseci
E pa to je jedino što mi nije išlo na ruku, piše upravo moje korisničko ime na Sezamu, a nikako ne može da se utiče na taj "from" parametar. :S Barem ja ne znam da može...
 
Odgovor na temu

xenox
ex Memodata sysadmin
Beograd

Član broj: 6903
Poruke: 168
195.178.35.*

ICQ: 7682925


+3 Profil

icon Re: php - SMS preko http-a12.11.2009. u 04:07 - pre 175 meseci
Ako ima zainteresovanih da napravimo gateway, ali da svako uplati za sms koji ce poslati. Meni stoji non stop modem koji mi salje info o promenama na sistemu na sms. Nije problem da posalje i nakom drugom, ali ce me kostati kredita za sms...
 
Odgovor na temu

batika

Član broj: 72401
Poruke: 67
*.adsl.eunet.rs.



Profil

icon Re: php - SMS preko http-a25.11.2009. u 10:06 - pre 174 meseci
Dakle ovako, sms preko http je moguc. Napravio sam dosta ovakvih servisa.

Razna placanja clanarine, zatim usluge (pretraga oglasa, kurs eura...).

Takodje pravio sam ABO sisteme (pretplatis se, pa svaki put dobijas poruku), WAP Push poruke...

E sad, ne znam kakva je procedura ali moras sklopiti ugovor sa nekom kompanijom (sms provider). Ja sam cuo i radio sa HORISEN iz Paracina (mozda ce skinuti kao reklamu).

Dakle sistem funkcionise na sledeci nacin:

Korisnik posalje sms na broj 1234, ta poruka stize sms provideru, oni na osnovu keyworda znaju da je to tvoj skript.

Od podataka ti salju telefon, poruku, i ostale sigurnosne key-eve.

Ti ovo obradis i uradis najobicniji echo (sa potrebnom xml strukturom) povratne informacije.

Sms provider osluskuje sta ce tvoj skript odraditi, i odgovara korisniku.

To ti je ukratko prica o sms uslugama.

Pozdrav
 
Odgovor na temu

vulevica
Aleksandar Vulevic
Telekom Srbija

Član broj: 184402
Poruke: 4
*.static.isp.telekom.rs.



Profil

icon Re: php - SMS preko http-a12.03.2012. u 09:43 - pre 146 meseci
Pozdrav ljudi....vidim da razgovarate o ovoj temi a imam problem sa istom....moze li mi ko pomoci, bas sam se zaglavio...

Naime, razvijam sms service za odredjeni sat. Provajder je starionbg.
Cilj je da korisnik posalje sms sa odredjenim tekstom na odredjeni broj.
Nakon toga ja kupim podatke iz poruke, generisem upit u bazu, smestim ga u odredjenu promenljivu i nakon toga mi nastaje problem....

Kako da prosledim odgovor njima?

Evo ga kod koji sam izgenerisao.
Code:

<?php

//header("HTTP/1.1 200 OK");

//if ($_SERVER['REMOTE_ADDR'] like '193.203.27.244') {

  require_once "/home/skolainf/public_html/admin/lib/viewer_functions.php";


$msg_id=$_GET['msg_id'];
$msisdn=$_GET['msisdn'];
$message=$_GET['message'];
$operator=$_GET['operator'];
$short_id=$_GET['short_id'];
$provider=$_GET['provider'];
//pokupim podatke iz pristigle poruke
if (empty($_GET['sdp'])) {


$upis="INSERT INTO SMS (msg_id, msisdn, message, operator, short_id, provider) VALUES ('$msg_id', '$msisdn', '$message', '$operator', '$short_id', '$provider')";
$dodaj = mysql_query($upis);
//upisujem porkuku u bazu
}
else
{

$sdp=$_GET['sdp'];


$upis="INSERT INTO SMS (msg_id, msisdn, message, operator, short_id, provider, sdp) VALUES ('$msg_id', '$msisdn', '$message', '$operator', '$short_id', '$provider', '$sdp')";
$dodaj = mysql_query($upis);
}

$message = explode(" ", $message);


$ucenici=mysql_query("SELECT pass, ujmbg, uid FROM ucenici")or die(mysql_error());
while($info = mysql_fetch_array( $ucenici ))
{

    if (($message[2] != $info['pass']) |  ($message[1] != $info['ujmbg'])) {

//ako je neispravna kod ovde

}
else
{

$uid=$info['uid'];

$qry = "SELECT pid,oid,pkratki,opredmet,oucenik,oocena,odatum,pnaziv, GROUP_CONCAT( oocena ORDER BY oid ASC ) AS ucocene, odatum FROM oocene JOIN  predmeti ON predmeti.pid=oocene.opredmet WHERE oucenik='$uid'  GROUP BY opredmet ORDER BY recordListingID ASC ";
$q = mysql_query($qry); 

//generisem upit koji ce predstavljati odgovor
$odgovor="";
while($r=mysql_fetch_assoc($q)){




$xo = explode (",", $r['ucocene']);

for($i=0;$i<count($xo);$i++){
    
if(substr ( $xo[$i],0,1)!=0){

$ocene =   substr ( $xo[$i],0,1) .  substr($xo[$i],1) ;

}

}


$odgovor .= $r['pkratki'].$ocene." ";
$ocene="";


}

$odgovordate= date('Y-m-d H:i:s');


$update=mysql_query("UPDATE SMS SET odgovor = '$odgovor', odgovordate = '$odgovordate'  where msg_id = '$msg_id' ");

$odgovor=str_replace(" ", "+", $odgovor);


$uri="http://smsc.starionbgd.com/sms_response.php?msg=".$msg_id."&charge=OK&message=".$odgovor;


$cobj=curl_init($uri);
curl_setopt($cobj,CURLOPT_HTTPGET);
$xml=curl_exec($cobj);
curl_close($cobj);
echo $xml;
//sa ovim delom pokusao sam da im prosledim odgovor ali ne ide
//echo $url;

//header("Location: $url");

/*

$fp = fsockopen("smsc.starionbgd.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {

$out="GET /sms_response.php?msg=".$msg_id."&charge=OK&message=".$odgovor;
   

fputs ( $fp, $out );

while (!feof($fp)) {
        $odgovor .= fgets($fp, 128);
    }
    fclose($fp);
}

*/

}


}
//}
?>


Ako iko pomogne castim rucak

dakipro: dodati code tagovi

[Ovu poruku je menjao dakipro dana 12.03.2012. u 10:59 GMT+1]
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.85-200-249.bkkb.no.

Sajt: norway.dakipro.com


+190 Profil

icon Re: php - SMS preko http-a12.03.2012. u 10:01 - pre 146 meseci
A gde ti je tacno problem?
Tesko je reci ovako na prvi pogled bez testiranja, a da bi neko testirao treba mu i tvoja baza i ostatak koda
 
Odgovor na temu

vulevica
Aleksandar Vulevic
Telekom Srbija

Član broj: 184402
Poruke: 4
*.static.isp.telekom.rs.



Profil

icon Re: php - SMS preko http-a12.03.2012. u 10:10 - pre 146 meseci
Kada pozovem samu stranicu sa podacima kao da je poslata porkua, prikaze mi se zeljeni odgovor na ekranu.


Medjutim, kada pokusam da posaljem poruku sms-om, skripta je registruje, upise je u bazu, generise odgovor, upise i njega u bazu ali ja na telelfonu ne dobijam nista

nema pojma odakle da krenem...
 
Odgovor na temu

HelloCode
Novi Sad

Član broj: 254053
Poruke: 112
*.dynamic.isp.telekom.rs.



+11 Profil

icon Re: php - SMS preko http-a14.03.2012. u 18:49 - pre 146 meseci
Pa ako ti je sve ok sa upitom i generacijom a kod se ne salje onda moras da debugujes sms_response.php gateway, verovatno je do njih problem.
 
Odgovor na temu

vulevica
Aleksandar Vulevic
Telekom Srbija

Član broj: 184402
Poruke: 4
*.static.isp.telekom.rs.



Profil

icon Re: php - SMS preko http-a15.03.2012. u 08:26 - pre 146 meseci
Kontaktirao sam starion preko koga se i realizuje servis, oni kazu da pre nego sto posaljem odgovor treba da odgovorim sa ok, da bi njihov sistem registrovao da nam je poruka stigla....kako to da odradim
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.85-200-249.bkkb.no.

Sajt: norway.dakipro.com


+190 Profil

icon Re: php - SMS preko http-a15.03.2012. u 08:36 - pre 146 meseci
Kad si vec bio tu, pitaj ih i kako, naravno ako si pre toga procitao dokumentaciju i ne pise nista o tome
 
Odgovor na temu

vulevica
Aleksandar Vulevic
Telekom Srbija

Član broj: 184402
Poruke: 4
*.static.isp.telekom.rs.



Profil

icon Re: php - SMS preko http-a15.03.2012. u 12:46 - pre 146 meseci
Vec sam ih pitao, zamolio sam ih da mi posalju primer kako se salje odgovor da za OK, ali su mi odgovorili da nisu nadlezni da daju takvu podrsku.....poludeh
 
Odgovor na temu

zmil
Zoran Milicevic
Krupanj

Član broj: 27816
Poruke: 76
109.72.62.*

Sajt: www.mz.rs


+2 Profil

icon Re: php - SMS preko http-a18.03.2012. u 17:43 - pre 146 meseci
Napravili ste problerm od ničega operater mora da ima api i program koji to radi preko njih
ako nemaju api onda neće ni raditi nikakva skripta
prvo api pa onda može da se govori o skripti i pomoći
a iskustvo ti mogu preneti ali ne sa naših prostora

 
Odgovor na temu

Mr. Bond
Beograd

Član broj: 126551
Poruke: 124
*.adsl-a-11.sezampro.rs.

Sajt: https://rs.linkedin.com/i..


+14 Profil

icon Re: php - SMS preko http-a18.03.2012. u 19:47 - pre 146 meseci
Kad primiš request od SMS-a da je stigla poruka, pre nego što im odgovoriš preko socket-a moraš da im pošaljes status OK (poruka je primljena). Ja koliko vidim ti njima ovde nikakav response ne vraćaš. Vrati im STATUS 200. Jednostavno vrati običan die(); nekon što obradiš njihov zahtev. U bazi dodaj polje "odgovoreno" koje po prijemu poruke postavljaš na 0. Pusti cron da trči kroz bazu i nek skuplja poruke sa "odgovoreno" 0 i spucaj zahtev kao što radiš.

Ne možeš samo da prihvatiš zahtev, obradiš i da im šalješ novi request a da im na prethodni nisi poslao odgovor.
Bad programmers worry about the code. Good programmers worry about data
structures and their relationships.
 
Odgovor na temu

sladjan02
Beograd

Član broj: 142708
Poruke: 8
*.ptt.rs.



Profil

icon Re: php - SMS preko http-a21.03.2012. u 11:04 - pre 146 meseci
kako se odgovara sa 200 OK? jel dovoljno da se napiše:
Code:
header("Status: 200 OK");
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+46 Profil

icon Re: php - SMS preko http-a25.03.2012. u 15:50 - pre 146 meseci
Može i samo die(), server će vratiti HTTP 200 OK :)

Jedino ako ne zahtevaju da body ima "OK", onda die("OK")...
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

[es] :: PHP :: php - SMS preko http-a

Strane: 1 2 3

[ Pregleda: 21221 | Odgovora: 42 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.