SMS Versand über PHP Geht nicht & Via Textbox Text versenden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
auftritt
auslese
benutzer
code
date
datei
datum
editor
fehler
format
http
kontingent
message
nachricht
nummer
parameter
text
ticket
url
-
Hallo liebe Community,
Ich habe mir gerade SMS Contigent gekauft um für Notfälle eine SMS zugesendet zu Bekommen (nur von meinem Team)
Habe zum Testen erstmal nur das Lima-City beispiel Script genommen und etwas geändert.
Soweit so Gut.... Dachte ich, aber es geht nicht ich bekomme die Meldung "SMS wurde nicht gesendet!"
Hier mein Code:
<?php $message_text = 'Hallo Empfänger!'; // Nachricht $mobile_number = '004917816#####'; // Handy-Nummer des Empfängers $user_id = '30####'; // Deine persönliche User-ID $secret_apikey = 'ry5############################'; // Dein geheimer API-Schlüssel $param_text = urlencode(utf8_decode($message_text)); $retval = file_get_contents('http://api.lima-city.de/sms?user_id=' . $user_id . '&apikey=' . $secret_apikey . '&text=' . $param_text . '&number=' . $mobile_number); if ($retval == 100) { echo "SMS wurde gesendet!"; } else if ($retval == 200) { echo "200: Fehler; Da lief irgendetwas schief. Überprüfe die Parameter und den Text. Wenn dies öfters auftritt, kontaktiere uns bitte per Support-Ticket."; } else if ($retval == 300) { echo "300: Fehler; Kein SMS-Kontingent, falsche User-ID oder falscher API-Key."; } else if ($retval == 301) { echo "301: Fehler; Die Handynummer hat ein ungültiges Format"; } else { echo "SMS wurde nicht gesendet!"; } ?>
(### soll eine Zensierung sein, ich habe es nicht so Eingegeben)
Wie man am Code sehen kann, wird keine Genaue Fehlermeldung benutzt.
und die Zweite Frage,
wie mache ich das der zu sendende Text Eingegeben werden kann/Muss und dieser dann per Button gesendet wird?
MfG: Wuppi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vielleicht ein Systemfehler wie bei mir https://www.lima-city.de/thread/php-mailversand-funktioniert-nicht
Das Standart Script sollte eig schon gehen :D
so kannst du einfach auslesen. Den Transfer kriegst du schon hin :)
<?php echo "eingetragener Vorname: ". $_GET['vorname']; ?> <form action="formular-m-anzeige.php" method="get" > <p>Ihr Vorname: <input type="text" name="vorname" /> </p> <p> <input type="submit" value="absenden" /> </p> </form>
-
Zunächst mal solltest du deinem Editor UTF-8 beibringen. Bzw. deine Dateien in UTF-8 ohne BOM speichern. So löst du schon mal Umlautprobleme.
Es könnte nun sein, dass dadurch der Fehler entstanden ist, da der Message Text falsch an die URL gehängt wird.
Solltest da aber mal ein Ticket für öffnen.
Zu deiner anderen Frage:
<?php
if(isset($_POST['message']) && $_POST['message']!=''){
$message_text=strip_tags($_POST['message']); // Nachricht
$mobile_number = '004917816#####'; // Handy-Nummer des Empfängers
$user_id = '30####'; // Deine persönliche User-ID
$secret_apikey = 'ry5############################'; // Dein geheimer API-Schlüssel
$param_text = urlencode(utf8_decode($message_text));
$retval = file_get_contents('http://api.lima-city.de/sms?user_id=' . $user_id . '&apikey=' . $secret_apikey . '&text=' . $param_text . '&number=' . $mobile_number);
if ($retval == 100) {
echo "SMS wurde gesendet!";
} else if ($retval == 200) {
echo "200: Fehler; Da lief irgendetwas schief. Überprüfe die Parameter und den Text. Wenn dies öfters auftritt, kontaktiere uns bitte per Support-Ticket.";
} else if ($retval == 300) {
echo "300: Fehler; Kein SMS-Kontingent, falsche User-ID oder falscher API-Key.";
} else if ($retval == 301) {
echo "301: Fehler; Die Handynummer hat ein ungültiges Format";
} else {
echo "SMS wurde nicht gesendet!";
}
} else{
?>
<form action='diesedatei.php' method='post'>
<input type='text' name='message' placeholder='deine Nachricht' style='width: 200px' max-length='160'>
<input type='submit' value='senden'>
</form>
<?php
}
?>
action= natürlich noch anpassen.
Einen normalen HTML Header und Footer noch einpflegen.
Jetzt nur noch deinem Design anspassen und eventuell noch ein wenig Text dazu.
-
@all-in1
Danke der Code klappt wunderbar ^^
jetzt sieht das ganze aber etwas anders aus, die meldung "SMS wurde nicht gesendet!" bleibt bestehen ABER die sms wurde gesendet und ist angekommen oO
all-in1 schrieb:
Zunächst mal solltest du deinem Editor UTF-8 beibringen. Bzw. deine Dateien in UTF-8 ohne BOM speichern. So löst du schon mal Umlautprobleme.
mein Eigentlicher Editor kann das auch ohne Problme, bin aber gerade nicht zuhause und nutze daher den Editor vom ftp zugang von Lima-City -
Melde das Bitte mal Bitte Ticket. Da müssen ja Fehlercodes durcheinander geraten sein.
-
all-in1 schrieb:
Melde das Bitte mal Bitte Ticket. Da müssen ja Fehlercodes durcheinander geraten sein.
werde ich machen ^^
eine Frage noch,
Habe das Ganze nochmal etwas erweitert und es klappt nicht ganz so wie es soll,
jetzt sendet er keine SMS sie wird aber dennoch angerechnet und die txt wir auch nicht erstellt
<?php if(isset($_POST['message']) && $_POST['message']!='') { // und nun die Daten in eine Datei schreiben // Datei wird zum Schreiben ge?ffnet $handle = fopen ( "notfallsms", $_POST['benutzer'], ".txt", "w" ); // schreiben des Inhaltes von email fwrite ( $handle, $_POST['benutzer'] ); // Trennzeichen einf?gen, damit Auswertung m?glich wird fwrite ( $handle, "|" ); // schreiben des Inhalts von name fwrite ( $handle, $_POST['message'] ); // Datei schlie?en fclose ( $handle ); $message_text=strip_tags($_POST['message']); // Nachricht $mobile_number = '004915########'; // Handy-Nummer des Empfängers $user_id = '30####'; // Deine persönliche User-ID $secret_apikey = 'ry5#######################'; // Dein geheimer API-Schlüssel $param_text = urlencode(utf8_decode($message_text)); $retval = file_get_contents('http://api.lima-city.de/sms?user_id=' . $user_id . '&apikey=' . $secret_apikey . '&text=' . $param_text . '&number=' . $mobile_number); if ($retval == 100) { echo "SMS wurde gesendet!"; } else if ($retval == 200) { echo "200: Fehler; Da lief irgendetwas schief. Überprüfe die Parameter und den Text. Wenn dies öfters auftritt, kontaktiere uns bitte per Support-Ticket."; } else if ($retval == 300) { echo "300: Fehler; Kein SMS-Kontingent, falsche User-ID oder falscher API-Key."; } else if ($retval == 301) { echo "301: Fehler; Die Handynummer hat ein ungültiges Format"; } else { echo "SMS wurde nicht gesendet!"; } } else{ ?> <form action='test2.php' method='post'> <input type='text' name='benutzer' placeholder='dein Name' style='width: 200px' max-length='160'><br><br> <input type='text' name='message' placeholder='deine Nachricht' style='width: 200px' max-length='160'><br><br> <input type='submit' value='senden'> </form> <?php } ?>
Beitrag zuletzt geändert: 3.2.2016 12:48:48 von mylonky -
Tausche mal die Zeile aus
$handle = fopen ( "notfallsms". $_POST['benutzer']. ".txt", "w" );
Also anstelle der , einfach mal . eintragen.
Ich würde sogar noch so schreiben:
$handle = fopen ( "notfallsms_". $_POST['benutzer']. ".txt", "w" );
Dann kann man schneller Unterschiede auf dem FTP sehen. Und falls man ein Script zum auslesen solcher Dateien programmiert, hat diese form eventuell auch einen kleinen Vorteil. Man hat so einen Trenner im Dateinamen. -
all-in1 schrieb:
Tausche mal die Zeile aus
$handle = fopen ( "notfallsms". $_POST['benutzer']. ".txt", "w" );
Also anstelle der , einfach mal . eintragen.
Ich würde sogar noch so schreiben:
$handle = fopen ( "notfallsms_". $_POST['benutzer']. ".txt", "w" );
Dann kann man schneller Unterschiede auf dem FTP sehen. Und falls man ein Script zum auslesen solcher Dateien programmiert, hat diese form eventuell auch einen kleinen Vorteil. Man hat so einen Trenner im Dateinamen.
Vielen dank hat Funktioniert ^^
letzte sache noch dann bin ich zufrieden ^^"
ich habe jetzt unter $secret_apikey = 'ry......
noch die zeilen
date_default_timezone_set("Europe/Berlin");
$Datum = date("d.m.Y H:i");
hinzugefügt und beim speichern
$handle = fopen ( "notfallsms_". $Datum. "_". $_POST['benutzer']. ".txt", "w" );
es so eingefügt, aber auch das Funktioniert mal wieder leider nicht ^^"
Hoffe du magst mir noch ein letztes mal helfen qwq -
So wie du es vorhast geht es nur auf Windowssystemen, Linuxsysteme mögen keine Leerezeichen und auch keine Sonderzeichen.
$Datum = date("d-m-Y-H-i");
-
all-in1 schrieb:
So wie du es vorhast geht es nur auf Windowssystemen, Linuxsysteme mögen keine Leerezeichen und auch keine Sonderzeichen.
$Datum = date("d-m-Y-H-i");
das Datum wird leider dennoch nicht angezeigt die Datei heißt einfach nur
"notfallsms__Testi.txt" dabei sollte es "notfallsms_DATUM_Testi.txt" sein -
Versuch mal:
$date=time(); $Datum = date("d-m-Y-H-i", $date);
Ich würde dafür aber erstmal den SMS Versand auskommentieren. Kostet ja ansonsten jedesmal etwas.
Also so:
//$retval = file_get_contents('http://api.lima-city.de/sms?user_id=' . $user_id . '&apikey=' . $secret_apikey . '&text=' . $param_text . '&number=' . $mobile_number);
Wird dir zwar etwas falsches melden oder eventuell einen Fehleranzeigen, aber um mal zu testen, ob deine Datei jetzt richtig angelegt wird sollte es reichen. -
Habe ich gemacht der name der Datei bleibt weiterhin notfallsms__Testi.txt
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage