url aufrufen in schleife ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • url aufrufen in schleife ?

    Guten Morgen.

    zuerst einmal..hallihallo... ich bin die neue aus berlin...

    ich hoffe, dass mir jemand von euch helfen kann, bei einem problem, was ich auf meiner seite habe.

    ich verwende schon einige zeit ein wenig php, aber noch nicht so lange daher weiß ich nich so genau, wie ich das folgende lösen kann:

    ich hab auf meienr webseite ein textfield, das platz für 160 zeichen hat, damit ich von dort aus sms versenden kann, nun möchte ich aber manchmal eine sms an mehrer empfänger versenden, was ich bisher nur manuell machen kann, aber das kostet viel zeit, wenn ich all meine freunde und bekannten erreichen möchte!

    zum wichtigen: um eine sms zu versenden, muss ich eine url aufrufen, die ein sms-gateway anspricht... ungefähr so:
    example.com/smsgateway.php?nr=49123456&message=heute+feiern+wir

    ich kenne bisher nur dieses header() funktion, die ich aber nicht in eienr schleife aufrufen kann. Wie kann man sowas sonst bewerkstelligen.
    Eventuell müßte ich auch einen statuscode 200 empfangen, damit ich weiß, dass die url komplett angenommen wurde...

    kann mir da jemand sagen, was ich mir dafür angucken muss, bzw wir man vorgeht um so etwas zu realisieren ?

    viele grüße

  • #2
    Hallo mrs_rookie,
    schau dir das mal an PHP: cURL - Manual.
    In Sachen externe URL's aufrufen bin ich zwar nicht der Meister, aber ich glaube es geht auch mit fopen http://php.net/fopen.

    Viel Erfolg

    Björn
    Zuletzt geändert von mkb_webprint; 22.07.2009, 10:14.

    Kommentar


    • #3
      wie ich grad feststelle, seh ich über die provider phpinfo(), dass ich in sachen curl das installiert habe :

      [COLOR=Blue]libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.8 libssh2/0.18 [/COLOR]

      reicht das aus, um mich mit curl zu beschäftigen und damit eventuell mein vorhaben umzusetzen ?

      Kommentar


      • #4
        Sollte eigentlich funktionieren.
        Schreib dir doch einfach ein kleines Testscript bzw. lad dir ein cURL-Beispielskript hoch, führ es aus und dann siehst du ob es passt

        Kommentar


        • #5
          Du solltest dich erstmal mit den Schleifen for, while und foreach befassen. Die SMSen kannst du sicherlich auch über den fopen-http-wrapper versenden, da brauchts meist kein cURL zu.
          Wir werden alle sterben

          Kommentar


          • #6
            Guten Morgen Combie !!

            also mit den schleifen hab ich mich beschäftigt...
            ich nutze eine foreach um eine sms zu generieren, weil ich den text urlencoden muss und da bietet sich ein
            PHP-Code:
            foreach($param as $key=>$wert)

              
            $request.= $key."=".urlencode($wert); 
              
            $request.= "&";

            an.

            sobald ich weiß, wie ich das aufrufen der adresse realisiere, leg ich das alles in eine schleife, die je nach anzahl der rufnummern ausgeführt wird...

            aber an dieser Stelle bin ich noch nicht angelangt !

            Kommentar


            • #7
              Ich habe da mal einen Fetzen in meiner Grabbelkiste:
              (nur ein paar Dinge auf dein Problem angepasst)
              PHP-Code:
              <?php
              error_reporting
              (-1);
              ini_set('display_errors'TRUE); 


              function 
              sendsms($gateway,$sms,$recivername,$recivernr)
              {
                  
              $sms['nr'] = $recivernr;
                  
              $sms['message'] = sprintf($sms['message'],$recivername);
                  return  
              file_get_contents($gateway.http_build_query($sms));
              }



              $smsgateway 'http://example.com/sendMessage.php?';

              $sms = array();
              $sms['message'] = " Hi %s heute feiern wir! \n Gruss Maxe";
              $sms['sender'] = 'Max Musterman';
              $sms['authentification'] = 'sdgrtrdxfhbr6342q35tgfw345';

              $reciver = array();
              $reciver['Karl'] = '49123456';
              $reciver['Anna'] = '491234567';

              foreach(
              $reciver as $key => $value)
                  echo 
              sendsms($smsgateway,$sms,$key,$value),'<hr>';
              ?>
              Versuche zu verstehen, was es tut, und du kannst dein Problem lösen.
              Wir werden alle sterben

              Kommentar


              • #8
                Dankeschön,

                hat mir sehr geholfen, konnte nun "fast" alles wie gewünsht umsetzen !

                Ein kleines Problem hab ich aber noch, ich muss die übermittelten Texte urlencode übertragen, soweit so gut..

                Aber aus mir grad nicht sichtbaren Gründen hab ich problem mit Umlauten!
                Wenn ich das verwende:
                PHP-Code:
                $sms['message'] = "Ein Test über das Gateway"
                erhalte ich als Klartext: [COLOR=RoyalBlue][COLOR=DarkRed]Ein+Test+[/COLOR][/COLOR][COLOR=DarkRed]%C3%A4[/COLOR][COLOR=RoyalBlue][COLOR=Blue][COLOR=DarkRed]+das+Gateway[/COLOR]
                [COLOR=Black]müßte das aber nicht:[/COLOR] [/COLOR][/COLOR][COLOR=RoyalBlue][COLOR=Blue]Ein+Test+[/COLOR][/COLOR][COLOR=Blue]%FCber[/COLOR][COLOR=RoyalBlue]+das+Gateway sein ?

                [COLOR=Black]Und daher erhalte ich in der Test-SMS das ganze dann so:[/COLOR]

                Ein Test [[ber das Gateway

                [COLOR=Black]Wo mach ich was falsch ?[/COLOR]
                [/COLOR]
                Hier mein Script:

                PHP-Code:
                // Empfängerliste
                $receiver       = array();
                $receiver['0'] = '49172xxxxx';

                // Schleife um alle Empfänger anzusprechen
                foreach($receiver as $mobileArray => $mobileNo)
                {
                    
                // 
                    
                $sms = array();
                    
                $request        "";                                            
                    
                $url "http://examplegateway.de/?";                
                    
                $sms['key']    = '*****';                                    
                    
                $sms['message'] = "Ein Test über das Gateway"
                    
                $sms['to']      = $mobileNo;  // Empfänger Nr. der SMS
                    
                $sms['from']  = 'Mein Name';                            
                    
                    foreach(
                $sms as $key=>$val// Alle Parameter durchlaufen
                    

                      
                $request.= $key."=".urlencode($val); // url-encoded notwendig
                      
                $request.= "&"
                    }
                    
                    
                // CURL METHODE
                    
                $ch curl_init();    
                    
                curl_setopt($chCURLOPT_URL$url);          
                    
                curl_setopt($chCURLOPT_RETURNTRANSFER,1);   
                    
                curl_setopt($chCURLOPT_POST1);             
                    
                curl_setopt($chCURLOPT_POSTFIELDS$request);
                    
                $response curl_exec($ch);              
                    
                curl_close($ch);                              
                    
                $response_code intval($response); 

                Kommentar


                • #9
                  Zitat von mrs_rookie Beitrag anzeigen
                  erhalte ich als Klartext: [COLOR=royalblue][COLOR=darkred]Ein+Test+[/COLOR][/COLOR][COLOR=darkred]%C3%A4[/COLOR][COLOR=royalblue][COLOR=blue][COLOR=darkred]+das+Gateway[/COLOR]
                  [COLOR=black]müßte das aber nicht:[/COLOR] [/COLOR][/COLOR][COLOR=royalblue][COLOR=blue]Ein+Test+[/COLOR][/COLOR][COLOR=blue]%FCber[/COLOR][COLOR=royalblue]+das+Gateway sein ?[/COLOR]

                  [COLOR=royalblue][COLOR=black]Und daher erhalte ich in der Test-SMS das ganze dann so:[/COLOR]

                  Ein Test [[ber das Gateway

                  [/COLOR]
                  Bei mir läuft es mit folgendem Code:
                  PHP-Code:
                  $text "Ein Test über das Gateway";
                  $code urlencode(utf8_decode($text)); 
                  Wenn du das jetzt mit urldecode ausgibst sollte es keine Probleme geben.

                  Gruß

                  Björn

                  Kommentar


                  • #10
                    Sofort den richtigen Zeichensatz verwenden, oder passend konvertieren. In Der Doku des Dienstes sollte erklärt werden, welche Codierung erwartet wird.
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      jupp, vielen Dank !

                      ich hatte gar kein Zeichensatz angegeben, wie blöd von mir !
                      Allerdings hab ich grad mal nachgeschaut, dieser Hinweis fehlt wirklich in deren Tutorial, dass sonst wirklich gut und kurz ist !

                      Ich hab jetzt alles umlaute und Sonzeichen getestet, mit iso 8895-15
                      bis auf das [COLOR=Red]°[/COLOR] klappt alles, ich werds mal mit utf-8 versuchen

                      Kommentar


                      • #12
                        so, vielen Dank erst mal, wie ich nach recherche über mögliche Zeichen in einer sms unter [COLOR=black][FONT=&quot]GSM 03.38 Default Character Set
                        feststellen mußte, ist das mit dem Gradzeichen einer dieser ungeliebten Sonderfälle.

                        Der GSM-Zeichensatz enthält das Gradzeichen grundsätzlich nicht.
                        Alternativ wäre da nur noch eine Unicode SMS zu nutzen, die eine SMS dann aber automatisch auf 70 Zeichen beschränkt. Und einige ältere Handymodelle unterstützen diese SMS-Variante nicht.

                        Vielleicht helfen diese Infos künftig auch anderen, die einen sms-versand realisieren wollen.
                        [/FONT][/COLOR]

                        Kommentar

                        Lädt...
                        X