mrunix.de

Zurück   mrunix.de > Programmieren > PHP-Forum
Benutzername
Kennwort
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

PHP-Forum Scripten in php

Antwort
 
Themen-Optionen Thema bewerten Ansicht
Alt 25-02-2012, 17:03   #1
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
Firefox 7 und Session Cookies

Hallo Leute,

habe gerade opensuse 12.1 verpasst bekommen. Firefox 7.1 bringt mich da zur Verzweiflung!

Ein php5.3.8 --Script verpasst ihm 2 Session-Cookies. Diese kommen auch an und werden gespeichert. Nur mit dem Wiederauslesen hapert es!

So ganz am Anfang gibt es ein
PHP-Code:
 session_start(); 
die Session-Cookies werden gesetzt mit

PHP-Code:
$_SESSION['lang']=$lang
in dem Moment sehe ich sie auch im Firefox, aber das Auslesen mit
PHP-Code:
 if (isset($_SESSION["lang"])) $my_lang=intval($_SESSION["lang"]); 
geht später daneben. Die Session-Variable sehe ich dabei noch im FF.
Cookies findet php auch nicht, obwohl sie da sind.

Unter Windows verhält sich FF wie erwartet, Konqueror verarbeitet auch sowohl Cookies als auch Session-Cookies.

Und stelle ich den FF auf "Cookies behalten bis zum Sitzungsende" statt "bis sie abgelaufen sind", ist die Welt in Ordnung! Aber dadurch gehen mir andere Settings verloren!

p.s. ich gebe via php kein Verfallsdatum für die session cookies an!

Nur das "normale" Cookie bekommt noch diesen hier verpasst:

PHP-Code:
$eintag=60*60*24;
setcookie ("snamen"$my_snamentime()+7*$eintag); 
Wie kann ich da Abhilfe schaffen?

Gruß,
Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss!
BlueJay ist offline   Mit Zitat antworten
Alt 25-02-2012, 18:18   #2
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
Bitte bedenke wenn die SESSION nicht als aller erstes (Script Header) bei einem neuen Seitenaufruf Re-Initialisiert wird ändert sich die SID.

Das heisst, du brauchst bei jedem neuen Seiten Aufruf eine Abfrage die - deine Session aufrecht erhält, dazu muss mindestens ein Parameter vorhanden sein.

PHP-Code:
if ( ! isset( $_SESSION[session_name()] ) )
{
   
$p = ( (int)$_SERVER["SERVER_PORT"] == 443 ) ? true false;
   
$s ".hostname.tld"// Der Punkt vorm Host ist wichtig!

   
session_set_cookie_params0"/"$s$p );

   if ( 
$p )
      
session_cache_limiter('private_no_expire');

   
session_start();

   if( 
strlensession_id() ) < )
      
session_regenerate_idtrue );

   
$_SESSION[session_name()]['LAST_USED'] = microtime();

__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
undefined ist offline   Mit Zitat antworten
Alt 26-02-2012, 16:07   #3
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
Na klar ist session_start der erste Aufruf im php-Script.

Mir geht es irendwie wie dem Francois auf dieser Seite:
http://php.net/manual/de/function.session-id.php

Dein Patch hat übrigens nichts gebracht.
Der Fehler tritt auch auf, wenn man bei Vorhandensein von Session-Variablen sich session_start() verkneift.

Die Sessions sind ja im Firefox angekommen. Firefox scheint sie nur nicht mehr absenden zu wollen, es sei denn, man streckt ihre Lebenszeit in den Firefox-Settings bis zu den Zeitpunkt, wo der Browser geschlossen wird.
Also, zwingt man den Browser dazu, die Sessions Cookies länger zu behalten, werden die Sessions in diesem Fall gesehen und korrekt ausgewertet.

Ich möchte die Daten ungern ins Formular einbauen müssen, da machen die Jungs und Mädels dann Quatsch damit! Aus dem Grund darf die Lebenszeit nicht länger sein als unbedingt nötig. Also weg damit, wenn der Server sagt: Nun ist Ende.

Möglicherweise gehört das Ganze ja in die "Browserabteilung". Dann bitte verschieben!

Gruß,
Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss!

Geändert von BlueJay (26-02-2012 um 16:24 Uhr)
BlueJay ist offline   Mit Zitat antworten
Alt 26-02-2012, 16:48   #4
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
Gebe mir mal den Seiten Link damit ich meinen Debugger drüber jagen kann.
__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
undefined ist offline   Mit Zitat antworten
Alt 26-02-2012, 17:19   #5
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
Hm, ist ein bisschen schwierig!

1. man hat mir mittlerweile den Firefox 10.0.2 untergejubelt.

2. Du musst zocken, und zwar z.B. http://gamecraft.de/gembusters/index.htm

Da ist es das Formular, was Dich zu einem Eintrag auffordert. Mit diesem Formular bekommst Du das erste Session-Cookie (Punktestand). Du gibst Deinen Namen an, das php-Script speichert Namen und Punkte und schickt Dir nochmal den Namen zwecks späterer Verwendung. Liest aber den Punktestand(Session) nicht aus.

Das funktioniert im Firefox 10 in opensuse 12 nur, wenn die Cookie-Verwaltung auf "Keep until I Close Firefox" steht.

Wünschenswert wäre aber: until they expire.

Chromium und Konqueror arbeiten hier übrigens wie gewünscht, so dass ich den Fehler in Firefox vermute.

Gruß,
Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss!
BlueJay ist offline   Mit Zitat antworten
Alt 26-02-2012, 17:24   #6
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
Du sendest einen Keks ohne Domaine !
Kein Guter Browser nimmt so etwas an.

Wenn du nach RFC Strict gehen willst dann verwende ".hostname.tld"
Der Punkt am Anfang ist wichtig!
__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
undefined ist offline   Mit Zitat antworten
Alt 26-02-2012, 17:28   #7
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
PPS: Warum verwendest du Cookies?
HTML5 session.storage macht genau das was du möchtest!
__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
undefined ist offline   Mit Zitat antworten
Alt 26-02-2012, 17:35   #8
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
PPS: zum ansehen mein Anhang und Sessen Expires Zeit stimmt auch nicht.
Angehängte Grafiken
Dateityp: jpg gamecraft0.jpg (101,5 KB, 8x aufgerufen)
__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
undefined ist offline   Mit Zitat antworten
Alt 26-02-2012, 18:47   #9
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
1. die Seiten, die auf das Script zugreifen, sind zum großen Teil erheblich älter als HTML5.

2. Ist dank php.ini domainmäßig richtig einsortiert.

3. Ein Teil der Variablen soll nur so lange als nötig leben, die kommen in Sessions. Ein andere Teil soll langlebig sein (Namen), der wird in normale Cookies verfrachtet. Ist der Name bekannt, geht das Script eine Abkürzung, ohne dass weitere Cookies oder Sessions benötigt werden. Deshalb ist dieser Fehler jetzt erst aufgefallen.

4. Session Expires Zeit, da scheint der Hund begraben zu sein.
Tja, was mit dem Indianer und seinen Settings passiert, unterliegt nicht meiner Kontrolle!
Mal sehen, ob ich das von hier aus umbiegen kann!

Dieses hier sowie Teile der php-FAQ scheinen nicht (mehr) zu funktionieren)
http://stackoverflow.com/questions/7...ession-cookies

Den Lifetime explizit auf 0 zu setzen, wie es für Sitzungsdaten üblich ist, und die Domeng mit reinzupacken hat nix gebracht.

Gruß,
Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss!

Geändert von BlueJay (26-02-2012 um 19:34 Uhr) Grund: weitere Versuche
BlueJay ist offline   Mit Zitat antworten
Alt 27-02-2012, 13:39   #10
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
Deine Cookie angaben stimmen noch nicht ganz
Du kannst zum Vergleich hier testen.

Bitte lese auch RFC 2965 Cookie Standard.
Webkit und Firefox sind hier extrem penible.

Und - es muss gehen - Sonst hätten mir meine Kunden, bei den ganzen Webseiten die ich verwalte schon die Tür eingerannt.
__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger
undefined ist offline   Mit Zitat antworten
Alt 28-02-2012, 12:40   #11
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
Wenn ich nach Cookies und RFC 2965 google, wird mir das immer als einer der Cookie-Standards angeboten, der sich nie durchsetzen wird.

Der Haken lag aber woanders, nämlich bei den Settings von Firefox:

Da hatte ich zunächst bei Cookies Accept from sites den Haken weggemacht und als Ausnahme meine Seite mit Allow eingegeben.

Danach hatte ich Accept from sites wieder angeklickt, aber die Ausnahme nicht gelöscht. Die standen trotzdem auf Allow.
Da hatte ich den Ärger mit den geplätteten Session Cookies.

Ich habe die Ausnahmen gelöscht, FF neu gestartet, und von diesem Zeitpunkt an funktionierte alles wieder wie erwartet.

Da war es wohl doch der Cookie-Manager von FF 10.0.2!

Gruß,
Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss!
BlueJay ist offline   Mit Zitat antworten
Alt 01-03-2012, 20:30   #12
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
Zitat:
Zitat von undefined Beitrag anzeigen
Deine Cookie angaben stimmen noch nicht ganz
mit dem explizitem Angeben von Server und Pfaden habe ich mir ganz schön Ärger eingehandelt!

Musste erst mal checken, dass die Firewall in die Suppe spuckte, wenn ein Teil der Cookies auf www.hostname.tdl war und der andere auf hostname.tld! Und dabei hatten sich alle aus $_SERVER bedient!

Das mit dem Punkt vor der Domeng war auch noch so eine Sache, das darf wohl nur beim Session-Cookie so sein, nicht beim normalen (langlebigen) Cookie. Den hat er nämlich anschließend nicht gefunden.

Na, jetzt ist alles geupdatet und läuft unter Opensuse/Firefox 10

Jedenfalls 'ne Menge gelernt!

Gruß,
Ulrike
__________________
Eigentlich ganz einfach, wenn man's weiss!
BlueJay ist offline   Mit Zitat antworten
Alt 02-03-2012, 15:04   #13
undefined
Registrierter Benutzer
 
Benutzerbild von undefined
 
Registriert seit: 01.03.2004
Beiträge: 1.255
www ist ein Alias und hat eigentlich in den Cookie Domänen Angaben nichts zu suchen (Dafür steht der Punkt am Anfang). Das gilt für alle Cookie Varianten.
Der Punkt besagt das ab hier weitere Aliase und Unter Domänen folgen.
Noch mal aufgedröselt. Punkt wird in der Namens Auflösung auch als root bezeichnet.
Code:
// <root><hostname><root><topleveldomain>
.hostname.tld
Daraus ergibt sich für die Namens Auflösung ein Bereich von zwei Blöcke. Traditionell ist hierbei die TLD nicht zugänglich ( Ping mal eine TLD ). Also schneidet der Browser ab.
  • <root><hostname>
  • <root><topleveldomain> ## wird nicht ausgewertet
Soll heißen - Das wenn du auf der Obersten Domäne ein Cookie vergibst dieses auch für Sub-Domain gültig ist.
Beispiel:
  • .gamecraft.de ## Für alle Subdomains zum LESEN zugänglich
  • .games.gamecraft.de ## kann erben (LESEN) aber nur an seine SubDomains weiter vererben
Die meisten Webseiten geben so die Sprache der Browser weiter.
Weil Firefox/IE und Konsorten - warum auch immer. Im User Agent String die Sprachangaben nicht mehr mit geben.
Obwohl das in meinen Augen Schwachsinn ist - mit JavaScript komm ich eh daran :-)
__________________
mfg undefined
--
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
xhtml Debugger

Geändert von undefined (02-03-2012 um 15:17 Uhr) Grund: Nachtrag SubDomains
undefined ist offline   Mit Zitat antworten
Alt 03-03-2012, 10:17   #14
BlueJay
Registrierter Benutzer
 
Benutzerbild von BlueJay
 
Registriert seit: 27.08.2004
Beiträge: 822
Zitat:
Zitat von undefined Beitrag anzeigen
www ist ein Alias und hat eigentlich in den Cookie Domänen Angaben nichts zu suchen (Dafür steht der Punkt am Anfang). Das gilt für alle Cookie Varianten.
Der Punkt besagt das ab hier weitere Aliase und Unter Domänen folgen.
Noch mal aufgedröselt. Punkt wird in der Namens Auflösung auch als root bezeichnet.
Sag das mal FF10!

Da hatte ich Cookies zum Teil doppelt unter www*.gamecraft.de und gamecraft.de (Host-Variable) Einer wurde gesehen, der andere nicht. Da half auch kein Punkt.

(natürlich ohne Sternchen, aber der Editor macht sonst einen Link draus)

Zu sehen unter
ffcookies.jpg

Und php schnappt sich als Host-Variable das, was der FF ihm liefert.
Das nahm ich bisher für meine Cookie-Parameter.

Böse Falle, wenn man über verschiedenen Links hereinschneit!
__________________
Eigentlich ganz einfach, wenn man's weiss!

Geändert von BlueJay (03-03-2012 um 10:30 Uhr)
BlueJay ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2014, vBulletin Solutions, Inc.