8768 sujets

Développement web côté serveur, CMS

Voila jai fai laquisition dune API d'envoie de sms (sur smsfactor.com) et dans leir documentation ils me donne un code php incomprehensible pour moi???? et jessaye de le relier a un formulaire html qui utilisera ce code php en tant que action,
Merci pour votre aide. (Di dessous le.code fourni)
[Code] <?php
$token = "your.token"; // https://secure.smsfactor.com/token.html;
$content = "Test API";
$numbers = array('0601020304','0704030201');
$sender = "PHP";
$recipients = array();
foreach ($numbers as $n) {
$recipients[] = array('value' => $n);
}

$postdata = array(
'sms' => array(
'message' => array(
'text' => $content,
'sender' => $sender
),
'recipients' => array('gsm' => $recipients)
)
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.smsfactor.com/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdata));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json', 'Authorization: Bearer ' . $token));
$response = curl_exec($ch);
curl_close($ch); [code]
Qu’est ce que tu ne comprends pas ?
Le code en lui-même est assez clair, il est destiné à servir de modèle à ton propre code. Quel est ton niveau de compréhension du PHP ?
Oublie le mot API.
Un formulaire c’est fait pour envoyer des données à un programme PHP. Ce qu’on t’a donné c’est un modèle de programme PHP. Est ce que tu sais écrire un programme PHP ou est-ce que tu écris des formulaires pour appeler des programmes PHP tout faits.
Generalement je cree mes propre formulaire avec leur propre apelation php fait sur mesure par mes soins donc je c comment atachet les label html avec leur action php
Ou je doi remplie "lexpediteur" le "numero" a qui je veut envoyer et le "message" a envoyer? Et sa marcherai avec le htmlentites?
Voici ce que je comprends à la lecture du code.
Je n'ai rien testé,je n'en si du reste pas la possibilité car je n'ai pas de compte utilisateur chez smsfactor

<?php
/* $token est une chaîne de caractères que 
le gestionnaire a doit fournir à son client 
voir avec smsfactor si tu ne l'as pas reçu 
c'est une constante qui est la même pour tous les envois de sms */
$token = "your.token"; //  https://secure.smsfactor.com/token.html;
 

/* "Test API" est à remplacer par le message à envoyer
par exemple $content = $_REQUEST['message'] 
avec dans le formulaire une zone à remplir
<textarea name="message"><textarea> */
$content = $_REQUEST['message'];

/* $numbers est la liste des numéros auxquels envoyer le message
par exemple $numbers = $_REQUEST['numero'] 
aved dans le formulaire une suite de zones à remplir
<input type="text" name="numero[]"> */
$numbers = $_REQUEST['numero'];

/* $sender je pense que ce doit être le numéro de l'émetteur 
c'est la même valeur pour tous les envois de sms */
$sender = "0601020304";

/* ce qui suit utilise les valeurs de $token,$content, $numbers,$sender
et les met en forme pour appeler le serveur de smsfactor */
$recipients = array();
foreach ($numbers as $n) {
	$recipients[] = array('value' => $n);
}

$postdata = array(
	'sms' => array(
		'message' => array(
			'text' => $content,
			'sender' => $sender
		),
		'recipients' => array('gsm' => $recipients)
	)
);


/* l'interface curl permet de s'adresser à un site distant */
$ch = curl_init();			//initialisation de l'interface
curl_setopt($ch, CURLOPT_URL, "https://api.smsfactor.com/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdata));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json', 'Authorization: Bearer ' . $token));

$response = curl_exec($ch);  //appel de l'interface
curl_close($ch);			 //fermeture de l'interface
?>

et dans le HTML quelque chose comme

<form .....action="url du fichier php ci-dessus">
  <input type="text" name="numero[]">
  <input type="text" name="numero[]">
  <input type="text" name="numero[]">
  .......................
  <textarea name="message"></textarea>
  ........
</form>

J'espère que c'est clair
Meilleure solution
Je ten remercie enormeeeemennnnr je rentre a la.maison et je fais le test et jte dirais direct ce qie sa donne ???????????????????? merciii
non sa ne fonctionne pas Smiley sweatdrop Smiley sweatdrop ....
et je voie pa ou et lerreur voila le code
<?php
$token = $_REQUEST['token'];
$content = $_REQUEST['message'];
$numbers = $_REQUEST['telephone'];
$sender = $_REQUEST['expediteur'];
$recipients = array();
foreach ($numbers as $n) {
  $recipients[] = array('value' => $n);
}

$postdata = array(
  'sms' => array(
   'message' => array(
    'text' => $content,
    'sender' => $sender
   ),
   'recipients' => array('gsm' => $recipients)
  )
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.smsfactor.com/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postdata));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Accept: application/json', 'Authorization: Bearer ' . $token));
$response = curl_exec($ch);
curl_close($ch);
    


et la le code du form en html
<form method="post" action="sms.php" class="formulaire">

    <p>
        <label for="expediteur"></label>
        <input type="text" placeholder="expediteur" id="expediteur" name="expediteur" maxlength="11" required />
   </p>
   <p>
                <label for="token"></label>
                <input type="text" name="token" placeholder="token" id="token" required />
            </p>
            
    <p>
        <label for="telephone"></label>
        <input type="tel" placeholder="Telephone" id="telephone" name="telephone" required />
   </p>
   <p>
        <textarea name="message" id="message" rows="10" cols="50" placeholder="message"></textarea>
   </p>

   <input type="submit" name="Envoyer" class="button" />
</form>
Ce code est prévu pour qu’on puisse donner une liste de destinataires. Il s’attend donc à recevoir un array même s’il n’y en a qu’un
Essaie

<input type="tel" placeholder="Telephone" id="telephone" name="telephone[]" required />