Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]wysylanie smsa poprzez system AtomSMS.pl
Forum PHP.pl > Forum > Przedszkole
siutek
witam,
tworze system ktory co godzine wysyla smsy do zarejestrowanych uzytkownikow.
jednak mam problem z kodem.

sms jest wysylany za pomoc linka w postaci

http://www.atomsms.pl/app/api?oper=send&idp=[nrpartnera]&telnr=[nr telefonu]&msg=[treść wiadomości]&h=[suma kontrolna]

kod realizujący to po mojej stronie:

  1. $usrId="****";
  2. $tel="48".$adresEmail["telefon"];
  3. $sms=$lP["descript"];
  4. $h = md5($usrId.$tel.$sms."haslo");
  5. $link = "http://www.atomsms.pl/app/api?oper=send&idp=".$usrId."&telnr=".$tel."&msg=".$sms."&h=".$h;
  6. $wywolanie = file_get_contents($link);
  7. $punkty = explode(":",$wywolanie);
  8.  
  9. echo $link."<br>";
  10. echo $wywolanie;
  11.  
  12. // z oczywistych wzgledow $usrId oraz haslo nie zostaly ujawnione.


skrypt wyrzuca mi na ekran wygenerowany link oraz odpowiedz serwera docelowego na ten link.

niestety - wygenerowany link wysylany poprzez funkcje file_get_contents() generuja blad "Error:Niewłaściwe parametry", ALE co ciekawe, ten sam link skopiowany ze strony, i wklejony w pasku adresu przegladarki, po wywolaniu generuje odpowiedz "OK", czyli sms zostal wyslany...

nie potrafie znalezc bledu, jaka jest roznica pomiedzy wywolaniem poprzez funkcje, a poprzez okno przegladarki.
wiem ze przegladarka wysyla infomacje o sobie, ale to nie powinno miec wplywu na wysylke, gdyz link do wysylania smsow, jak i caly system zostal zaprojektowany wlasnie z w taki sposob, aby wysylka byla realizowana przez programy, a nie uzytkownika ktory wklepuje adres w oknie przegladarki.

wiem ze mozna tutaj wrozyc z fusow, ale łudze sie, ze ktos moze mial juz taki problem z systemem AtomSms.pl - niestety otrzymac odpowiedz na pytanie od obslugi tego systemu graniczy z cudem.
grzegorzr
Hmmm.

A gdzie masz zamianę spacji/polskich znaków na symbole zgodne ze specyfikacja URL'a ?

Po zamianie zamiast spacji powinny być znaki %20 itd.
siutek
dokonalem małej modyfikacji kodu,
przed wygenerowaniem sumy md5 i wyslaniem linka na serwer uzywam funkcji urlencode() w celu zamiany stringu na zgodny z URL, ale to nie pomoglo.

zauwazylem podczas testow jedną rzecz. wpisujac tresc smsa (zmienna $sms) na sztywno, wywoływany serwer wysyla smsa, i daje prawidłową odpowiedź. zatem problem tkwi w danych pobieranych z bazy.

celowo przed zapisaniem tresci smsa do bazy wyrzucam wszystkie polskie litery, zamieniając je na znaki "bez ogonków". pole w którym zapisywana jest treść jest typu text, kodowanie najpierw utf8_general_ci, a nastepnie (łudziłem sie że to coś zmieni) latin2_general_ci.

wniosek: problem tkwi w tresci smsa pobieranej z bazy, tylko nie mam pojecia jak ten problem rozwiązać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.