Problem mit Cronjobs auf lima-city
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
aufruf
browser
code
date
ergebnis
frage
funktion
jahr
laut protokoll
mache
methode
monat
problem
tag
test
uhr
url
-
Hallo zusammen,
Ich habe ein tag/problem">Problem mit einem Cronjob hier auf lima-city. Dieser soll jeden Tag um 00:00 Uhr ausgeführt werden, was laut Protokoll auch immer bis auf einmal geklappt hat.
Das Problem, dass ich allerdings habe, ist das der PHP Code anscheinend nicht ausgeführt wird, obwohl laut der Test Methode eindeutig Einträge zum löschen vorhanden sind (Siehe https://sownloader.com/functions/counter_del.php?action=test).
Wenn ich nun den Code zum löschen manuell im Browser aufrufe, wird dieser auch ausgeführt und alles klappt wie es soll. Was mache ich falsch? Hier mal der eingerichtete Cronjob und das dazugehörige PHP-Script (Passwort unvollständig)
Cronjob:
0 0 * * * <cmd>
https://sownloader.com/functions/counter_del.php?action=delete&code=b0dd4af7e749aa1
Script:
include("../connect/config.php"); @$db = mysqli_connect($url, $user, $pw, $dbname); $action = mysqli_real_escape_string($db, $_GET['action']); $code = mysqli_real_escape_string($db, $_GET['code']); if($action == "delete" AND $code == "9a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b1"){ if($db == true){ ////Variabeln $tag = date("d"); $monat = date("m"); $jahr = date("Y"); $timenow = mktime(0,0,0,$monat,$tag,$jahr); $gestern = strtotime("-1 day"); $alter_tag = date("d.m.Y",$gestern); $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; /// MySQL Abfragen $counter_del = $db->query("SELECT * FROM `counter` WHERE `timed` < '" . $timenow . "'"); $counter_new = $db->query("SELECT * FROM `counter` WHERE `ip` = '$ip'"); /// Ergebnisse $total_day_guests = $counter_del->num_rows; $get_total_array = $counter_del->fetch_array(); $get_total = $get_total_array['id']; $get_time = $get_total_array['timed']; $datum_abfrage_db = date("d.m.Y",$get_time); $db->query("INSERT INTO `counter_stats` (`date`,`guests`,`total`) VALUES ('$alter_tag', '$total_day_guests', '$get_total')"); $db->query("DELETE FROM `counter` WHERE timed < '$timenow'"); echo "Database successfully updated."; mysqli_close($db); } else{ echo "Connection failed!"; } }
Zum Abschluss noch eine Frage:
Ist die Methode mit dem Code sicher, um die Funktion vor missbrauch zu schützen?
Liebe Grüße,
-Marvin
EDIT: Problem gelöst, es lag am falschen Timestamp, der dafür gesorgt hat, dass die Einträge um 0 Uhr noch nicht als "alt" gewertet wurden.
Beitrag zuletzt geändert: 12.4.2016 19:27:55 von marvinkleinmusic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage