sessions deaktivieren?

ma-gic

Mitglied
Hi, ich hab ein Login-system mit mysql usw geschrieben. alles wird unterstützt von session variablen.

Das funktioniert ja ganz gut, das prob is jetzt es geht nur bei manchen computern. Einige meiner Freunde haben gemeldet, dass es bei ihnen nicht funktioniert, sich einzuloggen. Kann es sein das in dem Browser die Sessions deaktiviert sind? kann man das? Gibts eine bessere Möglichkeit als sessions?

thx im voraus ma-gic
 
Hallo,

Session sind eine gute Wahl, sofern sicher programmiert auch eine saubere!

Das Problem kann mehrere Ursachen haben und diese können auch ineineander verwoben sein:

Nutzt du zum Beispiel ein eingeschaltetes session.use_trans_sid =1
werden die Session-Daten an die URL gehangen. Das gibt Probleme, wenn sich danach ein Framset öffnet, weil die Daten sozusagen "im Frame" aber nicht in den Fenstern gebunden werden. Die Session ist damit bei einer Abfrage in EINEM bestimmten Fenster nicht initialisiert.

Nutzt du Sie nicht (session.use_trans_sid =1), würde ich dringend Sesssion-Cookies empfehlen. Dann sind auch Frameprobleme eliminiert. Es liegt dann am CLient, diese einzuschalten oder nicht aber auch das System nicht zu nutzen. In der Regel sind Session-Cookies aber "sicher" und komfortabel, wenn auch ein wenig aufwendiger in der Programmierung.

Ergo, ich würde die Sessions beibehalten, nur anders "händeln" )< schreibt man das so?). Eine weitestgehend Clientunabhängige Lösung sind eben Cookies, die die meisten Browser unterstützen (es sei denn jemand benutzt noch Mosaic!).

Ich hoffe, soweit helfen zu können, wenn nicht, nochmal posten!

Greetz
crAte
 
session.use_trans_sid ist eh unsicher, das sollte man am besten deaktivieren, man gibt zu schnell die SessionID mit einem Link weiter und ermöglicht anderen Personen so zugang zu einer evt noch aktiven Session.
Am besten deaktiviert man es per
PHP:
<?php
ini_set("session.use_trans_sid",0);
ini_set("session.use_cookies",1);
?>

Jeder halbwegs vernünftige User hat Cookies an, wenn man sich nicht sicher ist, kann man folgendes machen:
PHP:
<?php
function UseUrlSid(&$use_url_trans_sid) {
    global $_COOKIE;
    setcookie("CookieOnOff","On",time() + 60);
    if ($_COOKIE["CookieOnOff"] == "On") {
        $use_url_trans_sid = 0;
    } else {
        $use_url_trans_sid = 1;
    }
}

// Anwendung

UseUrlSid(&$use_url_trans_sid);

echo "<a href=\"bla.php" . ($use_url_trans_sid == 1 ? "?sid=" . $PHPSESSID : "") . "\">bla</a>";
?>

Ich hoffe das geht, hab hier grade keinen Apache zum testen :) Alles im Forum entwickelt ;)

MfG
Johannes *ächz*
 
Zuletzt bearbeitet:
die abfragen kannst du dir ja auch sparen, häng doch gleich an jeden link und jedes form die SID manuell dran, dann musst du dich nicht mit cookies ja/nein und dem langsamen trans-sid rumärgern, kannst dir das php_ini_set sparen und alles wird gut ;)
 
Habe ich nicht eben erklärt, wieso man die SID nicht anhängen sollte?
Lesen - Denken - Schreiben :p
Und wieso sollte man die SID überall manuell dranhängen?? session.use_trans_sid funkt wunderbar ...
 
Habe ich nicht eben gesagt dass du das viel zu umständlich machst ? ;)
Cookies brauchst du doch nicht, wenn du überall die SID dranhängst.

und trans-sid ist einfach mist! Bei größeren projekten nicht zu benutzen, weils einfach schweinelahm ist, wenn php den ganzen htmlcode nach links durchforsten muss.

mehr wollte ich nicht sagen ;)
 
Zuletzt bearbeitet von einem Moderator:
Zurück