SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > Off Topic Area

Off Topic Area Hierein gehört alles, was nichts mit PHP, MySQL, Apache oder ähnlichem zu tun hat

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.05.2003, 10:14:22
Alarion Alarion ist offline
Anfänger
 
Registriert seit: May 2003
Ort: Gießen / Hessen / Germany
Beiträge: 7
Alarion eine Nachricht über ICQ schicken Alarion eine Nachricht über AIM schicken Alarion eine Nachricht über Yahoo! schicken
Scripten automatisch ausführen...

Hallo ppl...


welche Möglichkeit habe ich denn, Scripten auf einem Web-Server automatisch (uhrzeitgesteuert) auszuführen? Am liebsten mit Basis-Mitteln, die auf nem kostenlosen WEBSpace funktionieren... ;)


Grüße,
Alarion
Mit Zitat antworten
  #2  
Alt 25.05.2003, 10:32:02
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Was Du vor hast, geht meist nur auf einem eigenen Server. Dafür benötigst Du entweder ein selbst geschriebenes Programm oder (besser) gleich CronJobs. Manche Provider bieten das auch an. FreeSpace-IPS' wohl eher nicht.
Bleibt Dir also nix anderes übrig, als den ersten Besucher des Tages (oder wann auch immer das Skript laufen soll) damit zu nerven, dass er die Abarbeitung des Skriptes abwarten muss, da er als Initiator dafür missbraucht wird.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 25.05.2003, 13:52:24
Alarion Alarion ist offline
Anfänger
 
Registriert seit: May 2003
Ort: Gießen / Hessen / Germany
Beiträge: 7
Alarion eine Nachricht über ICQ schicken Alarion eine Nachricht über AIM schicken Alarion eine Nachricht über Yahoo! schicken
hmmmmm d.h. ich schaue bei jedem Aufruf auf die aktuelle Zeit und vergleiche sie mit dem Zeitpunkt des nächsten cron jobs ?

kannst Du mal ein Code-Fragment posten, bitte?


Grüße,
Alarion
Mit Zitat antworten
  #4  
Alt 25.05.2003, 15:06:23
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Ja, nu, so ungefähr.
Sagen wir mal, Du willst jeden Morgen ein Backup ausführen (vorausgesetzt, Du hast morgens Besucher...):
PHP-Code:
$temp=file('done.txt');  // done.txt speichert das Datum der letzten Ausführung des folgenden Skriptes
$date=$temp[0];
if (
$date<date("Ymd"))  // wenn gespeichertes älter, als aktuelles
 
{
  
/*
   hier dann alles, was ausgeführt werden soll
  */
  // neues Datum speichern
  
$fh=fopen('done.txt','w');
   
fwrite($fhdate("Ymd"));
  
fclose($fh);
 } 
So oder sp ähnlich sollte das dann klappen.
2 Probleme gibt es: Du musst einen Besucher mit dem Skript stören und er könnte es abbrechen. Halte es also möglichst kurz.

Alles klarofix?
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 25.05.2003, 15:45:03
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
nunja.. du kannst es auch so machen (aber ich weiss nicht, ob das die provider zulassen, bzw. ob sie dich nicht kicken, wenn sie draufkommen: Mach eine cronjob datei, die du einmal aufrufst, und gegen ALLE anderen aufrufe schützt (verbiete nachher generell das aufrufen der datei mittels htacces! FÜR ABSOLUT JEDEN!)
in der stteht drin:

Code:
ignore_user_abort(true); #ein user abbruch lässt das script trotzdem weiterlaufen!
ini_set("max_execution_time",0); #wird nie aufhören
register_tick_function("mychronjobs");
declare(ticks=1)
{
while(1)
{
sleep(60*60); #1 Stunde pause
}
}

function mychronjobs()
{
$file=fopen("state.txt","r");
$contents = fread ($file, filesize ($filename));
if($contents="run")
{
print "tick ausgeführt";
#Hier gehört der code für deinen Ticker rein!

}elseif($contents="shutdown") { exit();}


}
Dieser code ist SCHWER Experimentell. Ich habe noch nie tick functions und declares in PHP gebraucht, es kann auch gut sein, dass das nicht mal ansatzweise funktioniert, das müsste es aber...
Na gut, was macht das ding?
zuerst einmal wird der user abort ignoriert - wenn der user auf "abbrechen" drückt, wird das skript trotzdem weiter ausgeführt, und zwar für alle zeiten (max_execution_time ist nämlich unendlich) Ok, mit register_tick_function setzt man fest, welche funktion bei einem tick aufgerufen werden soll (bis jetzt ist noch unklar, was ein tick ist.)
Der tick wird mit declar definiert, und zwar: für jedes statement, das ausgeführt werden soll, wird einmal ein tick ausgeführt. das ganze geht in die schleife hinein --> sleep() ist ein statement --> tick wird ausgeführt (funktion mychronjobs() wird aufgerufen und abgearbeitet), dannach gibt das script mal ne stunde (60 mal 60 sekunden) ne ruhe, dann fängt die schleife wieder von vorne an -> wieder ein statement, wieder ein tick!
Dieser Ticker wird bis zum tag der jüngsten gerichts laufen, ohne abgebrochen werden zu könenn - du kannst ihn auch nicht kontrollieren. Deshalb hab ich in die tick funktion die datei state.txt eingebaut. Damit ein Tick ausgeführt wird, muss in der datei "run" stehen (und zwar GENAU run). Wenn das nicht drinsteht, findet der tick nicht statt (also eine pause im ticker) Wenn du deinen Ticker "Beenden" möchtest (also die ausführung des scriptes ein für alle mal abdrehen willst, dann muss in der datei "shutdown" stehen. Das beendet das komplette script sofort.

Aber noch ne warnung: Lies dir UMBEDINGT die entsprechenden Manualeinträge aus PHP.net durch (ich häng sie gleich an) und probier das ganze zuerst einmal zu hause, und stell sicher, dass es ordnungsgemäß funktioniert!)

www.php.net/ignore_user_abort
www.php.net/ini_set
www.php.net/sleep
www.php.net/register_tick_function
www.php.net/declare <-- SEHR wichtig!
www.php.net/fopen
www.php.net/fread

Wie gesagt, ich kann dir nicht versprechen, dass provider das zulassen (und selbst, wenn sie es nicht verhindern, dass sie es dir beenden, wenn sie draufkommen)
Wenn der server oder Apache restartet wird, hören die Ticks natürlich auch auf, bedenke das!
Mit Zitat antworten
  #6  
Alt 25.05.2003, 15:50:40
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Matt, das Skript ist schon fast ä bissl wie genial. Nur bezweifel ich, dass es ISPs gibt, die die Laufzeit von Skripten nicht kontrollieren. Schade eigentlich...
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 25.05.2003, 16:23:52
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
danke *stolz sei*. Ich weiss nicht, ob das alle verbieten - all-inkl.com glaube ich nicht, aber die sind kostenpflichtig.

hm.. und dann gibt es da noch www.cwcity.de die haben gratis webspace und erlauben so ziemlich alles (und machen keine werbung) ich frage mich ja nur, womit die sich finanzieren!
Mit Zitat antworten
  #8  
Alt 25.05.2003, 16:28:47
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
ich frage mich ja nur, womit die sich finanzieren!
Hast Du Dich noch nie gefragt, wieso man E-Mails erhält, obwohl diese E-Mail-Adresse noch nie genutzt wurde...? ;)
Will ich nicht verallgemeinern, aber auch nicht ausschließen.

Übrigens frage ich mich auch, wie google am Anfang überleben konnte: Riesiger Rechnercluster, fein große Netzanbindung usw.
Das selbe auch bei archive.org
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 25.05.2003, 16:38:16
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
DAs mit den E-Mails ist kein problem: Dafür legst du namenslisten an (vornamen und nachnamen) und die wahrscheinlichkeiten für das auftreten eines namens, jetzt gehst zu gmx oder so, und kannst über SMTP folgendes machen:


VRFY {Wahrscheinliche Vornamen}.{Wahrscheinliche Nachnamen}@gmx.net

Damit lässt du GMX überprüfen, ob es so eine E-Mail Addy gibt. Ich hab hier sogar schon mal ne anleitung gepostet, wie man überprüft, ob eine E-Mail Adresse Existiert auf die methode (der haken dabei ist nur, dass man nicht überprüfen kann, ob die E-Mail adresse dem gehört, der sie angibt!)

Es ist ja ziemlich warhscheinlich, dass es Mueller@gmx.net gibt, oder? Und wahrscheinlich genauso wahrscheinlich, dass es Mueller2@gmx.net gibt... Wenn du da nen ausgeklügelten algorithmus hast, reicht ein PHP script, um so an E-Mail addys zu kommen.
Mit Zitat antworten
  #10  
Alt 25.05.2003, 16:41:57
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Recht hast Du.
Nur nicht jeder hat seinen Namen in der Adresse.
Und nicht jeder E-Mail-Spender erlaubt die Überprüfung von Adressen.

Aber gut nun. Für sowas hat man schließlich eine Adresse bei web.de und Ruhe ist. :)
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:50:19 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt