Script abrechen!

fanste

Erfahrenes Mitglied
Hallo.

Ich arbeite auf meiner Seite viel mit include und sessions. Auf manchen Seiten habe ich eine Abfrage, ob der User eingeloggt ist. Wenn nicht, soll diese Seite abgebrochen werden, mit einer Meldung. Nun rufe ich die Seiten aber nicht direkt auf, sondern über eine index.php:
PHP:
<?
ob_start();
// Session starten -- für alle Seiten
session_start ();
 if(ereg("http",$site)) { die("Keine externen Seiten erlaubt"); }
 if(ereg("www",$site)) { die("Keine externen Seiten erlaubt"); }
 if(ereg("://",$site)) { die("Keine externen Seiten erlaubt"); }
 if(ereg("uname",$site)) { die("Keine externen Seiten erlaubt"); }
 include("url_pars.php");
 include("header.php");
 if(!$site) { $site = "home/index.html"; }
 include("$site");
 include("footer.php");
flush();
?>

Wenn der User nun nicht eigeloggt ist, und ich die includierte Seite abbreche, bricht es mir ja das komplette restliche Script ab. Gibt es da eine Möglichkeit, dass nur die includierte Seite abgebrochen wird?

mb fanste
 
Was heisst "die includete seiten abbrechen" ?

Meinst du deine die()s?

Ansonsten liegt es nur an der Struktur. Eben nicht abbrechen sondern Bedinungsbäume aufbauen... if / switch wie auch immer.

Btw kann es sein das du mit register_globals = on arbeitest?
gewöhne dir das Auslesen von Paramtern per URL (GET) oder POST lieber per $_GET['parametername'] bzw $_POST bzw. $_REQUEST an... mehr dazu be de.php.net unter dem Thema Superglobale Arrays...
 
Hallo.
Ja ich meine die() bzw. exit().
Zu den Bedingungsbäumen. Da ist doch dann wieder dass Problem, dass ich den HTML-Code der Seite 2mal schreiben muss. Dort wird nicht mit Templates gearbeitet!
Das mit den Superglobals habe ich mir schon so angewöhnt. Das Script oben, ist von jemanden anderen, für den ich etwas Programmieren soll. Habe das dort nicht geändert. Das Script habe ich von ihm schon so bekommen. Manche sachen funktionieren bloß noch nicht, unter anderem das hier genannte!
mb fanste
 
Da gehts schon los ;) Templates machen so oft das leben leichter...

Aber wo ist das Problem das du was zwei mal schreibe musst? Im Fall eine Dies wird z.b. der header und co angezeigt und statt nem include ne fehlermeldung, nur als beispiel, dann sähe das so aus:

PHP:
session_start ();
if(ereg("http",$site) || ereg("www",$site) || ereg("://",$site) || ereg("uname",$site)) 
     $seite = Fehlermeldungsseite.html';
elseif(!$site) $site = "home/index.html"; 

include("url_pars.php");
include("header.php");
include("$site");
include("footer.php");
 
Da haben wir gerade aneinander vorbei geredet. Das abbrechen mit Fehlermeldung soll nur bei Seiten sein, wo man eingeloggt sein muss. Diese Seiten werden dann über include("$site"); includiert. Wenn ich nun aber abbreche, wird der Footer ja nicht mehr angezeigt. Darum mein ich ja, dass nur die Seite abgebrochen werden soll, die über include("$site") eingebunden wird, damit der footer auch noch angezeigt wird!

Ich glaube zwar nicht, das dass jetzt viel verständlicher ist :), aber vll weiß ja jetzt dennoch jemand eine richtige Lösung.

mb fanste

PS: Das mit der URL Prüfung werde ich genau so machen, wie du es gemacht hast.(zeile 2). Ist um einigen kürzer!
 
Zurück