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
  #11  
Alt 10.07.2014, 10:28:00
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.571
vt1816 hat die Renommee-Anzeige deaktiviert
vt1816 eine Nachricht über Skype™ schicken
AW: String zu Array Versand Problem

@doschni - die anderen Fehler hast Du schon behoben?
__________________
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
  #12  
Alt 10.07.2014, 17:05:46
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 69
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: String zu Array Versand Problem

Zitat:
Zitat von doschni Beitrag anzeigen
Oke, hier das Original-Script, an das ich über ein Formular mehrere Empfänger übergeben möchte:

PHP-Code:
  $recipientAddressList = array("4367612345678"); 
Das sind nicht "mehrere Empfänger" sondern nur "ein Empfänger"
Zitat:
PHP-Code:
  $utf8_message_text    "Testnachricht"
UTF8 per SMS wegschicken zu wollen, halte ich für sehr für sehr gewagt. Der Zeichenvorrat UTF-8 ist wesentlich größer als das, was ein Handy anzeigen kann, aber das Script behauptet ja, es könne es.

Zitat:
In Zeile 615 geht's um die Fehlermeldung must be numeric.
Sakra! Kennt Dein Scheißbrowser kein Copy&Paste? Ich kann und will das Script nicht installieren, um mir den genauen Wortlaut der Fehlermeldung anzugucken.

Zitat:
Auch die komplette phpinfo hab ich gleich dortrein kopiert.
Nein, haste nicht.

Zitat:
Kurz: [B]PHP 5.2.17
Kurz: [06-Jan-2011] PHP 5.3.5 and 5.2.17 Released!
Du wohnst also zur Untermiete auf einem Server, auf dem der Provider mehr als drei Jahre kein Update gemacht hat? Mutig, darauf zu hoffen, daß kein Bösewicht versucht, mit einem der in PHP 5.2.17 enthaltenen Bugs, die erst paar Monate/Jahre später gefixt wurden, einzubrechen.

Zitat:
ist auf Linux x86_64bit,
Wenigstens was.

Hier mal etwas zum Nachdenken:
1. http://mod.php.developer.vc/test/60/ (Quelltext wird angezeigt)
2. ggf. auch mal das probieren: http://de1.php.net/debug_backtrace
3. daran denken, daß alle vom User geschickten Formularvariablen in $_POST, $_GET, $_REQUEST, $_COOKIE den Datentyp string haben.
In meinem Beispielscript ist eine Passage enthalten, in der mit foreach und intval aus den (Formular)Strings Integerzahlen werden.
Mit Zitat antworten
  #13  
Alt 10.07.2014, 20:42:19
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 33
Beiträge: 14
doschni befindet sich auf einem aufstrebenden Ast
AW: String zu Array Versand Problem

Danke euch für die Inputs. Werde am Wochende die Sachen ausprobieren/vertiefen. Als Anfänger, der ich bin, halt Schritt für Schritt.

@vt1816 Ja, den Fehler $reveiver <> $receiver habe ich wohl bereits unbewusst behoben gehabt. Ich habe auch mit einem etwas anderen Ansatz gestartet, indem ich in einem String nur Namen per $GET übergebe und dann auf dem Versandscript die Namen mit Zahlen ersetze.
PHP-Code:
$phrase $_GET['progs'];
$orig = array("Jack,""Jones,");
$new = array("41745554433","41746667788");

$newphrase str_replace($orig$new$phrase); 
Hat aber noch nicht gefruchtet.

Gruss doschni
Mit Zitat antworten
  #14  
Alt 11.07.2014, 02:55:43
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 69
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: String zu Array Versand Problem

Zitat:
Zitat von doschni Beitrag anzeigen
$new = array("41745554433","41746667788");
Hat aber noch nicht gefruchtet.
Kannste nicht endlich mal die dämlichen Gänsefüße killen, weil die aus Deiner wunderschönen Telefonnummer nen weniger schönen String machen, über den sich das SMS Script laufend aufregt?

Noch mal zur Lektüre:
Zitat:
Hier mal etwas zum Nachdenken:
1. http://mod.php.developer.vc/test/60/ (Quelltext wird angezeigt)
2. ggf. auch mal das probieren: http://de1.php.net/debug_backtrace
3. daran denken, daß alle vom User geschickten Formularvariablen in $_POST, $_GET, $_REQUEST, $_COOKIE den Datentyp string haben.
In meinem Beispielscript ist eine Passage enthalten, in der mit foreach und intval aus den (Formular)Strings Integerzahlen werden.
Mit Zitat antworten
  #15  
Alt 12.07.2014, 21:56:41
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 33
Beiträge: 14
doschni befindet sich auf einem aufstrebenden Ast
Gelöst AW: String zu Array Versand Problem

Zitat:
Zitat von meikel
Hier mal etwas zum Nachdenken:
1. http://mod.php.developer.vc/test/60/ (Quelltext wird angezeigt)
Dank Deinem Script konnte ich's endlich lösen! Vielen Dank. Die Funktion

PHP-Code:
var_dump($recipientAddressList); 
hat mich draufgebracht. Dadurch wurde sichtbar, dass ein multiples Array draus wurde. Dann fiel bei mir der Groschen.

Meine Lösung sieht nun folgendermassen aus:

Ins Formularfeld trage ich nur die Mobile-Nummern ein: 41745554433,41746667788

Code:
<!doctype html>
<html lang="de">
<head>
  <meta charset="utf-8">
  <title>Mehrere Empfänger</title>
</head>

<?php 

if (false === isset($_POST["numbers"])) {

?>

<body>
 <form name="mobile">
  <label for="tags">Empfänger: </label>
  <input type="text" name="numbers" id="tags" size="50">
  <input name="submit" type="submit" value="senden" formaction="" formmethod="post"/>
 </form>
 
</body>
</html>
 
<?php

}
else {

 //--------------------------------------------------------------------------------------
 // websms.com XML Gateway usage sample code
 //  1.) create client, 
 //  2.) create message, 
 //  3.) send message with client.
 //--------------------------------------------------------------------------------------
  include "WebSmsCom_Toolkit.inc"; // will need JSON.phps (Service_JSON) for PHP<5.2.0

  # Modify these values to your needs
  $username             = 'your_username';
  $pass                 = 'your_password';
  $gateway_url          = 'https://api.websms.com/';
  

  $numbers = $_POST['numbers'];
  
  var_dump($numbers);
  
  $ints = array_map('intval', explode(',', $numbers ));
  
  var_dump($ints);
  
  $recipientAddressList = $ints;
  
  var_dump($recipientAddressList);
  
  $utf8_message_text    = "Erfolgreich versandt!";
  
  $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);
    //$message = binary_sms_sample($recipientAddressList);

    // 3.) -- send message ------------------
    $Response = $smsClient->send($message, $maxSmsPerMessage, $test);

    // show success
    print_r(array(
           "Status          : ".$Response->getStatusCode(),
           "StatusMessage   : ".$Response->getStatusMessage(),
           "TransferId      : ".$Response->getTransferId(),
           "ClientMessageId : ".(($Response->getClientMessageId()) ? 
                                $Response->getClientMessageId() : '<NOT SET>'),
    ));

  // catch everything that's not a successfully sent message
  } catch (WebSmsCom_ParameterValidationException $e) {
    exit("ParameterValidationException caught: ".$e->getMessage()."\n");
    
  } 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");
  }

//-- end of main

//-----------------------------------------------
// binary_message_content
//-----------------------------------------------
function binary_sms_sample($recipientAddressList) {
  
  //| Working messageContent sample of PDU sms containing content "Zusammengefügt."
  //| sent as 2 SMS segments: ("Zusammen","gefügt."). 
  //| First 6 Bytes per segment are sample UDH. See http://en.wikipedia.org/wiki/Concatenated_SMS
  
  //$messageContentSegments = array(
  //    "BQAD/AIBWnVzYW1tZW4=", // 0x05,0x00,0x03,0xfc,0x02,0x01, 0x5a,0x75,0x73,0x61,0x6d,0x6d,0x65,0x6e
  //    "BQAD/AICZ2Vmw7xndC4="  // 0x05,0x00,0x03,0xfc,0x02,0x02, 0x67,0x65,0x66,0xc3,0xbc,0x67,0x74,0x2e
  //);

  // bytewise rebuilt sample. (identical to above):
  $messageContentSegments = array(
      base64_encode( pack("c*", 0x05,0x00,0x03,0xfc,0x02,0x01, 0x5a,0x75,0x73,0x61,0x6d,0x6d,0x65,0x6e) ),
      base64_encode( pack("c*", 0x05,0x00,0x03,0xfc,0x02,0x02, 0x67,0x65,0x66,0xc3,0xbc,0x67,0x74,0x2e) )
  );
  $userDataHeaderPresent  = true; # Binary Data includes UserDataHeader for e.G.: PDU sms (Concatenation)  

  $message = new WebSmsCom_BinaryMessage($recipientAddressList, $messageContentSegments, $userDataHeaderPresent);
  
  return $message;
}
  } //--end of else
?>
Mit Zitat antworten
  #16  
Alt 12.07.2014, 23:25:54
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 69
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: Gelöst AW: String zu Array Versand Problem

Zitat:
Zitat von doschni Beitrag anzeigen
... konnte ich's endlich lösen!
Die gute Nachricht: Gratulation
Die Schlechte:
in dem Textefeld können auch whitespaces (Leerzeichen, Zeilenumbruch, Tabulator uä.) und andere nicht-numerische Zeichen sein: + - ( )
Von der Teflonnummer +49-361-123456 wäre das Ergenis nach intval() 49. Du möchtest aber (wahrscheinlich) 49361123456
PHP-Code:
 # ...
function telefonnummer($n){
  
$n trim($n); # entfernt Whitespaces am Anfang und am Ende
  
$n str_replace(array('+','-',' ''('')'), ''$n); # schmückendes Beiwerk killen
  
$n intval($n); # wir äh... Du willst ja ne Zahl und keine Ziffern-Zeichenkette
  
return $n;
}

$ints array_map('telefonnummer'explode(','$numbers ));

# ... 
Natürlich kannste die einzelnen Schritte in der Funktion auch zusammenfassen. Due obige Darstellung dient nur zu Erklärung der einzelnen Schritte.
Mit Zitat antworten
  #17  
Alt 13.07.2014, 01:17:03
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 33
Beiträge: 14
doschni befindet sich auf einem aufstrebenden Ast
AW: String zu Array Versand Problem

Zitat:
Die schlechte Nachricht: in dem Textefeld können auch whitespaces (Leerzeichen, Zeilenumbruch, Tabulator uä.) und andere nicht-numerische Zeichen sein: + - ( )
Wie's sich jetzt grad verhält, finde ich es sogar sehr gut so. Das ganze befindet sich ja in einem Login-Container. Die paar Nummern lasse ich über ein Javascript einfügen, wobei ich noch die Namen an die Nummer anfüge zur besseren Übersicht. Durch den Namen lässt sich auch die Suche sehr schnell eingrenzen und der gewünschte Kollege/die gewünschten Kollegen auswählen.

Beispielbild jQuery UI Autocomplete Multiple values

Code:
...
<head>
  <meta charset="utf-8">
  <title>Mehrere Empfänger</title>
  
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    var availableTags = [
          "41745554433 Jack",
	  "41746667788 Jones",
	  "41745554433,41746667788 Alle Kollegen"
	  ];
    function split( val ) {
      return val.split( /,\s*/ );
    }
    function extractLast( term ) {
      return split( term ).pop();
    }
 
    $( "#tags" )
      // don't navigate away from the field on tab when selecting an item
      .bind( "keydown", function( event ) {
        if ( event.keyCode === $.ui.keyCode.TAB &&
            $( this ).autocomplete( "instance" ).menu.active ) {
          event.preventDefault();
        }
      })
      .autocomplete({
        minLength: 0,
        source: function( request, response ) {
          // delegate back to autocomplete, but extract the last term
          response( $.ui.autocomplete.filter(
            availableTags, extractLast( request.term ) ) );
        },
        focus: function() {
          // prevent value inserted on focus
          return false;
        },
        select: function( event, ui ) {
          var terms = split( this.value );
          // remove the current input
          terms.pop();
          // add the selected item
          terms.push( ui.item.value );
          // add placeholder to get the comma-and-space at the end
          terms.push( "" );
          this.value = terms.join( "," );
          return false;
        }
      });
  });
  </script>
  
</head>
...

...
  $numbers = $_POST['numbers'];
  
  $numbers = substr($numbers, 0, -1); // nötig, um das letzte Komma aus dem Formularfeld zu löschen
  
  var_dump($numbers);
...
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 14:04:30 Uhr.


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


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