PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Session / Cookies Internet Explorer


JKuehl
18.04.2007, 20:20:06
Hallo ich habe ein feines Problem... Im Mozilla Firefox werden Sessionvariablen einwandfrei gespeichert und über Header-Sprünge etc. beibehalten. Der Internet Explorer jedoch löscht fleißig Cookies und oder den Session-Inhalt.

Selbst die niedrigste Einstellung im IE6 brachte keine Besserung.

Gibts dafür eine Lösung?
session_name('sessione');
session_start();

sind in jeder der verwendeten PHP-Dateien drin.

Gibts eine Möglichkeit eventuell ohne Cookies zu arbeiten oder die Cookies im IE forciert zu erlauben?

feuervogel
18.04.2007, 20:44:28
hervorragendes beispiel-script. durch welches der fehler reproduziert werden kann, ohne dass überflüssiges gezeigt wird ;-)

liegt es vielleicht daran, dass deinem header("Location...ein exit folgt, wovor eigentlich ein session_write_close() stehen sollte?

JKuehl
18.04.2007, 21:31:06
test.php

<?php
session_start();

if (!isset($_SESSION['loesung']))
{
$loesung = "Bitte hier die L&ouml;sung eingeben";
}
....





...
<input id="loesung" name="loesung" type="text" value="<?= $loesung; ?>"
...





if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
...

$loesung = $_POST['loesung'];
$_SESSION['loesung'] = $loesung;
f (isset($submit))
{
...
header('Refresh: 0; URL=test.php');
....
}
}



verwende weder Exits, noch write_close(); bleibt alles auf der gleichen Domain
lediglich am Ende aller Eingaben und nachdem alles in der Datenbank gelandet ist, wird die session geschlossen.

habe noch was rausgefunden:
mit XAMPP lokal läuft es ebenso nicht, weder FF noch IE - auch nicht wenn ich die trans-sid anschalte.

Tollerweise lief es genau in einer Kombination "Webserver auf dem ich entwickelt habe" + "Firefox 2.0"....


Dort tat es genau was es sollte: beim header redirect die Inputfelder mit den geposteten ( bzw. Session ) variablen zu füllen.

xabbuh
18.04.2007, 21:36:24
Akzeptiert dein Internet Explorer überhaupt Cookies oder ist dies deaktiviert?

JKuehl
18.04.2007, 21:46:16
Ich hab gerade wohl was herausgefunden woran es liegt..
ISSET wird nicht korrekt ausgewertet!
Wie kann das sein?

ich überprüfe per
if (isset($test))


ob in dem dem POST vorhergehenden Form das submit-Feld test aktiviert wurde - leider scheint das nur genau in der einen Kombination Webserver+FF zu funktionieren. jemand ne Idee?

feuervogel
18.04.2007, 21:54:56
variablen die per POST-methode übermittelt werden, stehen im array $_POST

JKuehl
18.04.2007, 22:33:49
Kommando zurück.. ich hab glaub ne falsche Syntax für location...

feuervogel
18.04.2007, 22:36:50
es heißt ja auch nicht header("location=bla.php"); sondern (http/1.1 fordert eine absolute adresse) header("Location: http://www.bla.com/bla.php");

auch hier dürfte der : statt des = einen markanten unterschied ausmachen.

JKuehl
18.04.2007, 23:36:31
Es scheint noch ein ganz anderes Problem zu sein. Der IE scheint submit-Variablen komplett zu verschlucken.

<input type="image" src="images/abschicken_button_01.jpg" name="submit_s" value="Antwort abschicken" alt="[Antwort abschicken]" title=" Antwort abschicken " onfocus="if(this.blur)this.blur();"


print_r($_POST)
FF wirft die Variable einwandfrei raus mit Belegung , der IE belegt diese garnicht erst, ein isset ergibt, dass $_POST('submit_s') nicht belegt ist!

ideen?

JKuehl
19.04.2007, 00:00:03
habe jetzt mal ein hidden-field dazugefügt, was auch einwandfrei im ie übergeben wird... allerdings kann ich damit schlecht 3 submits unterscheiden!

rambi
19.04.2007, 00:17:13
FF wirft die Variable einwandfrei raus mit Belegung , der IE belegt diese garnicht erst, ein isset ergibt, dass $_POST('submit_s') nicht belegt ist!
In diesem Fall verhält sich der IE korrekter als der FF!!

Bei einem solchen Input:
<input type="image" src="images/abschicken_button_01.jpg" name="submit_s"

Kannst du nach $_POST['submit_s_x'] abfragen!
Problemlos bei selfhtml nachzulesen..

JKuehl
19.04.2007, 00:29:16
was genau bedeutet das _x? bzw. wo kommt es her?

Habe nachgelesen - _x und _y sind wohl die koordinaten, die brauche ich aber garnicht.. aber nagut, sofern die _x und _y NUR belegt werden, wenn submit_s aufgerufen wurde.. wunderbar dann prüf ich danach!

feuervogel
19.04.2007, 08:56:09
Es scheint noch ein ganz anderes Problem zu sein. Der IE scheint submit-Variablen komplett zu verschlucken.

<input type="image" src="images/abschicken_button_01.jpg" name="submit_s" value="Antwort abschicken" alt="[Antwort abschicken]" title=" Antwort abschicken " onfocus="if(this.blur)this.blur();"


print_r($_POST)
FF wirft die Variable einwandfrei raus mit Belegung , der IE belegt diese garnicht erst, ein isset ergibt, dass $_POST('submit_s') nicht belegt ist!

ideen?

man lese:

Bei grafischen Buttons wird nicht nur der eventuell vorhandene Wert im value Attribut übertragen, sondern zusätzlich auch die Koordinaten des Klicks auf das Bild. Das heißt es werden zwei zusätzlich Werte abgeschickt in der Form name.x und name.y (in PHP wird daraus name_x/name_y). Der IE sendet nur die Koordinaten.


http://de.selfhtml.org/html/formulare/formularbuttons.htm

JKuehl
21.04.2007, 19:30:22
Das hats jedenfalls schlussendlich getan! Die Anwendung läuft ( fehlerfrei ). Vielen Dank an Alle!