[PHP] SMS Gateway - versand mit Formular

Dieses Thema im Forum "Webentwicklung" wurde erstellt von semtex, 15. Januar 2012 .

  1. 15. Januar 2012
    SMS Gateway - versand mit Formular

    Hallo zusammen,

    Seit längerem betreibe ich für unseren Ortsansässigen verein eine Art Infoservice per Websms.

    Bis heute war ich bei SMS77 unter Vertrag mit einen ebenfalls funktionierenden Tool zum Versenden von SMS an die hinterlegten Gruppen.


    Nun habe ich den Anbieter gewechselt (smstrade) und es stellt sich natürlich das Problem dar dass mein altes Script nicht mehr funktioniert ;(


    Mein altes Script im Überblick:

    Spoiler
    PHP:
    <html>
    <head>
    <title>Script</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
    <!--
    body,td,th {
        font-size: 14px;
        font-family: Verdana, Geneva, sans-serif;
    }
    -->
    </style></head>

    <body>

    <table width="500" border="1" align="left" cellpadding="5" bordercolor="#CCCCCC">
    <tr>
      <td width="520" bgcolor="#FAFAFA">

    <p><strong>Administratoren</strong></p>
    <p>SMS-Versand Veranstaltungen<br>
      (160 Zeichen)
      
      <?php
    if(!isset( $_POST [ 'action' ])){
    ?>
      
      <br>
    </p>
    <form method="post" action="<?=$_SERVER [ 'PHP_SELF' ] ?>">
      <table width="100%" border="0">
      <tr>
        <td width="100">An:</td>
        <td><select name="to">
          <option>123</option>
          <option>456</option>
        </select></td>
      </tr>
      <tr>
        <td>
          Type:
          </td>
        <td>
          <select name="type">
            <option>quality</option>
            </select>
          <em></em></td>
      </tr>
      <tr>
        <td>Nachricht:</td>
        <td><textarea name="text" cols="21" rows="5" wrap="virtual"></textarea></td>
      </tr>
      <tr>
          <td width="100"> 
        </td>
        <td><br>      <input type="submit" value="SMS abschicken!" />
        
        </td>
      </tr>
    </table>
      <br />
    <input type="hidden" name="action" value="send" />
    </form>

    <?php
        
    }
        else {
        
    $u  "user" // Bitte tragen Sie hier Ihren Benutzernamen ein
        
    $p  "asdf" // Bitte tragen Sie hier Ihre Passwort ein
        
    $url  'http://sms77.de/gateway/' .
        
    '?u='  urlencode ( $u ) .
        
    '&p='  urlencode ( $p ) .
        
    '&to='  urlencode ( $_POST [ 'to' ]) .
        
    '&text='  urlencode ( $_POST [ 'text' ]) .
        
    '&type='  urlencode ( $_POST [ 'type' ]);
        
    $ret  = @ file ( $url );  // Hier erfolgt der Aufruf des HTTP-APIs mittels
        // http-Request
        // Das @ ist erforderlich, damit die URL bei Fehlern nicht
        // ausgegeben wird
        
    if ( $ret [ 0 ] ==  "100" ) echo  "<p>&nbsp;</p>SMS erfolgreich verschickt!" ;
        else echo 
    "<p>&nbsp;</p>Fehler beim SMS-Versand! Fehlercode: " . $ret [ 0 ];  // Fehlercodeausgabe
        
    }
    ?>

    </td></tr>
    </table>

    </body>
    </html>



    SMS Trade bietet zwar eine Anleitung zur Umsetzung an, allerdings versteh' ich ned wirklich wie ich mein altes Formular dementsprechend anpassen kann.

    Spoiler
    http://www.smstrade.de/pdf/SMS-Gateway_HTTP_API_v2_de.pdf


    Ich hoffe das Problem verständlich dargestellt wurde und bitte um Hilfe.


    Viele Grüße

    Hary
     
  2. 15. Januar 2012
    AW: SMS Gateway - versand mit Formular

    sagt doch genau wie du eine sms verschickst!

    baust du dir am besten die url mit den variablen auf und schickst diese dann per request los.
     
  3. 15. Januar 2012
    AW: SMS Gateway - versand mit Formular

    Ok, hab wohl nicht ganz so weit ausgeholt.

    Das ganze System läuft auf meiner Joomla Datenbank als Wrapper.

    Die Funktion wie bis jetzt soll beibehalten werden (Login - Gruppe wählen - text in die textbox - verschicken)


    Das ganze soll auch von bestimmten Personen die zugriff auf das Board haben verschickt werden können.
     
  4. 15. Januar 2012
    AW: SMS Gateway - versand mit Formular

    Sollte doch ganz einfach sein.

    Die Parameter Änderungen:
    • u = key
    • p = Entfernen
    • text = message
    • type = route
     
  5. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    Hab die Parameter angepasst. Allerdings bekomm ich einen fehler 40. (Zufall? :shock: )

    Hier der Text


    So müsste laut Anbieter der Text aussehen wenn er von dem Script ausgespuckt wird:

    PHP:
    http : //gateway.smstrade.de/?key=KEY&to=00491701234567&message=Hello+World&route=gold&from=SMSTRADE
     
  6. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    PHP:
    <? php 
        

        else { 
        
    $key  "KEYKEYKEYKEYKEY" // Bitte tragen Sie den KEY ein
        
    $url  'http://gateway.smstrade.de/'
        
    '?key='  urlencode ( $key ) . 
        
    '&to='  urlencode ( $_POST [ 'to' ]) . 
        
    '&from=' urlencode ( 'SMS TRADE 012345678987654321' ) .
        
    '&message='  urlencode ( $_POST [ 'text' ]) . 
        
    '&route='  urlencode ( $_POST [ 'type' ]);  // basic, gold, direct
        
    $ret  = @ file ( $url );  // Hier erfolgt der Aufruf des HTTP-APIs mittels 
        // http-Request 
        // Das @ ist erforderlich, damit die URL bei Fehlern nicht 
        // ausgegeben wird 
        
    if ( $ret [ 0 ] ==  "100" ) echo  "<p>&nbsp;</p>SMS erfolgreich verschickt!"
        else echo 
    "<p>&nbsp;</p>Fehler beim SMS-Versand! Fehlercode: " . $ret [ 0 ];  // Fehlercodeausgabe 
        

    ?>
     
  7. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    Perfekt! Danke!

    Auf meinem altem Server (php4) läuft das Script einwandfrei!

    Gibt’s es ebenfalls eine Möglichkeit dies auf einen PHP5 Server zu integrieren?
     
  8. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    Das sollte problemlos auf PHP5 laufen, sofern wie auf deinem PHP4 allow_url_fopen eingeschaltet ist.
     
  9. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    läuft auf PHP5 leider nicht.

    Das Script lät zwar ordentlich, allerdings nach dem verschicken erscheint

    ohne Code

    Google meinte ich soll eine .htaccess mit dem wert

    PHP:
    php_value allow_url_fopen 1
    Anlegen.

    Das gibt einen

    Im Backend von 1und1 habe ich keine Funktion zur aktivierung von dem fopen gefunden.
     
  10. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    hi,

    ich verwende folgenden code.

    PHP:
    // +--------------------------------------------+
    // | Copyright (c) 2007-2009 by SMSTRADE.DE     |
    // +--------------------------------------------+

    $url  "http://gateway.smstrade.de" // URL des Gateways
    $request  "" // Request Variable initialisieren
    $param [ "key" ] =  "KEYKEYKEYKEYKEY" // Gateway Key
    $param [ "to" ] =  $_POST [ 'to' ];  // Empfänger der SMS
    $param [ "message" ] =  $_POST [ 'text' ];  // Inhalt der Nachricht
    $param [ "route" ] =  $_POST [ 'type' ]; // Nutzung der Goldroute
    $param [ "from" ] =  $_POST [ 'fon' ]; // Absender der SMS
    //$param["debug"] = "1";// SMS wird nicht versendet - Testmodus

    foreach( $param  as  $key => $val // Alle Parameter durchlaufen {
        
    $request .=  $key . "=" . urlencode ( $val );  // Werte müssen url-encoded sein
        
    $request .=  "&" // Trennung der Parameter mit &
    }

    // SMS kann jetzt versendet werden
    $ch  curl_init ();  //initialize curl handle
    curl_setopt ( $ch CURLOPT_URL $url );  //set the url
    curl_setopt ( $ch CURLOPT_RETURNTRANSFER , 1 );  //return as a variable
    curl_setopt ( $ch CURLOPT_POST 1 );  //set POST method
    curl_setopt ( $ch CURLOPT_POSTFIELDS $request );  //set the POST variables
    $response  curl_exec ( $ch );  //run the whole process and return the response
    curl_close ( $ch );  //close the curl handle

    $response_code  intval ( $response );
    if (
    $response_code  ==  100 ){
        echo 
    'alles ok' ;
    }else {
        echo 
    'fehler: ' . $response_code ;
    }
     
  11. 16. Januar 2012
    AW: SMS Gateway - versand mit Formular

    Wird die 1und1 warscheinlich auch nicht zur Verfügung stellen. Das sind die Probleme bei großen Massenhostern. Interessieren sich nen Dreck für Kundenwünsche

    Da dies feste php.ini Settings sind, werden die auch nicht per .htaccess zu überschreiben sein. Mehr als "Frag beim Support nach" kann man kurz und knapp nicht sagen.
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.