Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

envoi de sms en ligne

2 réponses
Avatar
tiboux
je travaille sur un script visant à relayer des informations par sms.
J'ai, pour se faire, utilisé une passerelle en ligne, topsms.
Voici, en bref, le code permettant l'envoi du sms.

$message="\"".$ot->id." ".str_replace("\20","\20",str_replace("'","",
$ot->objet))."\"";
if (strlen($message)>157) $message=substr($message,0,156)."...";
$url='http://www.leSMS.com/http.php?
email=monemail&pass=monmotdepasse&numero='.
$_POST['numero_mobile'].'&message='.$message;
$a = @fopen($url,80);
if (! $a) {
echo "Connexion à la passerelle (Url : ".$url.") impossible";
}

Tout cela marche fort bien.
Le drame survient quand la variable $message contient un espace.
fread(): supplied argument is not a valid stream resource in ...

Une idée ?

Cdlt,

Séb.

2 réponses

Avatar
Olivier Miakinen
je travaille sur un script visant à relayer des informations par sms.
J'ai, pour se faire, utilisé une passerelle en ligne, topsms.
Voici, en bref, le code permettant l'envoi du sms.

$message=""".$ot->id." ".str_replace("20","20",str_replace("'","",
$ot->objet)).""";


1) Tu peux écrire '"' au lieu de """, ce qui est un peu plus lisible.

2) Si tu as besoin d'enchaîner plusieurs str_replace de suite, tu peux
en faire un seul, avec comme premiers paramètres des tableaux contenant
les chaînes à remplacer et de remplacement.

3) Pourquoi remplacer "20" par "20" ? Ne serait-ce pas l'origine de
ton problème ?

if (strlen($message)>157) $message=substr($message,0,156)."...";
$url='http://www.leSMS.com/http.php?
email=monemail&pass=monmotdepasse&numero='.


Attention : il faut écrire « &pass » et « &numero ».

$_POST['numero_mobile']


Tu as vérifié que le contenu de $_POST['numero_mobile'] ne comporte
aucun caractère interdit ?

.'&message='.$message;


Là aussi il faut « &message ». Et puis en fait l'origine de ton
problème est ici : tu dois utiliser « urlencode($message) » et non
« $message ».

$a = @fopen($url,80);
if (! $a) {
echo "Connexion à la passerelle (Url : ".$url.") impossible";
}

Tout cela marche fort bien.
Le drame survient quand la variable $message contient un espace.


Ben voilà.

http://fr3.php.net/urlencode

Cdlt,


Mon Commandant !

Séb.


Cordialement,
--
Olivier Miakinen

Avatar
Olivier Miakinen
Le 27/12/2007 17:01, Olivier Miakinen a écrit tout un tas de bêtises :

Attention : il faut écrire « &pass » et « &numero ».


Première bêtise. C'est seulement pour le mettre dans un fichier HTML.

.'&message='.$message;


Là aussi il faut « &message ».


Deuxième bêtise.

Et puis en fait l'origine de ton
problème est ici : tu dois utiliser « urlencode($message) » et non
« $message ».


Là, en revanche, je crois qu'il faut effectivement faire ça.

http://fr3.php.net/urlencode


Voilà.