'; } public function captureSnapshot() { $outputFile = 'snapshot_' . date('YmdHis') . '.jpg'; $command = "ffmpeg -i {$this->videoSrc} -vframes 1 -q:v 2 {$outputFile}"; exec($command, $output, $returnVar); if ($returnVar !== 0) { return "Fehler beim Erstellen des Snapshots."; } header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $outputFile . '"'); readfile($outputFile); unlink($outputFile); exit; } public function captureVideoSequence($duration = 10) { $outputFile = 'sequence_' . date('YmdHis') . '.mp4'; $command = "ffmpeg -i {$this->videoSrc} -t {$duration} -c copy {$outputFile}"; exec($command, $output, $returnVar); if ($returnVar !== 0) { return "Fehler beim Erstellen der Video-Sequenz."; } header('Content-Type: video/mp4'); header('Content-Disposition: attachment; filename="' . $outputFile . '"'); readfile($outputFile); unlink($outputFile); exit; } public function getJavaScript() { return " document.addEventListener('DOMContentLoaded', function () { var video = document.getElementById('webcam-player'); var videoSrc = '{$this->videoSrc}'; if (Hls.isSupported()) { var hls = new Hls(); hls.loadSource(videoSrc); hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED, function () { video.play(); }); } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = videoSrc; video.addEventListener('loadedmetadata', function () { video.play(); }); } }); "; } public function setVideoSrc($src) { $this->videoSrc = $src; } } class GuestbookManager { private $entries = []; private $dbFile = 'guestbook.json'; public function __construct() { if (file_exists($this->dbFile)) { $this->entries = json_decode(file_get_contents($this->dbFile), true); } } public function handleFormSubmission() { if (isset($_POST['guestbook'], $_POST['guest-name'], $_POST['guest-message'])) { $this->addEntry($_POST['guest-name'], $_POST['guest-message']); $this->saveEntries(); } } private function addEntry($name, $message) { $this->entries[] = [ 'name' => $name, 'message' => $message, 'date' => date('Y-m-d H:i:s') ]; } private function saveEntries() { file_put_contents($this->dbFile, json_encode($this->entries)); } public function displayForm() { return '
'; } public function displayEntries() { $output = '
'; foreach ($this->entries as $entry) { $output .= "

{$entry['name']}

{$entry['message']}

{$entry['date']}
"; } $output .= '
'; return $output; } } class ContactManager { public function displayForm() { return '
'; } public function handleSubmission($name, $email, $message) { $feedback = [ 'name' => $name, 'email' => $email, 'message' => $message, 'date' => date('Y-m-d H:i:s') ]; $feedbacks = json_decode(file_get_contents('feedbacks.json') ?: '[]', true); $feedbacks[] = $feedback; file_put_contents('feedbacks.json', json_encode($feedbacks)); } } class AdminManager { public function isAdmin() { return isset($_SESSION['admin']) && $_SESSION['admin'] === true; } public function handleLogin($username, $password) { echo "Login-Versuch: Username = $username, Passwort = $password"; // Debugging if ($username === 'admin' && $password === 'sonne4000') { $_SESSION['admin'] = true; return true; } return false; } public function handleImageUpload($file) { if (!$this->isAdmin()) { return false; // Nur Admins dürfen Bilder hochladen } // Überprüfen Sie, ob eine Datei hochgeladen wurde if (!isset($file['tmp_name']) || empty($file['tmp_name'])) { echo "Keine Datei hochgeladen."; return false; } $target_dir = "uploads/"; if (!file_exists($target_dir)) { mkdir($target_dir, 0777, true); } $target_file = $target_dir . basename($file["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); $check = @getimagesize($file["tmp_name"]); if($check === false) { echo "Die Datei ist kein Bild."; return false; } if ($file["size"] > 5000000) { // 5MB Limit echo "Die Datei ist zu groß."; return false; } // Erlauben Sie nur bestimmte Dateiformate if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Nur JPG, JPEG, PNG & GIF Dateien sind erlaubt."; return false; } // Wenn alles in Ordnung ist, versuchen Sie, die Datei hochzuladen if (move_uploaded_file($file["tmp_name"], $target_file)) { echo "Die Datei ". basename( $file["name"]). " wurde hochgeladen."; return true; } else { echo "Es gab einen Fehler beim Hochladen der Datei."; return false; } } public function displayLoginForm() { return '
'; } public function displayAdminContent() { $feedbacks = json_decode(file_get_contents('feedbacks.json') ?: '[]', true); $output = '

Admin-Bereich

'; foreach ($feedbacks as $feedback) { $output .= "
"; $output .= "

{$feedback['name']} ({$feedback['email']})

"; $output .= "

{$feedback['message']}

"; $output .= "{$feedback['date']}"; $output .= "
"; } $output .= '
'; $output .= '

Social Media Links verwalten

'; $output .= '

Bild hochladen

'; return $output; } public function displayGalleryImages() { $output = ''; $files = glob("uploads/*.*"); foreach($files as $file) { $output .= ''; } return $output; } public function handleSocialMediaUpdate($platform, $url) { $socialLinks = json_decode(file_get_contents('social_links.json') ?: '{}', true); $socialLinks[$platform] = $url; file_put_contents('social_links.json', json_encode($socialLinks)); } } $webcamManager = new WebcamManager(); $guestbookManager = new GuestbookManager(); $contactManager = new ContactManager(); $adminManager = new AdminManager(); if (isset($_GET['action'])) { switch ($_GET['action']) { case 'snapshot': $webcamManager->captureSnapshot(); break; case 'sequence': $webcamManager->captureVideoSequence(); break; } } if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['guestbook'])) { $guestbookManager->handleFormSubmission(); } elseif (isset($_POST['contact'])) { $contactManager->handleSubmission($_POST['name'], $_POST['email'], $_POST['message']); } elseif (isset($_POST['admin-login'])) { $adminManager->handleLogin($_POST['username'], $_POST['password']); } elseif (isset($_POST['update-social-media'])) { $adminManager->handleSocialMediaUpdate($_POST['social-platform'], $_POST['social-url']); } elseif (isset($_FILES["fileToUpload"]) && $adminManager->isAdmin()) { $adminManager->handleImageUpload($_FILES["fileToUpload"]); }} ?> Aurora Wetter Lifecam - Einzigartige Live-Webcam und Wetter

Unsere Webcam

displayWebcam(); ?>

Folge uns, kopiere den Code und sende es deinen Freunden in Tiktok,Facebook, Instagram usw

Gästebuch

displayForm(); echo $guestbookManager->displayEntries(); ?>

Kontakt

displayForm(); ?>
isAdmin()): ?>

Admin-Bereich

displayAdminContent(); ?>

Admin Login

displayLoginForm(); ?>