Integratie SMS-systeem in script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan deman

jan deman

09/08/2019 18:27:32
Quote Anchor link
hallo allemaal,

ik heb een klein probleempje dat ik graag nog dit weekend wil oplossen. ik ben bezig met het intergreren van een sms api maar nu heb ik dus het volgende probleem met mijn script, de sms api maakt gebruik van sub-accounts dus als ik een sms wil versturen moet dat door middel van een username en password. maar in de voorbeeld documentatie van de api staat dat allemaal inclusief het bericht die je wilt versturen in je script dus het zit allemaal al in mijn script verwerkt, dat moet natuurlijk niet anders moet ik steeds in mijn server gaan en mijn code aanpassen per bericht die ik verstuur. dus ik heb een aantal input fields waarvan die data doorgegeven moet worden aan de api (account details, nummer, en bericht) maar ik krijg het maar niet voor elkaar. kan iemand mij alsjeblieft helpen, ik ben geen pro in php ben er pas een jaar mee bezig dus als iemand mij code zou willen aanpassen naar hoe ik het wil en een uitleg erbij wat ik fout heb gedaan zou dat erg fijn zijn! :)

zo ziet mijn code er als volgt uit (heb verschillende dingen geprobeerd er zal vast iets zijn wat ik over het hoofd heb gezien):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php


if(isset($_POST['submit'])){
        $post_data=array(
            'sub_account'=>$_POST["user"]),
            'sub_account_pass'=>$_POST["pass"]),
            'action'=>'send_sms',
            'sender_id'=>"",
            'recipients'=>$_POST["nummer"]),
            'message'=>$_POST["text"]),
        );

        
        $api_url='dit is de link van mijn sms gateway maar die laat ik niet zien';

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $api_url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
        $response = curl_exec($ch);
        $response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if($response_code != 200)$response=curl_error($ch);
        curl_close($ch);

        if($response_code != 200)$msg="HTTP ERROR $response_code: $response";
        else
        {
            $json=@json_decode($response,true);
            
            if($json===null)$msg="INVALID RESPONSE: $response";
            elseif(!empty($json['error']))$msg=$json['error'];
            else
            {
                $msg="SMS sent to ".$json['total']." recipient(s).";
                $sms_batch_id=$json['batch_id'];
            }
        }

        
        echo $msg;

}





?>


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>ADMIN control panel</title>
        <link href="css/stylesmssenden.css" rel="stylesheet" type="text/css">
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css">
    </head>
    <body class="loggedin">
        <nav class="navtop">
            <div>
                <h1>ADMIN</h1>
                <a href="profile.php"><i class="fas fa-user-circle"></i>Profile</a>
                <a href="logout.php"><i class="fas fa-sign-out-alt"></i>Logout</a>
            </div>
        </nav>
        <div class="content">
            <h2>sms verzenden</h2>
            <div class="form-container">
                <form action="" method="POST">
                
                username:<input name="user" type="text">
                <br>
                wachtwoord:<input type="password" name="pass">
                <br>
                nummers:
                <br>
                <textarea type="tel" placeholder="(+)31642222222" name="nummer" ></textarea>
                <br>
                text:
                <br>
                <textarea type="text" id="berichtinput" name="text" placeholder="SMS bericht       tot 160 tekens"></textarea>
                <br>
                <input type="submit" name="submit" value="verzenden">
                
                </form>
            </div>
        </div>
    
    
    <div class="dashboard">
        <ul>
        <li><a href="home.php">home</a></li>
        <br>
        <li><a href="adduser.php">accounts DB</a></li>
        <br>
        <li><a href="smsverzenden.php">sms verzenden</a></li>
        <br>
        <li><a href="#">chat (onder constructie)</a></li>
        </ul>
    </div>
    
    
    <body>
</html>
Gewijzigd op 09/08/2019 19:53:44 door - Ariën -
 
PHP hulp

PHP hulp

19/04/2024 19:44:36
 
Rob Doemaarwat

Rob Doemaarwat

09/08/2019 19:49:37
Quote Anchor link
1) Het voorbeeld werkt wel? Kun je dat ook hier plaatsen?
2) Welke (fout-) melding krijg je?
 
- Ariën  -
Beheerder

- Ariën -

09/08/2019 19:54:40
Quote Anchor link
Ik heb even je script voorzien van code-tags en wat hoofdletters weggehaald.

Mogelijk ook niet onbelangrijk. Is de API bereikbaar via https:// ?
Gewijzigd op 09/08/2019 20:19:21 door - Ariën -
 
Jan deman

jan deman

09/08/2019 20:27:58
Quote Anchor link
Rob Doemaarwat op 09/08/2019 19:49:37:
1) Het voorbeeld werkt wel? Kun je dat ook hier plaatsen?
2) Welke (fout-) melding krijg je?


als ik deze code gebruik dan kan het verzenden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
        $post_data
=array(
            'sub_account'=>'001_mysub1',
            'sub_account_pass'=>'pa55w0Rd',
            'action'=>'send_sms',
            'sender_id'=>'President',
            'recipients'=>'08080000000,2348095029999',
            'message'=>"Hello, there will be a meeting today by 12 noon."
        ); ?>



maar ik wil dat de waarde van me input fields word neer gezet, dus als voorbeeld: ik typ in me input field username: "kees_sub" moet dat komen te staan bij 'sub_account'=> etc etc

de foutmelding bij me code die ik eerder liet zien was dat er niet zo een subaccount was dus ik denk dat wat ik na 'sub_account'=> type in me script werd letterlijk zo overgenomen inplaats van dat het pakt wat ik in me input field typ

Toevoeging op 09/08/2019 20:29:32:

- Ariën - op 09/08/2019 19:54:40:
Ik heb even je script voorzien van code-tags en wat hoofdletters weggehaald.

Mogelijk ook niet onbelangrijk. Is de API bereikbaar via https:// ?


ja want als ik de werkende versie zet dan is tie te bereiken via https
Gewijzigd op 09/08/2019 20:33:12 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

09/08/2019 20:47:52
Quote Anchor link
Wat doet je script nu? Wat is de fout waar je op vastloopt? Wat geeft de API terug?
Gewijzigd op 09/08/2019 20:49:04 door - Ariën -
 
Jan deman

jan deman

09/08/2019 21:02:21
Quote Anchor link
- Ariën - op 09/08/2019 20:47:52:
Wat doet je script nu? Wat is de fout waar je op vastloopt? Wat geeft de API terug?


het eerste script die ik stuurde die zegt terug dat het geen bestaande subaccount is.
als je boven kijkt naar de reactie van Rob dan zie je het script die wel werkt, hij had ook ongeveer dezelfde vraag dus dat laat gelijk zien wat ik bedoel want misschien lijkt het een beetje verwarrend
 
Rob Doemaarwat

Rob Doemaarwat

09/08/2019 21:08:07
Quote Anchor link
In je originele script staan achter de $_POST['xxx'] variabelen steeds nog een ")". Dan gaat je PHP sowieso niet werken (heeft dus niks met de API te maken - gewoon een lokale fout die je in je lokale log terug had kunnen vinden):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if(isset($_POST['submit'])){
        $post_data=array(
            'sub_account'=>$_POST["user"],
            'sub_account_pass'=>$_POST["pass"],
            'action'=>'send_sms',
            'sender_id'=>"",
            'recipients'=>$_POST["nummer"]),
            'message'=>$_POST["text"],
        );

?>
 
- Ariën  -
Beheerder

- Ariën -

09/08/2019 21:09:10
Quote Anchor link
Controleer eens met dit of je $_POST waardes kloppen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
echo "<pre>".print_r($_POST,true)."</pre>"; ?>
 
Jan deman

jan deman

09/08/2019 21:11:26
Quote Anchor link
Rob Doemaarwat op 09/08/2019 21:08:07:
In je originele script staan achter de $_POST['xxx'] variabelen steeds nog een ")". Dan gaat je PHP sowieso niet werken (heeft dus niks met de API te maken - gewoon een lokale fout die je in je lokale log terug had kunnen vinden):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if(isset($_POST['submit'])){
        $post_data=array(
            'sub_account'=>$_POST["user"],
            'sub_account_pass'=>$_POST["pass"],
            'action'=>'send_sms',
            'sender_id'=>"",
            'recipients'=>$_POST["nummer"]),
            'message'=>$_POST["text"],
        );

?>



dankjewel ik ga het gelijk uitproberen of dit werkt geef een klein momentje


Toevoeging op 09/08/2019 21:12:24:

- Ariën - op 09/08/2019 21:09:10:
Controleer eens met dit of je $_POST waardes kloppen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
echo "<pre>".print_r($_POST,true)."</pre>"; ?>


kan ik die gewoon boven me submit code plakken?

Toevoeging op 09/08/2019 21:16:27:

Rob Doemaarwat op 09/08/2019 21:08:07:
In je originele script staan achter de $_POST['xxx'] variabelen steeds nog een ")". Dan gaat je PHP sowieso niet werken (heeft dus niks met de API te maken - gewoon een lokale fout die je in je lokale log terug had kunnen vinden):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if(isset($_POST['submit'])){
        $post_data=array(
            'sub_account'=>$_POST["user"],
            'sub_account_pass'=>$_POST["pass"],
            'action'=>'send_sms',
            'sender_id'=>"",
            'recipients'=>$_POST["nummer"]),
            'message'=>$_POST["text"],
        );

?>


HET WERKT!!!!! echt super dankjewel ik wist wel dat ik daar ergens iets fout deed top man echt top
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.