Moin
Ich habe eine Datei die alle 30 Min ausgeführt wird (cronjob). Bei mir ist es ein "Verbindungs Test"
Wenn keine Verbindung vorhanden ist, soll er doch bitte einen neuen DB Eintrag machen. Und das funktioniert auch wunderbar.
So sieht das aus:
PHP
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
try{
/* Datenbank Verbindung herstellen */
$dbv = new PDO('mysql:host=localhost;dbname=azubis;charset=utf8', '###', '###');
$dbv->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(EXCEPTION $e){
echo "Ein Fehler ist aufgetreten: " . $e->getMessage();
exit();
}
include('../createLogEntry.php');
### Verbindung aufbauen ###
$connection = ssh2_connect('###', 22);
ssh2_auth_password($connection, '###', '###');
$sftp = ssh2_sftp($connection);
$selectConnectionError= $dbv->prepare("SELECT fehlerId, fehlerCode, seite FROM fehler WHERE seite = :seite");
$selectConnectionError->execute([":seite" => "verbindung.php"]);
$connectionError = $selectConnectionError->fetchAll(PDO::FETCH_ASSOC);
### Verbindungsfehler eintragen ###
if($sftp) {
if($connectionError) {
$deleteError = $dbv->prepare("DELETE FROM fehler WHERE seite = :seite");
$result = $deleteError->execute(array(":seite" => "verbindung.php"));
}
logEintrag("../logFiles/logFile.txt", "FL", "Die Verbindung zum [Raspberry PI] wurde wiederhergestellt.");
} else {
if(!($connectionError)) {
$stmt = $dbv->prepare("INSERT INTO fehler(fehlerCode, fehlerName, beschreibung, seite, datum, uhrzeit) VALUES (:fehlerCode, :fehlerName, :beschreibung, :seite, :datum, :uhrzeit)");
$result = $stmt->execute(
array(
":fehlerCode" => "1",
":fehlerName" => "Verbindungsfehler",
":beschreibung" => "Verbindung zum Server fehlgeschlagen",
":seite" => "verbindung.php",
":datum" => date('d.m.y'),
":uhrzeit" => date('H:i:s')
)
);
}
logEintrag("../logFiles/logFile.txt", "ST", "Die Verbindung zum [Raspberry PI] wurde unterbrochen.");
}
?>
Alles anzeigen
Hier noch einmal der Code für den logEintrag:
PHP
<?php
function logEintrag($pfad, $type, $nachricht) {
date_default_timezone_set("Europe/Berlin");
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i:s",$timestamp);
$logFile = fopen($pfad, "a");
$logEintrag = $datum . " " . $uhrzeit . " " . $type . " " . $nachricht;
fwrite($logFile, $logEintrag.PHP_EOL);
fclose($logFile);
}
?>
Alles anzeigen
Der Datenbank Eintrag wird erstellt, der logEintrag allerdings nicht.
Erst wenn ich die Seite selber in meinem Browser Lade, funktioniert das.
Hat jemand eine Idee? Fehler werden nicht angezeigt und in der Konsole ebenfalls nicht.
LG
Marvin