Scriptprobleme :(

flying-anzi

Erfahrenes Mitglied
Hallo

Ich habe ein kleines Script geschrieben, welches aus einer txt Datei auslest, welchen Status die Homepage im aktuellen Zeitpunkt hat.

ist der status auf "online" soll jeder die Hp sehen können
Status: "offline" soll niemand zufgreifen können
Status: "admin_only" soll nur der Zugreifen können, der die gleiche Ip hat wie die in der _status.txt Zeile 2.

Doch irgendwie funktioniert es nicht richtig... sobald ich admin_only eingebe komme ich als admin trotzdem immer auf die offline Seite...



PHP:
function onlinestatus($rp){
		$filename = $rp."_status.txt";
		$activity =file($filename); 
		if(trim($activity[0])=='online'){}
		elseif(trim($activity[0])=='offline'){
			header("location:".$rp."offline.html");
			die;
		}
		elseif(trim($activity[0]) == 'offline_admin'){
			if($activity[1] != $REMOTE_ADDR){
				header("location:".$rp."offline.html");
				die;
			}
			else
			{}
			
			
		}
}
 
Ein txt Datei
Dann kann ja jeder deine Config lesen, wenn du dann noch auf die Idee kommst darin PWs ...

kurz gesagt mach das nicht!


Erstelle eine php wo die Konstanten Definierst und tu die dann einfach includen.

ZB status.php
PHP:
define('OFFLINE',true); // true oder flase

und
PHP:
include('status.php');

function onlinestatus($rp){
   if (OFFLINE) { 
      header("location:".$rp."offline.html");
      die(); 
   } else {
       header("location:".$rp."online.html");
       die();
   }
}

allerdings sind die HTML Seiten dadurch nicht Geschütz und immer erreichbar
 
Zuletzt bearbeitet:
Es sind keine Passwörterin der txt Datei, es steht nur

Code:
admin_only
IP

oder
Code:
offline
IP

oder
Code:
online
IP

ansonsten steht in der Datei nichts drinnen
 
Zuletzt bearbeitet:
Hi,

statt $REMOTE_ADDR nimm $_SERVER['REMOTE_ADDR'].

Hier mein Vorschlag, ich würde auch lieber Konstanten einsetzen, so sparst dir das Datei einlesen per file().

PHP:
// status.php
define ('STATUS','offline'); // offline, online oder admin_only
define ('ADMIN_IP','123.123.123.123');

// function.php
function onlineStatus ($rp) {
	if (defined ('STATUS')) {
		switch (STATUS) {
			case 'offline':
				header ('Location: ' . $rp . 'offline.php');
				break;
			case 'online':
				header ('Location: ' . $rp . 'online.php');
				break;
			case 'admin_only':
				if (defined ('ADMIN_IP')
					and ADMIN_IP === $_SERVER['REMOTE_ADDR']) {
					header ('Location: ' . $rp . 'online.html');
				}
		}
	}
}
 
Zurück