• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

php sms api jak poprawnie pobrać numery z bazy i przesłać

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
480 wizyt
pytanie zadane 22 lipca 2022 w PHP przez gatka84 Bywalec (2,150 p.)

Witam kombinuje jakiś czas i nie potrafię tego ogarnąć żeby przesłać wiadomość sms na wybrane nr tel. Dane na GitHub https://github.com/smsplanetpl/smsplanet-php-client oraz api https://smsplanet.pl/doc/slate/index.html?php#wyslanie-sms-metoda-post-zalecane, nigdzie nie ma jakiegoś przykładu na którym mogła bym się wzorować na podstawie tego co przeczytałam zrobiłam tak

<?php
if(isset($_REQUEST['btn_sms']))

{

    $msg = $_POST["msg"];

    $wynik='';

    $city = $_POST["category"];

    $phone = mysqli_query($con, "SELECT `phone` FROM `newsletter` WHERE city='$city' ");

    while ($mob = mysqli_fetch_array($phone)){

        $wynik.= "$mob[phone],";

    }

    // var_dump($wynik);        

$url = "https://api2.smsplanet.pl/sms" ;

$params = array(

    'key' => 'XXXXXXX-XXXX-XXX-XXXX-XXXXXXXXXXX',

    'password' => 'XXXXXXXXXX',

    'from' => 'TEST',                 // Nazwa nadawcy zgodnie z ustawieniami konta

    'to' => $wynik,   

    'msg' => $msg,

    'clear_polish' => 1,      

    'test' => 1  

);

$response = send_post($url, $params);

var_dump($response);

function send_post($url,$params) {

    $params_string = http_build_query($params);

    $ch = curl_init();

    curl_setopt($ch,CURLOPT_URL, $url);

    curl_setopt($ch,CURLOPT_POST, true);

    curl_setopt($ch,CURLOPT_POSTFIELDS, $params_string);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);

    curl_close ($ch); 

    return $response;
}

}

?> 

dostaje z


var_dump($params); -> array(7) { 

 ["key"]=> string(35) "XXXXXXX-XXXX-XXX-XXXX-XXXXXXXXXXX" 

 ["password"]=> string(10) "XXXXXXXXXX" 

 ["from"]=> string(4) "TEST" ["to"]=> string(10) "66666666," 

 ["msg"]=> string(12) "Test wysylki" 

 ["clear_polish"]=> int(1) 

 ["test"]=> int(1) } 

i na stępie problem mam

$response = send_post($url, $params); <----- dostaje Uncaught Error: Call to undefined function send_post() in

var_dump($response);

function send_post($url,$params) {

    $params_string = http_build_query($params);

    $ch = curl_init();

    curl_setopt($ch,CURLOPT_URL, $url);

    curl_setopt($ch,CURLOPT_POST, true);

    curl_setopt($ch,CURLOPT_POSTFIELDS, $params_string);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);

    curl_close ($ch); 

    return $response;

}

i nie mam już pomysłów, będę wdzięczna za sugestie, podpowiedzi

2 odpowiedzi

+1 głos
odpowiedź 22 lipca 2022 przez VBService Ekspert (256,320 p.)
wybrane 23 lipca 2022 przez gatka84
 
Najlepsza

Spróbuj zapisać tak

<?php
function send_post($url,$params)
{
 
   // kod funkcji
 
    return $response;
}

if(isset($_REQUEST['btn_sms'])) 
{
  
   // kod, który masz

  $response = send_post($url, $params); 
  var_dump($response);
}
?>

 

1
komentarz 22 lipca 2022 przez gatka84 Bywalec (2,150 p.)

@VBService, działa dziękuje za podpowiedz

+1 głos
odpowiedź 22 lipca 2022 przez bigbag999 Nowicjusz (200 p.)

Nie potrzebne kombinowanie z CURLEM według mnie. Z tego co widzę ten SMSPlanet stworzył specjalne SDK dla PHP dzięki któremu w prosty sposób możesz obsłużyć wyysłanie tych SMSów bez potrzeby używania protokołu HTTP. Tak jak pisza na githubie, instalujesz przez composera potrzebne elementy, następnie w swoim skrypcie który obsłuży wysyłanie tych SMSów tworzysz obiekt Client na którym będziesz operować i obsługiwać wysyłke smsów.

GitHub - smsplanetpl/smsplanet-php-client Sekcja "PHP Client"

komentarz 22 lipca 2022 przez VBService Ekspert (256,320 p.)
edycja 22 lipca 2022 przez VBService
1
komentarz 22 lipca 2022 przez bigbag999 Nowicjusz (200 p.)
To jest po prostu  dokumentacja RESTFul API no i z tego właśnie wynika czemu ukazany jest CURL. Ale jeżeli software jest budowany na php, powinno się korzystać z biblioteki PHP od SMSPlanet. Też nie wiem jak pod względem wydajnościowym, które wyjście jest lepsze, no ale pod względem czytelności i zasady less code wybrałbym bibiloteke PHP.
komentarz 22 lipca 2022 przez gatka84 Bywalec (2,150 p.)

@bigbag999,   prosiłam bym o podpowiedź bo nie do końca rozumiem jak zastosować biblioteke PHP od SMSPlanet. tzn

$client = new \SMSPLANET\PHP\Client([
    'key' => '<KLUCZ API>',
    'password' => '<HASŁO DO API>'
]);

mam w osobnym pliku podać czy w pierw to i potem nie wiem co z tym

$client = new \SMSPLANET\PHP\Client(/* init */);

nie rozumiem tu (/* init */); i jak to połączy się z tym co composer pobrał?

 

komentarz 23 lipca 2022 przez bigbag999 Nowicjusz (200 p.)
Composer i rzeczy które przez niego pobierasz są powiązane z parserem PHP więc podajesz tylko ścieżkę dostępowa do chcianej klasy. Stosujesz pierwszy przykład, przy inicjacji obiektu klasy podajesz klucz API i hasło. Pozniej już tylko wywolujesz metody na tym obiekcie które będą wykonywały określone funkcje. Czyli np. $client->sendsms();

Zakomentowane słowo "init" którego nie rozumiesz to po prostu symboliczne  uzupełnienie które ma uświadomić że w argumentach podajesz właśnie ten klucz API i hasło aby przejść autentykacje. Nie ma w tym głębszego znaczenia.

Podobne pytania

–3 głosów
1 odpowiedź 361 wizyt
pytanie zadane 9 września 2018 w PHP przez XezolPL Obywatel (1,530 p.)
0 głosów
1 odpowiedź 1,827 wizyt
pytanie zadane 31 marca 2018 w PHP przez mi-20 Stary wyjadacz (13,250 p.)
+1 głos
1 odpowiedź 167 wizyt
pytanie zadane 28 maja w PHP przez batmat1903 Początkujący (340 p.)

93,157 zapytań

142,170 odpowiedzi

321,878 komentarzy

62,486 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 224p. - Marcin Putra
  2. 224p. - nidomika
  3. 223p. - dia-Chann
  4. 221p. - ssynowiec
  5. 217p. - Mikbac
  6. 216p. - CC PL
  7. 215p. - Łukasz Piwowar
  8. 212p. - zmmz89
  9. 210p. - Adrian Wieprzkowicz
  10. 208p. - rafalszastok
  11. 206p. - Michal Drewniak
  12. 204p. - Łukasz Eckert
  13. 202p. - rucin93
  14. 200p. - robwarsz
  15. 198p. - TheLukaszNs
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...