Frames mit PHP problem

Alles, was PHP betrifft, kann hier besprochen werden.

Frames mit PHP problem

Postby rene.pr » 30. December 2004 10:48

Ich hab einen Login geschrieben der prüft ob der user die berechtigung hat das admin menü anzusehen
das admin menü ist ein frame set sollte die anmeldung abgelaufen sein läd das skript die loginseite nach und gibt sie aus. jetzt hab ich aber nicht bedacht das bei einem frameset nur ein teil neu geladen wird jetzt wird die loginseite in meinem top-frame ausgegeben blöde sache da es nicht besonders toll aussieht gibt es eine möglichkeit den browser zu veranlassen nicht in das frameset zu laden sondern die ganze seite neu zu zeigen? die seite wird mit echo ausgegeben head wollte ich nicht verwenden weil ich ne fehlermeldung dynamisch in den login screen schreibe also mit head weis ich wie es geht aber ohne nicht

danke für die hilfe
rene.pr
 
Posts: 28
Joined: 20. December 2004 11:12

Postby Stefan » 31. December 2004 02:40

Deine Loginseite ist natürlich keine Frameseite. Dort klärst Du die Loginverhältnisse und bei Erfolg wird auf die Frameseite mit der Adminoberfläche. Am besten Du speicherst den Loginstatus in einer Session oder sonstwo und prüftst dann in der Adminframeseite, noch vor der Ausgabe der HTML Auszeichnungen, ob der Login noch gültig ist. Wenn nicht, zurück zur Loginseite.

if(!$login)
{
header('location:http://host.tld/admin/anmelden.php');
exit();
}

<html>
.....

ciao, Stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz

Postby rene.pr » 31. December 2004 10:15

Ja danke die Methode mit head kenn ich schon nur wollte ich das vermeiden da es dann notwendig ist eine path anzugeben bzw. eine url
gibt es keine andere möglichkeit den browser zu veranlassen das frameset wegzuwerfen und nur die login seite laden vielleicht mit java skript oder so

aber danke für die antwort
rene.pr
 
Posts: 28
Joined: 20. December 2004 11:12

Postby Stefan » 31. December 2004 14:16

Warum solltes Du keinen URI angeben wollen/sollen?
nimm doch $_SERVER['SERVER_NAME']."/loginseite.php", dann klappts unter Vorbehalt auch mit wechselnden Servern, ohne das Du den URI ändern musst.

Mit Javascript müsstest Du das Frameset verlassen und einen neue Seite im "top" laden.
Code: Select all
if(!$login)
{
echo '<script type="text/javascript">window.top.location.href="anmeldeseite.html";</script>
exit();
}


Gut möglich, das das so nicht ganz richtig ist, ich bin kein Javascriptkönig. Bitte schlag nach bei:

http://dcljs.de
http://de.selfhtml.org/javascript/objekte/frames.htm

viel Erfolg

Achja, der JS Quatsch setzt natürlich vorraus, das der Client auch js aktiviert hat. Am besten du baust Deinen Seiten so, das die Grundfunktionen nicht von javascript abhängig sind.


ciao, Stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz

Postby rene.pr » 31. December 2004 17:59

ja ich weis leider ist java-script ne blöde sache wenn es nicht untersützt wird hab ich jetzt doch durchgerungen mit header zu machen aber leider:

grunz

es geht nicht läd wieder nur im top-frame

also ich hab eine seite die ist ein frame-set admin_menu.htm
der top-frame heißt menu.php und prüft welche menüs angzeigt werden dürfen jetzt hab ich dann im top frame den header eingebaut natürlich kommt jetzt wieder der login im top-frame ich dreh schön langsam durch

danke für deine hilfe stefan
rene.pr
 
Posts: 28
Joined: 20. December 2004 11:12

Postby Stefan » 31. December 2004 19:57

Servus,

nur keine Panik, so schnell kommt man nicht in die Klappse.

Du hast recht, natürlich fehlt bei dem Javascript aufruf, der Bezeichner "parent" also das Überfenster.

Wenn ich von Deinen Schwierigkeiten lesen, bestärkt mich das in meiner Linine mich von all dem Frameterror frei zu halten.
Scheiß drauf, Du hast nur die Möglichkeit mit javascript das Frame aufzulösen und auf die Loginseite zu wechseln.

Code: Select all
if(!$login)
{
echo '<script type="text/javascript">parent.location.href="anmeldeseite.html";</script>
exit();
}


Oder versuch mal den Link in einer Deiner Frameset innenseiten(menu.php?)
Code: Select all
<a href="javascript:parent.location.href='login.html'">Login falsch</a>

Ach ja, sorry, das mit dem Header kann natürlich nur funktionieren, wenn die Prüfung vor der Ausgabe des HTML erfolgt und dann auch nur wenn das Frameset neu geladen wird.

Wenn Du mich fragen würdest, würde ich antworten "Scheiß auf die Frames"

ciao, und feier mal schön nachher
stefan

PS: Schreibfehler? muß wohl das 20zigste Bier gewesen sein.
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz

Postby rene.pr » 01. January 2005 11:25

Danke Stefan,

für die Tipps ich hab es jetzt so gemacht wie du vorher gemeint hast. Also bevor das Frameset ausgegeben wird auf korrekten Login usw. geprüft. So geht es so halbwegs.

Naja warum Frames? Bis jetzt habe ich sie so lange wie möglich versucht zu vermeiden, aber bei einem Menü mit Hauptnav. und Nebennavigation es ein Frame so finde ich einfach ideall man kann das bearbeitunsformular immer im main frame ausgegen und muss nicht die ganze seite neu laden. so kleine vorteile haben sie schon wenn auch das händling schwer ist.

Mein größtes Problem ist, dass ich mir als Diplomarbeit ein CMS für ein Bildungsinstitut ausgesucht habe :-( Ohne das ich mir große Gedanken über die realisierung gemacht habe. Noch dazu haben uns die Lehrer mit Stoff so eingedeckt das wenn man 40 Std. arbeitet wie ich und anschließent in die Schule geht kaum zeit zum programmieren bleibt. Zu aller Pech ist der 2. im Team nur damit beschäftigt die Einreichungen und Vorpräsentationen zu machen. Du kannst dir vorstellen wie dann sollche Problem aufhalten. Ich hab schon fast 2 Monate gebraucht um die Templet energie zu schreiben bist sie passt. :-( Also vielen Dank nochmal für dein Hilfe hast mir echt weiter geholfen.

LG

Rene
P.S. Schöne Grüße aus Österreich
rene.pr
 
Posts: 28
Joined: 20. December 2004 11:12

Postby Stefan » 02. January 2005 23:33

Frohes Neues,

und viel Glück mit der Diplomarbeit!

ciao, Stefan
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz


Return to PHP

Who is online

Users browsing this forum: No registered users and 12 guests