Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[Funktion] Script nur einmal am Tag ausführen ? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[Funktion] Script nur einmal am Tag ausführen ?


 
Piti
01-09-2003, 23:04 
 
Hallo, habe euch über Google gefunden :D

Also ich bin ein ganz blutiger Anfänger und hoffe mir kann jemand helfen *g*

Ich habe ein php Script das bei jedem Aufruf der Seite ausgeführt wird.
Nun möchte ich es aber so haben, daß dieses Script nur beim ersten Aufrufen der Seite ausgeführt wird und dann nicht mehr.
Ich denke das man dies per Datum machen muß welches beim ersten Aufrufen der Seite in die SQL Datenbank geschrieben wird und dann bei weiteren Aufrufen das Datum geprüft wird. Hoffe soweit liege ich richtig *g*

Jetzt habe ich 1 Monat alles versucht schaffe es aber nicht da ich mit Datum etc. nicht klar komme. Vielleicht kann jemand einemNewbie helfen.

 
mrhappiness
01-09-2003, 23:07 
 
SELECT COUNT(*) anzahl FROM tabelle WHERE datum>=Now()

wenn anzahl==0
- INSERT INTO tabelle SET datum=Now()
- seite anzeigen

in der tabelle hast du die spalte datum (datentyp: date)

 
Seccho
01-09-2003, 23:22 
 
Ich habs mit ner datei gelöst.

Wenn Dateidatum != heute {
// das 1 mal tägliche script
etwas in die datei schreiben
}

so genau...

### Check ob update erledigt...

$file = "imp/update.txt";
$updatedatum = filemtime($file);
$dateidatum = date("d.m.Y", $updatedatum);
$datumheute = date("d.m.Y"); }

if($datumheute <> $dateidatum) {
echo "Mach was du 1 mal machen musst";
$fh = fopen("update.txt", "w");
fwrite($fh,"irgendwas");
fclose($fh);



}
else {
Was es sonst so zu machen gibt;
?>

 
Piti
01-09-2003, 23:27 
 
Mhm komme damit nicht so klar.

Bei mir wird nice was in die Tabelle geschrieben bzw. es wird trotzdem ausgeführt.
Ich habe mir eine Tabelle test angelegt mit dem Type date aber will nicht so wie es soll.

Das Script ansich geht ja wunderbar nur es darf/soll halt nur beim ersten Aufruf ausgeführt werden und dann erst am nächsten Tag wieder. Also nur einmal pro Tag.

P.S. Ihr seit echt Klasse so schnell habe ich nicht mit Hilfe gerechnet da darf man ja garnicht aufstehen *g*

 
mrhappiness
01-09-2003, 23:30 
 
wie sieht dein skript denn aus? (code)

 
Piti
02-09-2003, 10:21 
 
Den Code kann ich leider nicht posten da er von einer Forensoftware ist und ich damit gegen die Lizensbedingungen verstoße :(

Es ist eine ca. 50 Zeilige Funktion in einer php Datei. Ich poste mal den Anfang und das Ende das sollte ok sein.

$tal = $db->query_first("SELECT birthday,lastactivity FROM bb".$n."_users WHERE userid='$wbbuserdata[userid]'");
$monatauslese = substr($tal['birthday'],"5","2");
$tagauslese = substr($tal['birthday'],"8","2");
$vergleichszeit = mktime("23","59","59",$monatauslese,$tagauslese,date("Y"));
if($tal['lastactivity'] > $vergleichszeit) {
$db->unbuffered_query("UPDATE bb".$n."_users SET newthread_geb='0' WHERE userid='$wbbuserdata[userid]'",1);
}
$newthread_geb_aktiv_or_not = $db->query_first("SELECT aktiv FROM bb".$n."_newthread_geb");
if($newthread_geb_aktiv_or_not['aktiv'] == "1") {
$currentdate = formatdate("m-d", time());
$currentyear = intval(formatdate("Y", time()));
$result = $db->query("SELECT userid, username, birthday FROM bb".$n."_users WHERE birthday LIKE '%-$currentdate' AND activation = 1 ORDER BY username ASC");

..............MEHR CODE

$db->unbuffered_query("UPDATE bb".$n."_users SET userposts=userposts+1".(($rankid!=$wbbuserdata['rankid']) ? (", rankid='$rankid'") : (""))." WHERE userid = '$wbbuserdata[userid]'",1);
}
}
$db->fetch_array($result);
}


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:09 Uhr.