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):

<?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>
1) Het voorbeeld werkt wel? Kun je dat ook hier plaatsen?
2) Welke (fout-) melding krijg je?
Ik heb even je script voorzien van code-tags en wat hoofdletters weggehaald.

Mogelijk ook niet onbelangrijk. Is de API bereikbaar via https:// ?
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:

<?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

[size=xsmall]Toevoeging op 09/08/2019 20:29:32:[/size]

- 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
Wat doet je script nu? Wat is de fout waar je op vastloopt? Wat geeft de API terug?
- 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
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):

<?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"],
        );
?>
Controleer eens met dit of je $_POST waardes kloppen:

<?php
echo "<pre>".print_r($_POST,true)."</pre>"; ?>
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):

<?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


[size=xsmall]Toevoeging op 09/08/2019 21:12:24:[/size]

- Ariën - op 09/08/2019 21:09:10

Controleer eens met dit of je $_POST waardes kloppen:

<?php
echo "<pre>".print_r($_POST,true)."</pre>"; ?>


kan ik die gewoon boven me submit code plakken?

[size=xsmall]Toevoeging op 09/08/2019 21:16:27:[/size]

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):

<?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

Reageren