SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.07.2014, 16:27:39
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
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
Mit Zitat antworten
  #2  
Alt 06.07.2014, 21:17:13
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
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.
Mit Zitat antworten
  #3  
Alt 07.07.2014, 18:52:33
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
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?
Mit Zitat antworten
  #4  
Alt 07.07.2014, 19:34:27
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #5  
Alt 07.07.2014, 20:05:57
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
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
Mit Zitat antworten
  #6  
Alt 07.07.2014, 21:03:43
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: String zu Array Versand Problem

Zitat:
Zitat von doschni Beitrag anzeigen
[..]
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!
Mit Zitat antworten
  #7  
Alt 07.07.2014, 22:00:46
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
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.
Mit Zitat antworten
  #8  
Alt 07.07.2014, 23:43:26
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: String zu Array Versand Problem

Zitat:
Zitat von doschni Beitrag anzeigen
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
();
?>
Mit Zitat antworten
  #9  
Alt 08.07.2014, 00:00:57
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #10  
Alt 09.07.2014, 22:56:33
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
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
Mit Zitat antworten
Antwort

Stichworte
array, multiple werte, post, string


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
vergleichen und bei Bedarf Array erweitern Tikiwiki PHP Grundlagen 4 12.11.2012 14:08:07
Arrayblind tlang78 PHP Grundlagen 2 30.06.2009 16:08:33
Array formatiert ausgeben Faang PHP Grundlagen 3 15.08.2008 02:47:43
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 19:19:53
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 14:36:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:04:05 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt