CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |

06.07.2014, 16:27:39
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
String zu Array Versand Problem
Hallo allerseits
Ich möchte eine SMS Versandmöglichkeit so erweitern, dass bis zu 5 Mitarbeiter mit verschiedenen Mobilnummern die gleiche Nachricht erhalten. Für den SMS-Versand stellt websms.ch ein (leider) vorgegebenes Skript zur Verfügung. Die Nachricht an einzelne Empfänger kann ich problemlos verschicken.
In ein Formularfeld fülle ich einen ganz normalen String mittels jQuery UI Autocomplete.
Nun bereitet mir aber das vorgegebene Array für die Empfänger $recipientAddressList = array(); Sorgen. Ich weiss nicht wie füllen, ohne dass eine Fehlermeldung des vorgegebenen Skripts "must Numeric" erscheint. Mittels print_r($explode); erscheinen zwei saubere Arrayeinträge (String mit delimiter gesäubert).
PHP-Code:
//String $_POST['phone'] z.B. = 41745554433<Mitarbeiter1>, 41746667788<Mitarbeiter2>,
$reveiver = $_POST['phone'];
$delimiter = array(" ","",'"','",',",",".","'","\"","|","\\","/",";",":",'"<".*.">"');
$replace = str_replace($delimiter, $delimiter[0], $receiver);
$explode = explode($delimiter[0],$replace);
echo '<pre>';
print_r($explode);
echo '</pre>';
//Vorgabe damits funktioniert wäre: $recipientAddressList = array("41745554433","41746667788");
$recipientAddressList = array();
$utf8_message_text = "test";
Wie bringe ich die Nummern mit den Anführungszeichen in das array()? Wo liegen der oder die Fehler? Oder gibt es eine einfachere Lösung?
Hoffe, Ihr versteht was ich meine. Um Antworten wäre ich sehr dankbar.
Gruss doschni
|

06.07.2014, 21:17:13
|
 |
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
|
|
AW: String zu Array Versand Problem
Zitat:
//Vorgabe damits funktioniert wäre: $recipientAddressList = array("41745554433","41746667788");
|
Das ist falsch.
"41745554433" ist ein String.
41745554433 ist bei 64bit PHP eine Integerzahl, bei 32bit PHP eine Falltür.
btw: das ist die Kurzform. Die Langform hat ein dämliches Javascript gefressen, mit denen dieses Forum betrieben wird. Allerdings bin ich zu faul, alles noch mal zu tippern.
@admin
habe ich nen Trojaner, baut Firefox + noScript Mist oder dreht da das Javascriptgerätze von vBulletin v3.8.3 durch? Diesen Text durfte ich nur deshalb schreiben, weil ich für *.selfphp.* und *.google*.* Javascript ausgeschaltet habe.
|

07.07.2014, 18:52:33
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: String zu Array Versand Problem
Das ist es wo ich hängen bleibe. Das vorgegebene Versand-Skript verlangt also einen String in einem Array. Den hätte ich:
PHP-Code:
$comma_separated = '"' . implode('","', $explode) . '"';
echo $comma_separated;
//Ausgabe = "41745554433","41746667788"
Folgendes funktioniert jedoch nicht:
PHP-Code:
$recipientAddressList = array($comma_separated); //oder
$recipientAddressList = array('$comma_separated'); //oder
$recipientAddressList = array("$comma_separated");
Aber wie bekomme ich den String ins Array, damit er als String erkannt wird?
|

07.07.2014, 19:34:27
|
 |
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: String zu Array Versand Problem
PHP-Code:
$recipientAddressList = array();
$recipientAddressList[] = $comma_separated;
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|

07.07.2014, 20:05:57
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: String zu Array Versand Problem
Danke für Eure bisherigen Antworten. Aber
Zitat:
Zitat von vt1816
PHP-Code:
$recipientAddressList = array(); $recipientAddressList[] = $comma_separated;
|
funktioniert leider auch nicht.
Es erscheint folgende Fehlermeldung:
ParameterValidationException caught: Empfänger '"41745554433","41746667788"' wurde nicht ausgewählt! (must be numeric).
Habt Ihr noch weitere Tipps?
PS. Die zusätzlichen Apostrophe am Anfang und Ende werden ausgegeben, weil die Fehlermeldung innerhalb dieser ausgegeben wird.
Geändert von doschni (07.07.2014 um 20:26:10 Uhr)
Grund: Zusatzinfo
|

07.07.2014, 21:03:43
|
 |
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: String zu Array Versand Problem
Zitat:
Zitat von doschni
[..]
ParameterValidationException caught: Empfänger '"41745554433","41746667788"' wurde nicht ausgewählt! (must be numeric).
Habt Ihr noch weitere Tipps?
|
Wieso übergibst Du einen String wenn ein Numeric erwartet wird?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|

07.07.2014, 22:00:46
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: String zu Array Versand Problem
Weil websms.ch das Skript so vorgibt, siehe Link.
Und wenn ich es wie folgt abschicke, funktioniert es ja auch:
PHP-Code:
$recipientAddressList = array("41745554433","41746667788");
Wie genau sollte ich/man es denn sonst machen? Dynamisch krieg ich's bisher einfach nicht hin.
|

07.07.2014, 23:43:26
|
 |
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
|
|
AW: String zu Array Versand Problem
Zitat:
Zitat von doschni
Das ist es wo ich hängen bleibe. Das vorgegebene Versand-Skript verlangt also einen String in einem Array.
|
Frag doch mal den Anbieter, ob er noch alle Tassen im Schrank hat, numeric zu fordern und im Beispiel ein Array mit Strings anzugeben.
Das
PHP-Code:
$string = "41745554433";
ist ein Stringliteral. Zwischen die beiden Gänsefüße kannste alles reintippern, was Du willst. Du kannst selbst weitere Gänsefüße einfügen, wenn Du das escape Zeichen \ davorsetzt:
PHP-Code:
$auch_ein_string = "4174\"5554433";
Beachte den wichtigen Unterschied zwischen single quoted und double quoted.
http://de3.php.net/manual/en/languag....syntax.single
http://de3.php.net/manual/en/languag....syntax.double
Allerdings hast Du ein anderes Problem:
http://de3.php.net/integer
Zitat:
The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). 64-bit platforms usually have a maximum value of about 9E18, except for Windows, which is always 32 bit. PHP does not support unsigned integers. Integer size can be determined using the constant PHP_INT_SIZE, and maximum value using the constant PHP_INT_MAX since PHP 4.4.0 and PHP 5.0.5.
|
Mit 32bit PHP dürfen die Ziffern nur 9 Stellen haben, die Telefonnummern in Deinem Beispiel haben aber 11 Stellen. Da brauchste 64bit PHP unter Linux.
Ein weiteres Problem wäre eine Vornull, die bei Integer nicht gestattet ist. Zahlen, die mit einer 0 beginnen, interpretiert PHP als Oktalzahl.
Zitat:
Aber wie bekomme ich den String ins Array, damit er als String erkannt wird?
|
s.o.
Kläre mit den Idioten, wieso die
a. numeric fordern und
b. nen String als Beispiel angeben.
Und noch mal zum Thema:
Zitat:
Ich weiss nicht wie füllen, ohne dass eine Fehlermeldung des vorgegebenen Skripts "must Numeric" erscheint.
|
Poste doch bitte erst mal das Script (OHNE ZUGANGSDATEN) und
die komplette Fehlermeldung.
Ebenfalls von Interesse:
welche PHP Version und welche ServerAPI (apache2handler oder fastCGI) werden eingesetzt? Diese Angaben findest Du mit dem Miniscript:
PHP-Code:
<?php
phpinfo();
?>
|

08.07.2014, 00:00:57
|
 |
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: String zu Array Versand Problem
Du hast eine Schreibfehler in Deinem Script
Zitat:
$reveiver = $_POST['phone'];
...
$replace = str_replace($delimiter, $delimiter[0], $receiver);
|
$reveiver <> $receiver
Mit eingeschalteter Fehleranzeige wäre dies schon eher aufgefallen!
Und schau Dir nochmal Dein str_replace an (insbesondere '"<".*.">"'), denn wie in Deinem Beispiel bleibt "<Mitarbeiter1>" erhalten - wird nur im Browser nicht angezeigt, da als vermeintlichen Tag erkannt, und daher kommt dann der NUMERIC-Fehler.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|

09.07.2014, 22:56:33
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: String zu Array Versand Problem
Zitat:
Zitat von meikel
Poste doch bitte erst mal das Script (OHNE ZUGANGSDATEN) und
die komplette Fehlermeldung.
Ebenfalls von Interesse:
welche PHP Version und welche ServerAPI (apache2handler oder fastCGI) werden eingesetzt? Diese Angaben findest Du mit dem Miniscript:
|
Oke, hier das Original-Script, an das ich über ein Formular mehrere Empfänger übergeben möchte:
PHP-Code:
<?php
include "WebSmsCom_Toolkit.inc";
# Modify these values to your needs
$username = 'your_username';
$pass = 'your_password';
$gateway_url = 'https://api.websms.com';
$recipientAddressList = array("4367612345678");
$utf8_message_text = "Testnachricht";
$maxSmsPerMessage = 1;
$test = false; // true: do not send sms for real, just test interface
try {
// 1.) -- create sms client (once) ------
$smsClient = new WebSmsCom_Client($username, $pass, $gateway_url);
$smsClient->setVerbose(true);
// 2.) -- create text message ----------------
$message = new WebSmsCom_TextMessage($recipientAddressList, $utf8_message_text);
// 3.) -- send message ------------------
$Response = $smsClient->send($message, $maxSmsPerMessage, $test);
// show success
print_r(array(
"Status : ".$Response->getStatusCode(),
"StatusMessage: ".$Response->getStatusMessage(),
"TransferId : ".$Response->getTransferId(),
));
// catch everything that's not a successfully sent message
} catch (WebSmsCom_AuthorizationFailedException $e) {
exit("AuthorizationFailedException caught: ".$e->getMessage()."\n");
} catch (WebSmsCom_ApiException $e) {
echo $e; // possibility to handle API status codes $e->getCode()
exit("ApiException Exception\n");
} catch (WebSmsCom_HttpConnectionException $e) {
exit("HttpConnectionException caught: ".$e->getMessage()."HTTP Status: ".$e->getCode()."\n");
} catch (WebSmsCom_UnknownResponseException $e) {
exit("UnknownResponseException caught: ".$e->getMessage()."\n");
} catch (Exception $e) {
exit("Exception caught: ".$e->getMessage()."\n");
}
?>
Und hier die vorher eingebettete Datei WebSmsCom_Toolkit.inc als Zip (da Meldung kam, es sei zu lang zum Posten).
In Zeile 615 geht's um die Fehlermeldung must be numeric.
Auch die komplette phpinfo hab ich gleich dortrein kopiert.
Kurz: PHP 5.2.17 ist auf Linux x86_64bit, mit der Server API: Apache 2.0 Handler
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:42:33 Uhr.
|