ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
1194
1194
EMPFEHLEN
-
Hi Mit-Tutorianer,
habe da ein kleines aber dringendes Problem: Bei einem Projekt von mir soll das Login-System ab jetzt nur noch mit Cookies anstatt von der Session in der URL funktionieren. (eBay lässt grüßen)
Dafür habe ich in der php.ini folgende Werte gesetzt:
Am Script selbst habe ich nichts geändert....PHP-Code:session.use_cookies = 1
session.use_only_cookies = 1
session.use_trans_sid = 0
session.auto_start = 0
session.cookie_path = /
session.cookie_domain =
Problembeschreibung:
- Ich fülle das Formular (auf intern.php) aus und schicke es ab.
- Die Daten gehen an die Datei login.php per POST.
- Dort werden sie überprüft und bei Erfolg wird der Besucher auf die Seite intern.php weitergeleitet
- Nun ist $_SESSION["eingeloggt"] auf "1" gesetzt...der Besucher ist im internen Bereich
- Im Firefox und im IE wird auch das Cookie mit der Session-ID gesetzt
- Nun klicke ich auf eine andere Seite und *schwups* habe ich die Session verloren

Meine Vermutung: Der Server hat keine Berechtigung sich das Cookie wieder zu holen...session.cookie_domain habe ich nicht gesetzt, da auf dem Server sehr viele Domains sind und wenn ich es leer lasse automatisch der Host im Cookie steht.
Ist da ein grober Fehler erkennbar?
Bin ich auf dem richtigen Weg?
mfg
sam
-
Kann das vielleicht an session.cache_limiter liegen?
Bin hier langsam richtig am verzweifeln...
mfg
sam
-
So, um diesen Monolog mal ein wenig weiterzuführen: Session wird erstellt, ich kann diese auch mit Daten füllen, aber beim nächsten Seitenaufruf bekommt der User wieder eine neue Session-ID und verliert dadurch natürlich alle Daten, obwohl er bereits ein Cookie mit einer gültigen Session-ID besitzt.
Kann ich das irgendwie umgehen?
Soll ich die internen Funktion von PHP deaktivieren und die Cookies selbst setzen?
Wie kann ich dem Server sagen, welchem User welche Session-ID gehört, wenn ich diese aus dem Cookie lese?
Hilfe!
mfg
sam
-
du musst so machen:
PHP-Code:session_start();
if (!isset($_SESSION['...']))
{
$_SESSION['...'] = ...;
}
else
{
//normale seite
}
-
03.01.05 21:57 #5
- Registriert seit
- Jan 2004
- Beiträge
- 1.072
Mach mal ein print_r($_COOKIE) und ein print_r($_SESSION) in deine Scripts, um den Fehler weiter einzugränzen. Dann siehst du, ob der Session-Cookie auf wirklich übergeben wird, und falls ja, was in deinem Session-Array steht.
-
Das habe ich beides schon probiert mit folgendem Ergebnis:
Auf der ersten Seite, die nach der login.php folgt, ist alles ok.
Cookie ist gesetzt und die Session ist mit meinen Daten gefüllt.
Nun klicke ich auf einen Link (in dem ich natürlich mittlerweile keine Session-ID mehr übergebe) und schon wird für den User eine neue Session gestartet und ein neues Cookie gesetzt...leider für eine völlig leere Session.
Meine Vermutung ist weiterhin, dass der Server das Cookie nicht lesen kann und deshalb die Verbindung Besucher <-> Session verliert...warum, ist mir allerdings ein großes Rätsel
mfg
sam
-
04.01.05 09:16 #7
- Registriert seit
- Jan 2004
- Beiträge
- 1.072
Das Problem wird eher sein, dass der Browser das Cookie nicht mitschickt. Das solltest du dann überprüfen.
-
Habe schon div. Browser probiert (IE,FF,Opera)...jedes Mal mit dem gleichen Ergebnis.
Zitat von Oliver Gringel
Wie kann ich denn prüfen, ob mein Browser das Cookie mitschickt?
mfg
sam
-
Natürlich per $_COOKIE
Zitat von Constantin Vellenzer

War wohl ein wenig zu früh für mich
Habe eine Testseite gebastelt um zu sehen was da überhaupt abgeht.
Nachdem mich die login.php per Meta-Refresh nach erfolgreichem Login auf Seite 1 weiterleitet sehe ich folgendes:
Wie man sieht: Alles ist okay. Cookie wurde gesetzt, wieder übertragen und enthält auch die richtige Session-ID.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Session-Name: s Session-ID: 448bd871ef03f2f57b490457bda73613 _SESSION: Array ( [eingeloggt] => 1 [id] => 5 ) _COOKIE: Array ( [s] => 448bd871ef03f2f57b490457bda73613 )
Nun klicke ich auf einen Link, der mich auf Seite 2 führt.
Dort wartet folgende Seite auf mich:
Wie man sieht....sieht man nichtsCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Session-Name: s Session-ID: 61f3c72b4af23d24f9552fd9af609909 _SESSION: Array ( ) _COOKIE: Array ( [s] => 448bd871ef03f2f57b490457bda73613 )

Cookie hat noch die alte Session, wurde auch übertragen, aber der dumme Server startet eine neue Session...wieso?
Ich glaube mittlerweile, dass das an der Konfiguration der PHP.INI liegt, da mein osCommerce gleiche Symptome aufweist...da ist der Warenkorb auch immer wieder leer, wenn ich weiter einkaufen will.
Leider findet man zur Konfiguration der PHP.INI für Sessions mit Cookies im Netz relativ wenig.
mfg
sam
-
Nur so eine Idee, ich hatte mal ein ähnliches Problem:
Hast Du ein SSI-include von php-Seiten?
Edit: ähm, sorry, bl.. ausgedrückt, nochmal neu
Hast Du eine index.html, die nur daraus besteht, dass die index.php included wird (über .htaccess-"SSI auch in html-Seiten ausführen"-Änderung)?
Wird hierbei die index.html verlinkt, geht meist die session verloren und wird auf jeder Seite neu gesetzt.
Setzt Du hingegen mod_rewrite ein, müsste es dann einwandfrei funktionieren.
Wenn meine Idee völlig daneben liegt, gebt bitte Bescheid.
Schöne Grüsse,
AchimGeändert von achimj (04.01.05 um 14:25 Uhr)
www.ajc.de
-
Danke für den Versuch, aber so etwas kommt bei mir nicht zum Einsatz.
Zitat von achimj
Habe es gerade eben zum Laufen gebracht.
Das Problem lag nicht im Script, wie bereits vermutet, sondern in der verflixten php.ini
session.referer_check = 1 will nicht funktionieren.
session.referer_check = 0 auch nicht.
session.referer_check = geht
Ich kann es mir nicht erklären, aber ich bin froh, dass es wieder alles rennt.
Danke an alle hier für ihre Mühe!
mfg
sam
Ähnliche Themen
-
session_start macht plötzlich Probleme + Session geht verloren
Von stega im Forum PHPAntworten: 8Letzter Beitrag: 23.06.08, 21:09 -
Session SID geht bei include verloren
Von abakuz im Forum PHPAntworten: 7Letzter Beitrag: 14.09.06, 19:51 -
Session in Frame geht verloren
Von gwittmann im Forum PHPAntworten: 1Letzter Beitrag: 25.05.05, 11:53 -
session_start() erzwingeb, dass keine Cookies gesetzt werden aber wie?
Von danielmueller im Forum PHPAntworten: 2Letzter Beitrag: 10.10.04, 09:00 -
Cookie wird bei Session nicht richtig gesetzt
Von Dick Starbuck im Forum PHPAntworten: 9Letzter Beitrag: 27.12.02, 11:07





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren