WinFuture-Forum.de: [erstmal gelöst] PHP - Ereignis ohne Klick auslösen? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[erstmal gelöst] PHP - Ereignis ohne Klick auslösen? Simulation klappte, mal den Praxistest abwarten.

#1 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.116
  • Beigetreten: 11. September 10
  • Reputation: 32

geschrieben 20. April 2012 - 13:02

Moin,

ich rätsel gerade an einer Möglichkeit, ein Ereignis zu einer Bestimmten Uhrzeit auszulösen.

Es geht um die E-Mail-Benachrichtigung und einen Autologout in einem Forum. Die Problemstellung ist die, dass ich eine E-Mailbenachrichtung über neue Forenbeiträge rausschicken will. Ich könnte das natürlich gleich mit dem Schreiben von Beiträgen verknüpfen aber es soll nicht zu jedem neuen Beitrag eine Mail rausgehen, sondern nur einmal am Tag, eine Mail, falls es in den letzten 24h mindestens eine Veränderung im Forum gab. Cronjob funktioniert leider auf dem Server nicht, sonst hätte ich mir diese Möglichkeit mal genauer angeguckt.

Dieser Beitrag wurde von Holger_N bearbeitet: 21. April 2012 - 00:29

Eingefügtes Bild
0

Anzeige

#2 Mitglied ist offline   Dommix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 65
  • Beigetreten: 06. August 09
  • Reputation: 0

geschrieben 20. April 2012 - 13:35

Es gibt (auch kostenlose) Dienste, bei denen du Cronjobs erstellen kannst. Von deren Server wird die Datei auf deinem Server dann zur entsprechenden Zeit aufgerufen.
http://www.cronjob.de dürfte so ein Dienst sein.
0

#3 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 203
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 20. April 2012 - 15:40

Schreib das benötigte Skript und sorg dafür, dass es nicht jeder aufrufen kann, dann kannst du einen Cronjob auf einem deiner Systeme dafür nutzen, es ausführen zu lassen.

Abgesehen davon, was ist das denn für ein komischer Anbieter, der dir PHP - und wahrscheinlich eine DB - gibt, aber keine Cronjobs?
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.796
  • Beigetreten: 13. Dezember 04
  • Reputation: 36

geschrieben 20. April 2012 - 16:44

Cronjobs kannst du auch schön darüber lösen, indem du die Aufrufe in eine Datei packst, die von jedem regelmäßig aufgerufen wird: index.php
Hier kannst du nun folgenden einfachen Algorithmus einbauen:

1. Hol dir die Zeit, in der das Ereignis das letzte Mal aufgerufen wurde.
2. Ist die Zeit kleiner als Delta (in deinem Fall 24h), verlasse die Prozedur. Ansonsten zu Schritt 3 (Die php Funktionen time und date könnten hierfür sinnvoll sein)
3. Rufe das Ereignis auf (in deinem Fall Mailversand) und speichere anschließend die Zeit des Aufrufes.

Das schöne ist, dass das auch keinen großen Overhead verursacht, da die Schritte 1 und 2 nichts wildes machen.
witi@jabber.ccc.de 0xAAE321A2

50226 - Witis Blog
0

#5 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.116
  • Beigetreten: 11. September 10
  • Reputation: 32

geschrieben 20. April 2012 - 20:03

Beitrag anzeigenZitat (DerTommy22: 20. April 2012 - 15:40)

Schreib das benötigte Skript und sorg dafür, dass es nicht jeder aufrufen kann, dann kannst du einen Cronjob auf einem deiner Systeme dafür nutzen, es ausführen zu lassen.

Abgesehen davon, was ist das denn für ein komischer Anbieter, der dir PHP - und wahrscheinlich eine DB - gibt, aber keine Cronjobs?


Das ist Loomes. Ich bin an und für sich aber damit zufrieden. Bei dem Paket gab es bis vor einer Weile aber keine Datenbank, die kam jetzt erst dazu. Cronjobs gibts bei dem Anbieter grundsätzlich auch, aber erst bei dem nächstgrößeren Paket glaub ich.

Beitrag anzeigenZitat (Witi: 20. April 2012 - 16:44)

Cronjobs kannst du auch schön darüber lösen, indem du die Aufrufe in eine Datei packst, die von jedem regelmäßig aufgerufen wird: index.php
Hier kannst du nun folgenden einfachen Algorithmus einbauen:

1. Hol dir die Zeit, in der das Ereignis das letzte Mal aufgerufen wurde.
2. Ist die Zeit kleiner als Delta (in deinem Fall 24h), verlasse die Prozedur. Ansonsten zu Schritt 3 (Die php Funktionen time und date könnten hierfür sinnvoll sein)
3. Rufe das Ereignis auf (in deinem Fall Mailversand) und speichere anschließend die Zeit des Aufrufes.

Das schöne ist, dass das auch keinen großen Overhead verursacht, da die Schritte 1 und 2 nichts wildes machen.


Ja technisch hab ich ja kein Problem mit der Umsetzung.Ich frage die Ausloggzeit des Users ab und vergleiche das mit dem aktuellsten Beitrag und frage ab, ob die letzte Mail am Vortag war. War die am Vortag und gibts einen Beitrag nach dem Ausloggen, geht die Mail raus und der aktuelle Tag wird als "Mailtag" gespeichert. ich muß nur gucken, wo ich das platziere. Das Problem ist, dass es kein öffentliches Forum ist, sondern eher eine "Konferenzschaltung" weniger Beteiligter, die mit einer Art Forenskript (selbstgebastelt) realisiert wird. Es könnte aber passieren...

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

wenn ich gerade drüber nachdenke, dann kann ich das ja doch so machen, dass das Schreiben eines Beitrages das Skript aufruft. Wenn ich die bedingung drin habe, dass nur eine Mail abgeschickt wird, wenn am aktuellen Tag noch keine geschickt wurde, dann funktioniert das doch wie gewollt. Manchmal bin ich aber auch.

Beitrag anzeigenZitat (Dommix: 20. April 2012 - 13:35)

Es gibt (auch kostenlose) Dienste, bei denen du Cronjobs erstellen kannst. Von deren Server wird die Datei auf deinem Server dann zur entsprechenden Zeit aufgerufen.
http://www.cronjob.de dürfte so ein Dienst sein.


Das sieht aber auch sehr interessant aus. Das behalte ich mal für andere Sachen im Hinterkopf.

Dieser Beitrag wurde von Urne bearbeitet: 20. April 2012 - 20:34

Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0