include problem
Sven
- php
Hallo,
ich habe ein sehr großes problem. Ich bin gerade dabei für meine Website ein Forum zu programmieren in PHP. Anmelden/Login und Logout funktioniert soweit gut. Mir ist aufgefallen, dass wenn man sich einlogt, dass das Usermenu nicht sofort angezeigt wird. Das gleiche bei Logout (Login wird nicht angezeigt). Erst wenn man auf ein Link geklickt hat oder aktualisiert hat.
Der Aufbau meiner Website ist ziemlich kompliziert. Das ganze Design besteht aus 12 Tabellen. Später ist mir aufgefallen, dass ich viele Texte ausgeben muss wie Z.b. Username nicht vorhanden, Passwort ist falsch usw. Dann habe ich mir eine Design.php gebastelt die enthält 2 Variablen. $d1 und $d2. Jetzt wenn ich Text ausgeben will brauche ich einfach nur echo $d1."Username nicht vorhanden!".$d2.
Das ganze funktionierte super. Da ich jetzt über 20 PHP Dateien habe, habe ich mir noch eine menu.php gebastelt. Die enthält 3 Variablen. $topmenu, $rightmenu (wo das login ist / usermenu ist) und $leftmenu. Habe die Datei in der Design.php eingebunden etc. Jetzt wenn ich das Menü ändern will brauche ich nur 1 Datei ändern, fertig!
Funktioniert ebenfalls super. Klasse aufbau eigendlich später wenn man was ändern will 1 Datei ändern :). Zu mein problem:
Bei dem Login (Login.php) prüfe ich natürlich als erstes ob der Account aktiviert wurde, ob er in der Datenbank vorhanden ist etc.
Wenn alle angaben richtig sind und so setze ich Cookies. Und gebe dann aus: Echo $d1."Login erfolgreich usw.".$d2. WICHTIG: In der menu.php prüfe ich ob die Cookies gesetzt worden sind!!! Jeder der jetzt aufmerksam gelesen hat weist auch jetzt warum das Usermenu nicht angezeigt wird. Weil ich die design.php ganz oben include und später erst Cookies setze. Also wurde schon geprüft ob Cookies gesetzt worden sind.
Jetzt zu meine fragen:
1. Kann man die design.php irgendwie aktualisieren? ->
2. Wenn nicht, kennt jemand eine gute Lösung?
3. Ich weis zwar eine Lösung in dem ich die ganzen Tabellen, Menü etc. in der login.php neu ausgeben, aber das ist nicht wirklkich eine gute Lösung.
Ich hoffe das 1 oder 2 beantwortet werden.
MFG
Sven!
Problem gelöst! Ich mache mir einfach eine neue Datei wo die Design.php eingebunden ist und der Text ausgegeben wird.
Hm... das ganze ist auch etwas blöd! Das ist scheisse wenn man im Browser sieht Bla.php?text=login erfolgreich <a href...
Kennt jemand doch ne andere lösung?
1. Kann man die design.php irgendwie aktualisieren? ->
www.php.net/header :P
- Kann man die design.php irgendwie aktualisieren? ->
www.php.net/header :P
Das hilft mir leider nicht weiter. Ich will ja nicht die design.php aufrufen, sondern eher die design.php neu includen oder sowas.
MFG
Sven!
Hier etwas Code aus der Login.php:
<?php
include '../design/design.php';
....
else {
setcookie ("Username", $_POST['user'], 0, "/");
setcookie ("Password", $vpass, 0, "/");
}
$mytext=$d1."<a href='../index.php'>Home</a> <font color='black'>- Login erfolgreich!</font>
</td></table>"."<div align='Center'>Sie haben sich erfolgreich eingelogt!</div>".$d2;
echo $mytext;
?>
$d1 und $d2 kommt aus der design.php. Da die schon include ist was ich auch machen musste prüft er schon ob Cookies gesetzt worden sind.
Von daher wird das Usermenu nicht angezeigt. Deswegen muss ich die irgendwie wieder decluden und neu includen oder sowas.
Ist ziemlich wichtig!