PHP Session geht verloren in eingebundenen Frames (gelösst)

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
laberschwall
Mitglied
Beiträge: 50
Registriert: 25.08.2011 11:34

PHP Session geht verloren in eingebundenen Frames (gelösst)

Beitrag von laberschwall »

Hallo,

ich habe eine neue Seite gebastelt und ins Forum integriert. Hierzu habe ich die deutsche Anleitung hier verwendet.
Ich öffne diese Seite in einem Frame, einer eigenen Seite und im Forum zum Test.
Es funktioniert soweit tadellos. Gestern kam dann die Überraschung.
Ich habe dann das Sample genau mit dem Avatarbildchen übernommen um nicht irgendwelche Fehler zu machen.
Folgender Verhalt:

PC1:
- Gleiche Browser, FF, IE und Chrome
- Frame zeigt Avatarbild von einer alten Session an, reload des Frame ohne Änderung, bleibt konstant der Meinung des ersten Frame Aufrufes
alle Template <!--- IF und alle Variablen sind betroffen.
- neue Seite funzt
- Seite im Forum funzt
- Verhalten auf allen Browsern gleich
- Ein Neustart des Browsers zeigt keine Änderung am Frame. Er bleibt wie er ist.

PC2:
- Gleiche Browser, FF, IE und Chrome
- Frame funzt
- neue Seite funzt
- Seite im Forum funzt
- Verhalten auf allen Browsern gleich

Alles deutet auf ein Fehlverhalten in Frames oder ein nicht aktualisiertes Cookie hin.
Merkwürdig nur, das es 2 PCs gibt, denen das nichts ausmacht bei gleichen Browsern und andere die sehr wohl hier Probleme haben.

Hat hier jemand eine Idee warum Frames hier so anders sind und warum das PC Abhängig ist? (User Login ist überall ein admin User)
Zuletzt geändert von laberschwall am 29.12.2011 17:13, insgesamt 1-mal geändert.
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von zx9r-treiber »

Das liegt ganz klar an den Cookie Einstellungen des verwendeten PC. :D
Man sollte Cookie und Cach eines Browsers immer komplett löschen wenn man was neues probiert hat und es Überprüfen will. :grin:
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von Helmut »

Hallo laberschwall,

und nicht zu vergessen, im ACP folgendes machen:

Styles --> Style-Komponenten --> Templates auf Aktualisieren klicken
Styles --> Style-Komponenten --> Themes auf Aktualisieren klicken
Styles --> Style-Komponenten --> Grafiksammlungen auf Aktualisieren klicken
Allgemein den Cache löschen

und ggf. bei Allgemein --> Server-Konfiguration --> Serverlast das Rekompilieren veralteter Style-Komponenten: auf Ja stellen

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
laberschwall
Mitglied
Beiträge: 50
Registriert: 25.08.2011 11:34

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von laberschwall »

Cookies sind bei allen Rechnern auf Standard des Browsers.
Das Löschen der Cookies bewirkt ein neues Einloggen ins Forum, danach ist der Frame bei PC1 immer veraltet.

Das mit den Template aktualisieren werden wir Probieren, ist aber bestimmt schon öfters passiert.
Wird meine eigene Seite in irgendeine Liste implementiert?
Wenn ja verstehe ich nicht warum dieselbe Seite als neue Seite geöffnet, als im Forum geöffnet funktioniert und als im Frame geöffnet nicht.
Ich mein: es ist dieselbe Seite!
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von Helmut »

Hallo laberschwall,

hast du mal einen Link zu deiner Seite damit wir das Verhalten mal selber sehen können?

Der Code von deiner php, html Seite wäre auch interessant ggf. lässt sich da schon was sehen wo der Fehler liegt.

Du hast deine neue php Seite aber schon innerhalb des Verzeichnisses liegen wo auch die config.php ist?

Pastebin

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
laberschwall
Mitglied
Beiträge: 50
Registriert: 25.08.2011 11:34

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von laberschwall »

So, da hab ich ein Problem, mein Server ist intern zum Erstellen und Generieren der Seite, ein externer Server ist erst im Kommen.
Auch würde dir das evtl. nix bringen, weil viele PCs einfach funktionieren.
Der Code von deiner php, html Seite wäre auch interessant ggf. lässt sich da schon was sehen wo der Fehler liegt.
Standard phpbb Forum, Tutorial zum Einfügen einer Seite von hier.

genauer Aufbau:
Das Forum ist in einem Frame untergebracht (evtl. das Problem nach der Anleitung, warum gehts dann aber an vielen PC's?)
Die Hauptseite ist eine html mit Frameset. Erstes Frame ist das Forum , das zweite Frame ist die neue Seite. Alle Dateien liegen in demselben Verzeichnis, dem Forum root.
Der zweite Frame zeigt das Sample mit dem Avatar Bild. Ich muss den Frame neu laden, aber das mache ich später über Scripte rein, muss das Avatarbild ja nur nach Ein und Ausloggen neu malen lassen.
Vorerst reicht das manuelle Reload der Seite :)
Die funktionierenden Seiten sind als Button im Top Menü aufrufbar, einmal wird eine neue Seite geöffnet die ich manuell reloade wie den Frame (funzt immer) und ein weiterer Knof bringt mir die Seite ins Forum, alles zum Testen.

Kann die Frame Seite gerne zur Verfügung stellen :)

das mit der config.php verstehe ich jetzt nicht.
Muss die Hauptseite maniluliert werden? Wenn ja frage ich mich warum es bei PC2 funzt!

Sowas habe ich noch gefunden:
http://adamyoung.net/IE-Blocking-iFrame-Cookies
wobei ich keinen iFrame verwende ...
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von Helmut »

Hallo
laberschwall hat geschrieben:Tutorial zum Einfügen einer Seite von hier
du meinst diese Vorlage hier? http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten

Das Forum in einem Frame laufen zu lassen ist immer etwas schwierig. Wenn du die neue Seite nach der Anleitung machst, dann liegt die normal auch im gleichen Frame wie das Forum, da sie wie eine Unterseite vom Forum behandelt wird.

Schreibe doch mal den Verzeichnispfad auf wo du die neueSeite.php und die neueSeite.html reinkopiert hast.

Und wie gesagt, der Code von der php und der html ggf. noch von deiner Frame Seite wären echt hilfreich ......

Du kannst ja noch ein paar Screenshots machen damit dein Fehler deutlicher sichtbar ist.

Noch ein Tipp, wenn du deine Homepage um das Forum herum sprich mit den eingebundenen Seiten machst, dann kannst du auf allen Seiten der Homepage alle Funktionen des Forums nutzen, auch alle grafischen Elemente, so habe ich es bei meiner HP auch gemacht (die neue Seite ist auch auf der Basis in Bau).

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
laberschwall
Mitglied
Beiträge: 50
Registriert: 25.08.2011 11:34

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von laberschwall »

Wenn du die neue Seite nach der Anleitung machst, dann liegt die normal auch im gleichen Frame wie das Forum, da sie wie eine Unterseite vom Forum behandelt wird.
Es sei denn ich rufe sie per Browserzeile direkt auf in einem anderen Browser Fenster.
Noch ein Tipp, wenn du deine Homepage um das Forum herum sprich mit den eingebundenen Seiten machst, dann kannst du auf allen Seiten der Homepage alle Funktionen des Forums nutzen, auch alle grafischen Elemente
So der Plan. Wobei ich nur das Usermanagement erweitern würde.
Allerdings brauche ich noch die guten alten statischen, nicht neu ladenden Frames ;)

Meine indextest.html, kann man einfach in das bestehende Forum klatschen.

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META NAME="Generator" CONTENT="Editor">
<TITLE>Homepage</TITLE>
<FRAMESET ROWS="*,100">
    <FRAME NAME="Forenframe" TITLE="main" SRC="./index.php" SCROLLING=AUTO MARGINWIDTH=0 MARGINHEIGHT=0>
    <FRAME NAME="footer" TITLE="footer" SRC="./meinetestseite.php" SCROLLING=NO MARGINWIDTH="0" MARGINHEIGHT="0" FRAMEBORDER="1" BORDER="0">
</FRAMESET>
</HEAD>
</HTML>
Der Rest ist dann copy Paste des Samples bis auf die kleinen Parameteranpassungen je nach Server.
Sprachdatei brauche ich nicht für das Bild ;)

Code: Alles auswählen

<?php
/**
*
* @author Original Autor Benutzername autor_email@domain.de - http://meine-seite.de
* @author Anderer Autor Benutzername andere_email@domain.de - http://domain.de
*
* @package {PACKAGENAME}
* @version $Id$
* @copyright (c) 2007 Dein Gruppen Name
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
// Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Da wir weiter unten noch einen Avatar anzeigen lassen wollen,
// benötigen wir noch die dazu passende Funktion 
// die in der Datein includes/functions_display.php vorhanden ist.
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden

/*
* Nun folgt erst Dein PHP Code für die neue Seite, also:
* Variablen setzen, Datenbankabfragen, Einfügen und Entfernen von Einträgen usw...
*
* Dies ist nun ein sehr primitives Beispiel. 
* Es soll nur veranschaulichen wie es funktioniert.
*
*/
$example_variable = 'Schreibwas';
$google_logo = '<a href="http://www.google.com/"><img src="http://www.google.com/intl/en_ALL/images/logo.gif" alt="Google" /></a>';

// Ein typischer Gebrauch um Variablen an das Template zu senden.
$template->assign_vars(array(
    'EXAMPLE_VAR'    => $example_variable,
    'GOOGLE_LOGO'    => $google_logo,
    'MY_AVATAR'        => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
));

// Defniere nun den Dateinamen Deines Templates welches Du benutzen moechtest.
// Dies ist der Name von Deinem Template welches unter /styles/<style>/templates/ zu finden ist.
$template->set_filenames(array(
    'body' => 'meineneueseite_template.html',
));

?>
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von Helmut »

Hallo laberschwall,

also deine indextest.html funktioniert nicht, schon deshalb weil Frames nichts im HEADER Bereich zu suchen haben, die gehören in den BODY......

Davon abgesehen, warum willst du unbedingt an deinen Frames festhalten?

Schade dass von deiner Seite bis jetzt keine wirklich brauchbaren Informationen Bezüglich deines Codes und der Verzeichnisstruktur gekommen sind. :-?

Mit den bis jetzt bekannten Informationen lässt sich keine Aussage treffen, wo denn der Fehler liegt geschweige denn wie er am elegantesten behoben werden kann.


Hier nochmal der grobe Aufbau wie eine Homepage auf Basis des Forums (nur html betrachtet) aussehen kann:
  • overall_header.html --> Vom Forum

    body.html --> Forum oder dein html Code

    overall_footer.html --> vom Forum
Du kannst den Header und Footer vom Forum beliebig deinen grafischen Vorstellungen anpassen oder auch alternative Header und Footer verwenden.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
laberschwall
Mitglied
Beiträge: 50
Registriert: 25.08.2011 11:34

Re: Erstellen einer neuen Seite nach Vorgabe

Beitrag von laberschwall »

Hi,

also auf die Grundlagendiskussion warum man Frames braucht soll das hier nicht hinauslaufen. Den Fehler mühselig zu umgehen auch nicht. Warum man sie braucht habe ich oben beschreiben, es gibt keinen Ersatz für diese Kriterien. Das mit dem Grundaufbau ist dementsprechend total falsch, das kann ich nicht gebrauchen, wird ja bei jedem Klick neu generiert und neu dargestellt/aufgebaut, das ist ja technisch schon Blödsinn alles neu vom header und footer durchzukauen. Bei mir wird nur der Footer aktualisiert und neu geladen wenn es nötig ist.
Das Forum bleibt damit austauschbar.

Die Topic Frage bezieht sich weiterhin auf die Tatsache das in Frames die Session bei manchen PC's nicht aktiv bleibt bzw. veraltet ist was bei normalen Seiten funktioniert.
Andere Forensoftware anderes Verhalten. Scheint als würde da was fehlen ...

Wenns nicht geht oder nicht bekannt ist wie man das behebt dann hat sich dieser Thread erledigt.
Antworten

Zurück zu „[3.0.x] Mod Support“