IE und Sessions
Nico
- php
Hallo!
Wenn man sich auf der Seite <nonamefound.no.funpic.de/monika/index.php> anmeldet, wird die Seite login.php aufgerufen. In der wird dann die Kundennr, die per POST übermittelt wird in eine Session eingetragen:
<?php
session_start();
$_SESSION['kundennr']=$_POST[kundennr];
Dann wird anhand der Kundennr, die in der Session ist, der Name herausgefunden und hinter "Hallo, " geschrieben. Im FireFox klappt das. Blos im IE schreibt der nix dahinter. Ich glaube, das liegt daran, weil er entweder eine neue Session macht, oder überhaupt keine.
Wenn sich das jemand mal ansehen will, muss er sich aber vorher mal anmelden (Kunde werden). Das liegt daran, weil beim letzten mal ganz schlaue Leute die Mitgliedschaft beendet haben und somit alle anderen keinen Zugriff mehr hatten.
Ich hoffe, es weiß jemand, woran das liegt.
Nico
Hi,
Wenn man sich auf der Seite <nonamefound.no.funpic.de/monika/index.php>
Beachte bitte fag-19
$_SESSION['kundennr']=$_POST[kundennr];
^ da ^ und da fehlt etwas.
MfG Hopsel
Hallo!
Der Link war mir wohl nicht ganz so geglückt. Tut mir leid.
$_SESSION['kundennr']=$_POST[kundennr];
^ da ^ und da fehlt etwas.
Ja stimmt. Aber wenn ich da noch die ' hinsetze, wird's auch nicht besser. Der FF kann's ja auch.
Nico
Hi,
Der FF kann's ja auch.
nichts, was mit PHP zu tun hat, wird von irgend einem Browser gemacht. Du reagierst offenbar auf unterschiedliche Requests falsch.
Cheatah
Hallo!
In der login.php steht folgendes:
session_start();
$_SESSION['kundennr']=$_POST['kundennr'];
Da wird ein Frameset erstellt. Und in dem Fenster, das danm "Hallo, $name" anzeigen soll, steht das:
session_start();
$user=$_SESSION['kundennr'];
$verbindung=mysql_connect("localhost","Benutzer","PW");
mysql_select_db("nonamefound");
$name="SELECT Vorname, Nachname FROM kunden WHERE kundennr="$user"";
$nameerg=mysql_query($name);
$name=mysql_fetch_row($nameerg);
$name=$name[0]." ".$name[1];
echo "<center><h2>Hallo, $name!</h2></center>";
Du reagierst offenbar auf unterschiedliche Requests falsch.
Da würde der FF doch auch das Problem haben, oder?
Nico
Hi,
In der login.php steht folgendes:
auf welchen Request reagiert dieses Script?
Da wird ein Frameset erstellt.
Dieser Mangel ist behebbar.
Du reagierst offenbar auf unterschiedliche Requests falsch.
Da würde der FF doch auch das Problem haben, oder?
Das "unterschiedlich" sollte darauf hinweisen, dass der Request des Firefox sich augenscheinlich von dem des IE unterscheidet.
Cheatah
Hallo!
In der login.php steht folgendes:
auf welchen Request reagiert dieses Script?
Auf die Eingaben in dem Formular auf der Startseite.
Da wird ein Frameset erstellt.
Dieser Mangel ist behebbar.
Ist denn ein Frameset so schlimm?
Nico
Hi,
In der login.php steht folgendes:
auf welchen Request reagiert dieses Script?
Auf die Eingaben in dem Formular auf der Startseite.
und wie sieht der Request dann aus?
Da wird ein Frameset erstellt.
Dieser Mangel ist behebbar.
Ist denn ein Frameset so schlimm?
Ähm, Du bist noch nicht lange im Geschäft, oder? Ein Frameset ist so ziemlich das Schlimmste, was man einer Website antun kann.
Cheatah
Hallo!
und wie sieht der Request dann aus?
Ähm... request? meinst du jetzt das $user=$_POST['kundennr']; ? Oder was?
Und das frameset beseitige ich dann sobald ich/wir das Problem hier gelöst habe(n).
Nico
Hi,
und wie sieht der Request dann aus?
Ähm... request? meinst du jetzt das $user=$_POST['kundennr']; ? Oder was?
ich meine damit die Daten, die der IE an Deinen Server sendet. An irgend einer Stelle unterscheidet sich dies von dem, was ein Mozilla verschickt, was irgendwo in Deiner Programmlogik zu etwas Falschem führt.
Und das frameset beseitige ich dann sobald ich/wir das Problem hier gelöst habe(n).
Es freut mich, das zu hören.
Cheatah
Hallo!
ich meine damit die Daten, die der IE an Deinen Server sendet. An irgend einer Stelle unterscheidet sich dies von dem, was ein Mozilla verschickt, was irgendwo in Deiner Programmlogik zu etwas Falschem führt.
Also sozusagen das Formular, oder?:
<form action="login.php" method="post"><b>Login:</b><br>Kundennummer:<br><input name="kundennr" size=6><br>Passwort:<br><input type="password" name="pass" size=15><br><input type="submit" value="Login">
Da fällt mir grade auf... ich hab das </form> vergessen. Aber mit geht's auch nicht.
Nico
Hallo,
ich meine damit die Daten, die der IE an Deinen Server sendet. An irgend einer Stelle unterscheidet sich dies von dem, was ein Mozilla verschickt, was irgendwo in Deiner Programmlogik zu etwas Falschem führt.
Was gibt der Kunde beispielsweise bei Kundennummer ein?
Lass Dir doch einfach mal ausgeben, was bei $_POST["kundennr"] ankommt. Vergleiche dann, ob vom IE etwas anderes kommt als vom Firefox.
viele Grüße
Axel
Hallo!
Was gibt der Kunde beispielsweise bei Kundennummer ein?
Eine ganzzahlige Zahl.
Beim FF und IE kommen die gleichen Werte an.
Nico
Hallo,
Beim FF und IE kommen die gleichen Werte an.
Bei $_POST["kundennr"], gut.
Und wie sieht es in der *.php aus, die im Frame angefordert wird? Was kommt da als $_SESSION["kundennr"] an?
Um gleich die nächste Frage zu beantworten:
Wenn da was unterschiedliches ankommt: Wie wird die Session erhalten? Per Cookie oder per URL? Wenn per Cookie, was ist als Cookie-Behandlung für den IE eingestellt?
Wenn da beim IE was anderes ankommt, dann müsste ja aber spätestens hier:
$name=$name[0]." ".$name[1];
ein Fehler erzeugt werden, weil in der Datenbank ja gar kein $user gefunden werden dürfte.
viele Grüße
Axel
Hallo!
Und wie sieht es in der *.php aus, die im Frame angefordert wird? Was kommt da als $_SESSION["kundennr"] an?
Da kommt gar nix an.
Um gleich die nächste Frage zu beantworten:
Wenn da was unterschiedliches ankommt: Wie wird die Session erhalten? Per Cookie oder per URL? Wenn per Cookie, was ist als Cookie-Behandlung für den IE eingestellt?
Wie die Session erhalten wird, hab ich keine Ahnung. Im IE ist eingestellt, dass der so ziemlich fast alle Cookies sperrt.
Wenn da beim IE was anderes ankommt, dann müsste ja aber spätestens hier:
<$name=$name[0]." ".$name[1];
ein Fehler erzeugt werden, weil in der Datenbank ja gar kein $user gefunden werden dürfte.
Richtig. Da kommt eben nix. Das war ja auch der Anlass, diesen Thread zu eröffnen.
Nico
Hallo,
Wenn da was unterschiedliches ankommt: Wie wird die Session erhalten? Per Cookie oder per URL? Wenn per Cookie, was ist als Cookie-Behandlung für den IE eingestellt?
Wie die Session erhalten wird, hab ich keine Ahnung.
Es gibt nur die beiden Möglichkeiten http://de.php.net/manual/de/ref.session.php. Wenn die SID per URL übergeben wird, dann solltest Du diese in den URLs, die der Browser anzeigt, auch sehen können, wenn nicht, dann erfolgt die Übetragung per Cookie bzw. wird versucht.
Im IE ist eingestellt, dass der so ziemlich fast alle Cookies sperrt.
Du wartest jetzt nicht wirklich darauf, dass ich Dir empfehle das (testweise) mal zu ändern?
viele Grüße
Axel
Hallo!
Du wartest jetzt nicht wirklich darauf, dass ich Dir empfehle das (testweise) mal zu ändern?
Nee. Also muss ich die SessionID per URL übergeben, sodass das auch bei denen funktioniert, die Cookies sperren? Das wäre dann also so:
URL=login.php?SID=...
Oder? Aber wie verklickere ich dem denn dann, dass er dann die Session nehmen soll, deren SessionID an der URL hintendran hängt. Das mit $_GET... ist mir ja klar. Aber wie wählt der denn die Sessions dann aus?
Nico
hi,
Nee. Also muss ich die SessionID per URL übergeben, sodass das auch bei denen funktioniert, die Cookies sperren? Das wäre dann also so:
URL=login.php?SID=...
Oder? Aber wie verklickere ich dem denn dann, dass er dann die Session nehmen soll, deren SessionID an der URL hintendran hängt. Das mit $_GET... ist mir ja klar. Aber wie wählt der denn die Sessions dann aus?
du spielst offenbar mit einer technik rum, mit der du dich noch kaum beschäftigt hast.
bitte beschäftige dich intensiver mit http://www.php.net/manual/de/ref.session.php - das sollte die fragen eigentlich beantworten.
gruß,
wahsaga
Hallo!
du spielst offenbar mit einer technik rum, mit der du dich noch kaum beschäftigt hast.
Naja. Mit PHP hab ich erst dieses Jahr angefangen und Sessions interessieren mich auch erst seit paar Wochen.
Ich habe mich nun lieber entschieden, die Sessions durch Cookies zu übertragen/speichern. Aus den in http://www.php.net/manual/de/ref.session.php genannten Gründen. Ich hab also einfach eine Anmerkung hingesetzt, dass der Browser Cookies annehmen muss. Für die älteren Leute, die ja Hauptzielgruppe sind, hab ich dann eine Extraseite, in der erklärt wird, wie man seinem Browser klarmacht, dass er gefälligst Cookies anzunehmen hat.
Danke für die viele Hilfe.
Ach und das Frameset wird also demnächst verschwinden.
Nico
Hi,
ich meine damit die Daten, die der IE an Deinen Server sendet. An irgend einer Stelle unterscheidet sich dies von dem, was ein Mozilla verschickt, was irgendwo in Deiner Programmlogik zu etwas Falschem führt.
Also sozusagen das Formular, oder?:
nein, den Request. Also das, was zwischen dem Formular und Deinem PHP-Script passiert.
<form action="login.php" method="post"><b>Login:</b><br>Kundennummer:<br><input name="kundennr" size=6><br>Passwort:<br><input type="password" name="pass" size=15><br><input type="submit" value="Login">
Beschäftige Dich mit dem <label>-Element und CSS.
Da fällt mir grade auf... ich hab das </form> vergessen.
Validieren, validieren, validieren :-)
Cheatah
Hallo,
nein, den Request. Also das, was zwischen dem Formular und Deinem PHP-Script passiert.
Worauf willst Du hinaus? Welche Möglichkeit glaubst Du hat er, sich den HTTP-Request des Browsers, möglichst inklusive mitgesendeter Cookie-Daten, speziell des IE, komplett anzeigen zu lassen?
viele Grüße
Axel
Hi,
Worauf willst Du hinaus?
https://forum.selfhtml.org/?t=103390&m=636724
Welche Möglichkeit glaubst Du hat er, sich den HTTP-Request des Browsers, möglichst inklusive mitgesendeter Cookie-Daten, speziell des IE, komplett anzeigen zu lassen?
Beispielsweise eine lokale Firewall. Ob er sich aber die Requests in ihrer Reinform anzeigen lässt oder nicht, ist nur mäßig relevant. Es gibt augenscheinlich Unterschiede, die soll er finden.
Cheatah