[PHP] Zeitversetzt senden

Dieses Thema im Forum "Webentwicklung" wurde erstellt von freakZ, 9. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 9. Juni 2010
    Zeitversetzt senden

    hi,

    ich hab ne kurze frage ich bastle grade an einem sms versand formular - man soll via dropdown tag monat und uhrzeit wählen können so weit so gut.

    Nun möchte ich eine option bereit stellen (ab da häng ich) -> sofort senden! (soll sms sofort rausschicken) , die soll dann mit der meldung erfolgreich gesendet angezeigt werden, wurde jedoch zeitversetzt ausgewählt dann soll die meldung sms wird versandt.. angezeigt werden.

    steh grad voll am schlauch ;( bin ja auch schon seit 26 h auf..

    thanks
     
  2. 9. Juni 2010
    AW: Zeitversetzt senden

    Also du hast zugang zu einem SMS-Gateway und es geht wirklich nur um das Programiertechnische? ^^

    Naja ich würde einfach einen Cronjob anlegen der in einem eingestellten Intervall die Datenbank anschaut und die SMS Versendet die abgelaufen sind.

    Falls du selbst keine Cronjobs anlegen kannst, da gibt es auch ein paar dienste für
    Cronjob.de - Kostenlose Cronjobs und Crontab
    Hab mit solchen diensten aber keine Erfahrung.
     
  3. 9. Juni 2010
    AW: Zeitversetzt senden

    hi,

    das ist mir durchaus klar - arbeite auch mit nem cron das wär nicht das thema.

    Ich häng am formular selbst - dort ein dropdown mit z.b 09 dann eins mit 06 und dann mit 2010 und 2011 und daneben 04 und 17 zu erzeugen. Wird dieses ausgewählt und die zeit verstellt gib meldung -> wird später gesendet aus.

    Wir aber nichts verändert und sofort ausgewählt wird das ganze sofort gesendet (sieh es als mailformular an) den cronjob kannst mal ignorieren geht nur um diese zahlenwerte die müssen iwi in die db.

    Meld dich sofern lust per pm

    Die dropdown daten sind ein werte die auch +7 tage in die zukunft reichen (zeitversetzter sms versand)
     
  4. 9. Juni 2010
    AW: Zeitversetzt senden

    du weißt wie man ein dropdown erstellt? ich hoff mal ja ...

    du musst die auswahl einfach in deinem backend auswerten.

    # keine auswahl oder invalid -> sofort senden
    # auswahl vorhanden -> timestamp erzeugen und in die db damit

    dann mit cron immer wieder ein script ausführen, welches die daten ausliest und sendet.

    wo genau hast du nen hänger?
     
  5. 9. Juni 2010
    AW: Zeitversetzt senden

    das mit dem drop down ist easy

    Das problem jedoch ist genau das datum und die ganzen daten in einzelne dropdowns zu zerlegen!

    Beim formular sollte die optin bestehen:
    - sofort senden
    - zeitpunkt auswählen (mit den dropdowns) auswählbar - wird die option gewählt wird eine andere nachricht ausgegeben

    Um den cron gehts mir nicht weil das direkt in die db geht , es geht mir nur darum die dropdowns sinngemäss zu erstellen als dann eben auch anderwertige meldungen auszugeben wenn diese option gewählt wird!

    Es soll kein timestamp erzeugt werden - sondern normales datums format -> der sms cron will es so
     
  6. 9. Juni 2010
    AW: Zeitversetzt senden

    schau dir mal die datums-funktionen an. nen timestamp kannst du in jedes beliebige format umwandeln.
     
  7. 9. Juni 2010
    AW: Zeitversetzt senden

    hi,

    das problem liegt ja nicht am timestamp *argl* - es liegt darin das ich über das "deutsche datums format" den tag die zeit in einzelnen drop down boxen brauch.

    Und sinn der sache ist -> wenn man sofort senden auswählt -> das das sofort mit dem aktuellen datum in die db kommt.
    Wählt man jedoch in den dropdown boxen aus - so wird diese zeit genommen und in die mysql gschrieben. Und eine andere meldung ausgegeben -> sms wird zum zeitpunkt gesendet!

    Nochmal kurz: Wär wie ein mailformular das man sofort senden kann oder zu einer beliebigen datum uhrzeit -> daran hakts ;(( -> nicht um das senden via cronjob sondern um das dropdown und die formular verarbeitung!
     
  8. 9. Juni 2010
    AW: Zeitversetzt senden

    das sind doch grundlagen?

    PHP:
    <? php
    //aktuelles datum
    $date_split  explode ( '|' date ( 'j|n|Y' ));

    //tag
    $tag  $date_split [ 0 ];
    if(!empty(
    $_POST [ 'datum_tag' ]))
        
    $tag  intval ( $_POST [ 'datum_tag' ]) ?:  $tag ;

    //monat
    $monat  $date_split [ 1 ];
    if(!empty(
    $_POST [ 'datum_monat' ]))
        
    $monat  intval ( $_POST [ 'datum_monat' ]) ?:  $monat ;

    //jahr
    $jahr  $date_split [ 2 ];
    if(!empty(
    $_POST [ 'datum_jahr' ]))
        
    $jahr  intval ( $_POST [ 'datum_jahr' ]) ?:  $jahr ;

    $time_split  explode ( '|' date ( 'H|i|s' ));
    $send  mktime ( $time_split [ 0 ],  $time_split [ 1 ],  $time_split [ 2 ],  $tag $monat $jahr );

    if(
    $send  ==  time ()) {
        
    //sofort versenden
    } else {
        
    //versenden um: $send
    }
    das hab ich jetzt mal ohne groß nachzudenken runtergerattert
     
  9. 9. Juni 2010
    AW: Zeitversetzt senden

    so weit war ich auch - nur das ganze muss in ein drop down - und das ganze dann in ein formular gepackt werden.

    Und es geht nicht nur darum den heutigen tag anzuzeigen sondern die nächsten 7 und auch alle stunden und minuten auswählbar zu machen.

    Kennst sicher von sms aus dem web senden wo man das einstellen kann - genauso will ich das auch reproduzieren!
     
  10. 9. Juni 2010
    AW: Zeitversetzt senden

    ÄÄäähm ?
    Wie wäre es einfach, wenn du eine Schleife machst, dass dir ein solches DropDown-Menü erstellt..
    Bzw. warum schreibst du es nicht einfach in HTML????
    Du weißt schließlich, dass eine Stunde 60 Minunten, ein Tag 24 Stunden und ein Monat höchstens 31 Tage hat ?
    Dann kannste doch einfach 4 DropDown-Menüs in HTML machen (Stunde, Minute, Tag, Monat) und dann die Werte zu übernehmen..

    Als Beispiel:
    HTML:
    <select name="monat">
     <option>01</option>
     <option>02</option>
     <option>03</option>
     <option>04</option>
     <option>05</option>
     <option>06</option>
     <option>07</option>
     <!-- und soweiter -->
    </select>
    
    <!-- und fuer Tag, Jahr etc auch noch-->
    
    Und dann nimmst du die Funktion mktime() und übergibst der Funktion dann die Werte aus dem Formular...
    Dann haste nen UNIX Timestamp für den Zeitpunkt an dem gesendet werden soll, mit dem du nach belieben arbeiten kannst.

    Und die Überprüfung, ob sofort oder später gesendet werden soll, kannst ja zB über ne Checkbox machen..
    Und dann schreibste in JS nen Script, was die DropDown-Menü's nur einblendet, wenn die Checkbox für das zeitgesteuerte Senden aktiviert wurde..

    Und fertig ist.. Oder ich versteh dein Problem nicht...

    MfG
     
  11. 9. Juni 2010
    AW: Zeitversetzt senden

    Hat sich erübrigt

    Und wenn man gelesen hätte wüsste man - das ich keinen unix timestamp haben darf - weil ich in der datenbank das deutsche format benötige.
     
  12. 10. Juni 2010
    AW: Zeitversetzt senden

    ich hab doch geschrieben das du mit php diesen timestamp in jedes beliebige format umwandeln kannst ...

    aber gut das sich das erledigt hat.
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.