SMS - Service (Problem mit Überlangen SMS)

proloser

Erfahrenes Mitglied
Hallo,

ich programmiere für ein SMS - Service ein Script damit nach 160 Zeichen eine zweite SMS verschickt wird, den Text hab ich gesplitet.

$text[0] (bis 160 Zeichen)
$text[1] (die restlichen Zeichen)


Beim abschicken wird nur eine SMS verschickt, an was liegt das ?

PHP:
    if ($absenderkennung) {
      $getstr="http://domain.at/sms/smssend2.php?username=$user&password=$pw&absender=$abskennung&text=".urlencode($text[0])."&nummer=".$nummer;
      $getstr ="http://domain.at/sms/smssend2.php?username=$user&password=$pw&absender=$abskennung&text=".urlencode($text[1])."&nummer=".$nummer;
    } 


    if (strpos("$HTTP_REFERER",$mydomain)) {
      $f=@file($getstr);
      if($f[0]=="100") {
        echo'Die SMS wurde an '.$nummer.' gesendet.';
      } else {
        $fehlnr= $f[0];
        echo "Die SMS konnte leider nicht versendet werden. (Fehler: $fehlnr)";
      }
    } else {
      echo "ERROR";
    }
 
Ich habs jetzt so Probiert aber klappt immer noch nicht ganz, was ist an der for-schleife falsch ?

PHP:
   if (strlen($text)) {
      $text = explode("|&|",chunk_split($text,"160","|&|")); 
   }
    
    
foreach($text AS $text) {
  $getstr="http://domain.at/sms/smssend.php?username=$user&password=$pw&text=".urlencode($text)."&nummer=".$nummer;
}
 
PHP:
foreach($text as $eintext)

statt

PHP:
foreach($text AS $text) {

und mit $eintext weiterarbeiten.


Ich glaube, das du das Array $text mit der einzeln gefüllten Variable $text überschreibst (also nur noch EIN Eintrag im Array, kein Wunder das es nicht weiterläuft!)
 
Nun hab ichs so gemacht:

PHP:
if (strlen($text2)) {
  $text2 = explode("|&|",chunk_split($text2,"160","|&|")); 
}

foreach($text2 AS $text) {
  $getstr="http://domain.at/sms/smssend.php?username=$user&password=$pw&text=".urlencode($text)."&nummer=".$nummer;
}

Es kommt folgende Fehlermeldung:
Reloadsperre - nur alle 10 Minuten können identische SMS gesendet werden.

d.h. damit er mir nicht einmal $text2[0] und einmal $text2[1] versendet sodern wahrscheinlich 2 mal $text2[0].
 
proloser hat gesagt.:
Es kommt folgende Fehlermeldung:
Reloadsperre - nur alle 10 Minuten können identische SMS gesendet werden.

d.h. damit er mir nicht einmal $text2[0] und einmal $text2[1] versendet sodern wahrscheinlich 2 mal $text2[0].

Das kannst Du überprüfen indem Du Dir mal das Array ausgibst (mit print_r() ) - und das Versenden vorerst abklemmst um den Fehler zu finden, damit Du die Relad-Fehlermeldung nicht ständig bekommst :)
PHP:
if (strlen($text2)) {
  $text2 = explode("|&|",chunk_split($text2,"160","|&|"));
}

print_r($text2);
/*
foreach($text2 AS $text) {
  $getstr="http://domain.at/sms/smssend.php?username=$user&password=$pw&text=".urlencode($text)."&nummer=".$nummer;
} */
 
Zurück