php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.04.2010, 11:17  
Benutzer
 
Registriert seit: 14.01.2010
Beiträge: 69
PHP-Kenntnisse:
Fortgeschritten
Lenki befindet sich auf einem aufstrebenden Ast
Standard IE8 verliert Session

Hallo zusammen,

ich habe gestern Nacht eine neue Version "meiner" Homepage gelauncht und der neue Login funktioniert im Internet Explorer ( nicht.

Ich habe mich jetzt eine Stunde lang durch diverse Google-Ergebnisse zum Thema gewühlt, und bisher folgendes Unternommen: (alles Unter IExplorer-Datenschutz-Einstellunen "alle Cookies akzeptieren", also ganz niedrig, Cache und Cookies mehrfach gelöscht)

P3P-Header-Einstellungen (verschiedene):
PHP-Code:
header'P3P: CP="IDC DSP COR CURa ADMa OUR IND  PHY ONL COM STA"');
header'P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); 
header'P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 
Brachten jeweils keine Veränderung.

Ich hatte vorher über ini_set() session.use_only_cookies auf on und session.use_trans_sid auf off gesetzt. Beide habe ich jetzt mit ini_restore() auf den Default-Wert zurückgesetzt.

Mein Kopfzeilen jeder Datei, die ich aufrufe, sieht momentan so aus:
PHP-Code:
    /*** Initials ***/
    #error_reporting(E_ALL);
    //@ini_set( 'session.use_only_cookies', '1' );
    //@ini_set( 'session.use_trans_sid', '0' );
    
@ini_restore'session.use_only_cookies');
    @
ini_restore'session.use_trans_sid');
    
//@ini_set( 'allow_url_include', true );
    #setlocale(LC_ALL, 'de_DE');
    #header( "P3P: CP=CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE");
    #header( 'P3P: CP="IDC DSP COR CURa ADMa OUR IND  PHY ONL COM STA"');
    #header( 'P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); 
    
header'P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
    
session_start();
    
/*** include functions, (for decode())***/
    
include __SITE_PATH '/includes/' 'functions.php';
    
$c file_get_contents('log.txt');
    
$c.= $_SERVER['PHP_SELF']."\n";
    
$c.= decode($_REQUEST['rt'])."\n";
    
$c.= print_r($_SESSIONtrue)."\n";
    
file_put_contents('log.txt'$c);
    
header("Content-Type: text/html; charset=utf-8"); 
Und logge damit den Ablauf mit.

Ein Log-Block ist also Aufgebaut nach:
- aufgerufene Seite
- Controller/Action
- Session-Array

Mein Aufruf-Reihenfolge ist momentan folgende:
- Aufruf intern.php (Anzeige Login-Skript), Maske ausfüllen und anmelden.
- interne Startseite wird angezeigt
- Klick auf Projekte verwalten (Route: projects/index)
Im IE8 werde ich jetzt zurück auf die Login-Seite geschickt, in Opera und Firefox komm ich auf die entsprechende Seite.

Hier das Log-File unter IE8: (nur "relevante" Teile)
Code:
/v6/intern.php
login/index
Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [ProjectsController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [LoginController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [MenuController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [ControlpanelController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [CalendarController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [WildCalendar] => Array
        (
            [currentTimestamp] => 1270080000
            [currentType] => month
        )

)

/v6/intern.php

Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [ProjectsController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [LoginController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [MenuController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [ControlpanelController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [CalendarController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [WildCalendar] => Array
        (
            [currentTimestamp] => 1270080000
            [currentType] => month
        )

)

/v6/intern.php

Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [ProjectsController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [LoginController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [MenuController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [ControlpanelController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [CalendarController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [WildCalendar] => Array
        (
            [currentTimestamp] => 1270080000
            [currentType] => month
        )

    [user] => Array
        (
            [status] => 1
            [username] => lenki
            [request_time] => dcff27ff00f43b1a011474980dee95ba
        )

)

/v6/intern.php
projects/index
Array
(
)

/v6/intern.php
login/index
Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [ProjectsController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

)
Hier der Log-Code ("relevante" Teile), wenn ich den gleiche Aufruf-Abfolge in Opera 10.51 mache:
Code:
/v6/intern.php
login/index
Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [HomeController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

)

/v6/intern.php

Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [HomeController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [LoginController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [MenuController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [ControlpanelController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [CalendarController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [WildCalendar] => Array
        (
            [currentTimestamp] => 1270080000
            [currentType] => month
        )

)

/v6/intern.php

Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [HomeController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [LoginController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [MenuController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [ControlpanelController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [CalendarController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [WildCalendar] => Array
        (
            [currentTimestamp] => 1270080000
            [currentType] => month
        )

    [user] => Array
        (
            [status] => 1
            [username] => lenki
            [request_time] => 88346ca1abf3d8fc958cd24a73120fdd
        )

)

/v6/intern.php
projects/index
Array
(
    [init_path] => C:\xampp\htdocs\v6\includes
    [HomeController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [LoginController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [MenuController] => Array
        (
            [currentItemObj] => 
        )

    [ControlpanelController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [CalendarController] => Array
        (
            [currentManagerObj] => 
            [currentItemObj] => 
        )

    [WildCalendar] => Array
        (
            [currentTimestamp] => 1270080000
            [currentType] => month
        )

    [user] => Array
        (
            [status] => 1
            [username] => lenki
            [request_time] => 88346ca1abf3d8fc958cd24a73120fdd
        )

)
Ein User ist eingeloggt, wenn in $_SESSION['user']['status'] 1 (true) steht.
Wenn man die beiden Logs vergleicht, fällt auf, dass im IE8 beim Aufrufen von projects/index (Projekte verwalten) die Session komplett leer ist.

Ich bin am verzweifeln. Jemand eine Idee?

Viele Grüße
Max
Lenki ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.04.2010, 11:21  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Kann man das irgendwo online betrachten?
ChrisB ist offline   Mit Zitat antworten
Alt 01.04.2010, 11:59  
Benutzer
 
Registriert seit: 14.01.2010
Beiträge: 69
PHP-Kenntnisse:
Fortgeschritten
Lenki befindet sich auf einem aufstrebenden Ast
Standard

Öhm, ungern. Über den geschützten Bereich wird u.a. die Mitgliederverwaltung eines Vereins abgewickelt und enthält daher "vertrauliche" (vielleicht nicht das richtige Wort, aber ihr wisst, was ich meine) Daten und ich habe auch keine Dummy-Daten

Was meinst du denn genauer verstehen zu können, wenn du es Live siehst? *g* Vielleicht kann ich die Beschreibung noch mehr detailieren.

Edit
Ich habe gerade festgestellt, dass wenn ich den IE8 im InPrivate-Modus laufen lasse, alles funktioniert.

Geändert von Lenki (01.04.2010 um 12:25 Uhr).
Lenki ist offline   Mit Zitat antworten
Alt 01.04.2010, 22:06  
Benutzer
 
Registriert seit: 14.01.2010
Beiträge: 69
PHP-Kenntnisse:
Fortgeschritten
Lenki befindet sich auf einem aufstrebenden Ast
Standard

Hm, also ich habe jetzt gerade von einem Benutzer mitbekommen, dass es bei ihm im IE8 einwandfrei funktioniert. Ergo muss es doch irgendwie mehr mit den Sicherheitseinstellungen des IE zu tun haben. Oder gar irgendwelchen lokalen Einstellungen?

Ich sehe, dass der Thread sich ein bisschen von PHP entfernt. Um den Bogen zu schlagen, vielleicht folgende Fragen:

Gibt es außer dem P3P-Header noch andere "Tricks", mit denen man dem IE signalisieren kann "Hey, ich bin sicher, nimm meine Keks bitte".

Ich schlage mich heute schon den ganzen Tag damit rum und es lässt mir einfach keine Ruhe. Es ist ja bekannt, dass der IE seine Zicken hat aber es kann ja nicht sein, dass ein Login, indirekt die Session, bei normalen Sicherheitseinstellungen nicht funktioniert.
Vielleicht noch ein Wort zu meinen Suchen durchs Netz: Alleine bin ich mit dem Problem natürlich nicht. Die meisten ähnlichen Probleme, die ich gefunden habe, ließen sich allerdings mit dem P3P-Header lösen.

Ich bin weiterhin Dankbar für jeden noch so kleinen Tip, sonst wünsche ich frohe Feiertage
Lenki ist offline   Mit Zitat antworten
Alt 10.04.2010, 17:05  
Benutzer
 
Registriert seit: 17.06.2009
Beiträge: 97
PHP-Kenntnisse:
Fortgeschritten
hondatuner befindet sich auf einem aufstrebenden Ast
Standard

Diese Logs sind ziemlich wertfrei. P3P brauchst Du auch nicht.

Dir wird nichts anderes übrig bleiben als Deinen Code auf das Minimum zu reduzieren und so das Problem zu lokalisieren. Im IE reicht schon, wenn Du Cookies versuchst zu überschreiben, denen zu zwischenzeitlich eine andere Cookiedomain oder eine andere Pfadangabe übermittelt hast. Dann überschreibt der IE häufig gar nicht das vorhandene Cookie und liefert ständig das alte mittlerweile unbekannte aus.

Aber bevor in dieser Richtung spekuliert wird, würde ich erstmal prüfen, ob der IE ein Cookie angeboten bekommt und ob bereits welche vorhanden sind bzw. ob er das neue annimmt.
__________________
meine PHP Scripte
hondatuner ist offline   Mit Zitat antworten
Alt 23.04.2010, 10:30  
Neuer Benutzer
 
Registriert seit: 23.04.2010
Beiträge: 1
PHP-Kenntnisse:
Fortgeschritten
MarcusS befindet sich auf einem aufstrebenden Ast
Standard

Gibt es für dieses Problem mittlerweile ein Lösung? Ich habe genau das gleiche Problem. Auf meinem eigenen Rechner kann ich es nicht nachvollziehen, da funktioniert der IE8 einwandfrei, auf dem Rechner nebenan geht es nicht. Per Wireshark konnte ich nachvollziehen, dass die Session nie in das Cookie geschrieben wird.
MarcusS ist offline   Mit Zitat antworten
Alt 23.04.2010, 10:39  
Neuer Benutzer
 
Registriert seit: 20.01.2010
Beiträge: 16
PHP-Kenntnisse:
Anfänger
alsahmut befindet sich auf einem aufstrebenden Ast
Standard

Schon

PHP-Code:
setcookie("sid",session_id(),(time()+2592000)); 
probiert?
alsahmut ist offline   Mit Zitat antworten
Alt 23.04.2010, 13:30  
Benutzer
 
Registriert seit: 17.06.2009
Beiträge: 97
PHP-Kenntnisse:
Fortgeschritten
hondatuner befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MarcusS Beitrag anzeigen
Gibt es für dieses Problem mittlerweile ein Lösung? Ich habe genau das gleiche Problem. Auf meinem eigenen Rechner kann ich es nicht nachvollziehen, da funktioniert der IE8 einwandfrei, auf dem Rechner nebenan geht es nicht. Per Wireshark konnte ich nachvollziehen, dass die Session nie in das Cookie geschrieben wird.
D.h. der IE8 bekommt es angeboten, aber nimmt es nicht an? Dann sind vermutlich die Cookiedaten falsch.

Besser wäre es, wenn Du die Cookieinfos mal über das Addon "Display ieHTTPHeaders" ausgeben lässt, um zu prüfen welcher Path, Domain etc. übermittelt wird. Ich gehe mal davon aus, dass da das Problem zu finden ist.

Denkt wie gesagt daran, dass der IE Probleme damit hat ein gleichnamiges Cookie zu überschreiben, wenn sich zwischenzeitlich Path und oder Domain geändert hat. Im Livebetrieb sollte man daher den Cookienamen lieber ändern. Beim Debugbetrieb sollte man die lokalen Cookies einfach alle löschen.
__________________
meine PHP Scripte
hondatuner ist offline   Mit Zitat antworten
Alt 23.04.2010, 13:31  
Benutzer
 
Registriert seit: 14.01.2010
Beiträge: 69
PHP-Kenntnisse:
Fortgeschritten
Lenki befindet sich auf einem aufstrebenden Ast
Standard

Oh, hab gar nicht gemerkt, dass hier nochmal jemand geantwortet hat. Für mich war das Thema schon abgehakt und ich habe bisher keine weiteren Anstrengungen unternommen in der Richtung. Habe auch keine "neuen" Beschwerden von Usern bekommen und die Lösung der Sache daher erstmal niedrig priorisiert.
Falls ich irgendwann mal zu einer Lösung kommen sollte, werde ich diese hier gerne Posten bzw. freue mich auch über Lösungen von anderen mit ähnlichem Problem.
Lenki ist offline   Mit Zitat antworten
Alt 23.04.2010, 14:10  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Auch wenn's ein wenig am Problem vorbeigeht - gibt es einen Grund, warum ihr keinen Fallback einsetzt?
Dass Links ohne SID "besser" sind weiß ich - für die Usability ist's aber wohl geschickter, wenn der Login funktioniert.
Ich habe das in einem Projekt so umgesetzt, dass nach dem Login mehrere Weiterleitungen folgen, bei denen geprüft wird, ob ein Cookie gesetzt werden konnte.
Ist das nicht der Fall gibt's die SID eben in der URL.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
session variable verschwindet bei erneutem seitenaufruf david.a.p. PHP Tipps 2009 2 17.08.2009 16:07
SessionHandler - Sessions in einer Datenbank #Avedo Software-Design 11 04.05.2009 15:44
[Erledigt] Problem mit der übergabe einer Session ID Shinak PHP Tipps 2009 12 13.03.2009 14:30
Session nofear87 PHP Tipps 2008 8 05.11.2008 10:42
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
iframe verliert session Tigermoon PHP-Fortgeschrittene 5 20.04.2006 15:40
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
Session error nach Umstellung auf PHP 5 PHP Tipps 2005 15 13.05.2005 14:35
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
Session - $_SESSION Array verliert die Werte PHP-Fortgeschrittene 8 16.09.2004 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ie8 verliert session, ie8 session problem, ie8 php session, php session ie8, ie verliert session, session ie8, php session ie8 problem, ie8 session, php verliert session, ie 8 verliert session, iehttpheaders ie8, p3p ie8, ie8 cookies php, session php ie8, session problem ie8, session ie8 php, array in session php ie, ie 8 session, http://www.php.de/php-fortgeschrittene/66401-ie8-verliert-session.html, zend session ie schreibt kein cookie

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum