- Comment ça marche ?
Methode HTTP : POST
Nous allons éffectuer une requete POST en utilisant la fonction
fsockopen pour envoyer le SMS. Le premier script correspond au code HTML du formulaire et le deuxieme permet de traiter les données de l'utilisateur et d'envoyer le SMS.
- Formulaire HTML :
<form name="envoyersms" method="post" action="handler.php">
<label>Numero : <input type="text" name="number" /></label><br >
<label>Expediteur : <input type="text" name="expediteur" /></label><br />
<label>Message : <textarea name="message"></textarea></label><br />
<label>
Flash :
<input type="radio" name="flash" value="0" checked="checked" /> Non -
<input type="radio" name="flash" value="1" /> Oui
</label>
<br />
<input type="submit" name="envoyer" value="Envoyer" />
</form>
- Code PHP (handler.php) :
<?php
function send($apikey, $number, $message, $expediteur = false, $msg_id = false)
{
if(!extension_loaded('sockets')) $response = "Function requires sockets.";
else
{
$request = "&apikey=".urlencode($apikey)."&number=".urlencode($number);
$request .= "&message=".urlencode($message)."&msg_id=".(int)$msg_id;
$request .= "&expediteur=".urlencode($expediteur);
$http_header = "POST /v1/?method=send HTTP/1.1\r\n";
$http_header .= "Host: api.envoyersms.org\r\n";
$http_header .= "User-Agent: HTTP/1.1\r\n";
$http_header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$http_header .= "Content-Length: ".strlen($request)."\r\n";
$http_header .= "Connection: close\r\n\r\n";
$http_header .= $request."\r\n";
$host = "api.envoyersms.org";
$port = 80;
$out = @fsockopen($host, $port, $errno, $errstr);
if($out)
{
fputs($out, $http_header);
while(!feof($out)) $result[] = fgets($out);
fclose($out);
}
$response = $result[12];
}
return $response;
}
$responses = array('OK' => 'Message envoyé avec succès.',
'ERR_01' => 'APIkey invalide.',
'ERR_02' => 'Erreur au niveau des paramètres.',
'ERR_03' => 'Crédit insuffisant.',
'ERR_04' => 'Le numéro du destinataire est invalide.'
);
if (!empty($_POST['envoyer']))
{
$apikey = ""; # votre APIkey
$r=send($apikey,$_POST['number'],$_POST['message'],$_POST['expediteur']);
echo $responses[$r];
}
?>