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 ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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
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.
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.
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.
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
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à.
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.