LoginSystem mit Sessions gänzlich ohne Cookies!

und da es leider net.. possible dass auf m richtigen i-net server trotzdem ?
Deutsche Sprache - Schwere Sprache ! Kauf dich ein Päckchen Deutsch, hat mich auch gehelft !

Und vor allem:
Bitte achte auf eine korrekte Grammatik und Rechtschreibung (inkl. Groß-/ Kleinschreibung) und eine sinnvolle, klare Fragestellung bzw. Antwort. Mehr dazu findest Du in unserer Netiquette.

Nix für ungut, aber bei sowas kriegt man ja Augenkrebs...
Gruss, Funky
 
Stephanmaster:

1. Die von mir beschriebene Methode habe ich soeben mit fünf verschiedenen Konfigurationen getestet, jeweils mit dem gleiches Ergebnis: es funktioniert.

2. Schreib endlich in einem anständigen Deutsch, sonst wirst du hier nicht mehr glücklich...
 
Sorry,... war vorhin in Eile, weil ich zur Arbeit musste, und noch schnell ne Message schreiben wollte.

Also,... Finde es erstmal sehr nett, dass ihr mir hier helfen wollt :) Danke schonmal.
Ich fasse jetzt nochmal zusammen, was ich bis jetzt alles gemacht habe.


Ich habe nach folgendem Tutorial : http://www.tutorials.de/forum/showthread.php?p=677505
Alle Dateien, Datenbanken, Tabellen, etc. erstellt, eben wie es das Tut verlangte, und habe diese dann abgespeichert.

Des Weiteren verfüge ich über XAMPP, die neuste Version, auf meinem Rechner. Dort habe ich all die mit Hilfe des Tut erstellten Dateien in den 'htdocs' Ordner hineinkopiert.
(Denke es weiß hier jeder, aber dort kommen alle Dateien hinein, die man im Localhost aufrufen möchte... htmls, phps etc.)

Nun habe ich die Php.ini im Ordner c:/apachefriends/xampp/apache/bin/
folgendes angeglichen:
Code:
session.use_trans_sid = 1  
session.use_cookies = 0
wie Matthias (reima) es mir gesagt hatte.


Nun waren alle Vorbereitungen getroffen. Ich habe die intern.php folgendermaßen geöffnet:
http://localhost/loginsystem/intern.php
Wie gewünscht, wird die Anzeige aufgrund fehlender Login-Daten unterbunden, und wurde zu einer anderen Datei weitergeleitet, wo ich nun die Login-Daten admin:admin eingab.

Wenn die Cookies aktiviert waren, konnte ich mich auch einloggen. Mir wurde jedoch keine SID in der URL angezeigt...
wenn die Cookies gesperrt waren, konnte ich mich nicht einloggen... es passierte einfach nichts. ich wurde immer wieder zum Formular zum eintragen meiner Login-Daten weitergeleitet! :( And that's the whole problem...


Ich hoffe ihr könnt mir nun weiterhelfen, und ich entschuldige mich für die vorhergehende miserable und peinlich schlechte Rechtschreibung!


Mit freundlichen Grüßen
Stephan Hofmann


P.S. Zum Besseren Verständnis noch ein paar Daten:
1. Das ist die PHP Info von dem PHP das auf meinem PC installiert ist:
http://ried-action.de/phpinfo.htm
2. Das ist die bereits veränderte php.ini
http://ried-action.de/php.ini.txt
 
Hi @ all

Ich hole mal diesen Thread wieder nach vorne, da ich im Moment gerade genau das gleiche Problem habe.

Login mit Cookies: Kein Problem
Login ohne Cookies, auch mit den Änderungen in der php.ini und anschließendem Neustart von XAMPP: nicht möglich; man bekommt einfach wieder das leere Formular angezeigt.

Hat jemand zufällig inzwischen eine Idee woran dies liegen könnte?

Greets Yoshi2k
 
Am besten laesst Du use_cookies an und use_trans_sid aus und ueberpruefst ob Cookies akzeptiert werden.
Wenn ja arbeitest Du mit Session-Cookies, ansonsten haengst Du die SessionID im URL an.
Dazu empfiehlt sich im Script zur Cookie-Erkennung Variablen zu definieren welche immer an den URL angehaengt werden.
 
Das werde ich wohl dann im Endeffekt so machen müssen, aber trotzdem muss es ja an irgend etwas liegen, dass die Session ID nicht automatisch angehängt wird.

-----------------------------------------
| Hier mal einige Teile meiner php.ini: |
-----------------------------------------

; Whether to use cookies.
session.use_cookies = 1

// Das hab ich mal auf 0 gesetzt

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.

session.use_only_cookies = 1

// Das hab ich auch auf 0 gesetzt

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
; to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
; in publically accessible computer.
; - User may access your site with the same session ID
; always using URL stored in browser's history or bookmarks.

session.use_trans_sid = 0

// Das hab ich auf 1 gesetzt

-------------------------------------

Sonst hab ich in der PHP.ini jetzt keine speziellen Einstellungen gefunden, die etwas damit zu tun haben könnten. Ich hab das ganze übrigens bisher nur mit dem Firefox getestet. In einigen Threads wurde ja darauf hingewiesen, dass hier teilweise Probleme entstehen "könnten", aber das war ja eigentlich mehr beim Öffnen neuer Fenster. Außerdem kann das Problem eigentlich nur Serverseitig vorhanden sein.

Wie ist das ganze denn hier im Forum geregelt? Wenn ich hier meine Cookies ausgeschaltet habe, dann erscheint die Session ID so wie es sein soll in der URL.

----------
| Edit : |
----------

In der php.ini gibt es noch folgende Option:

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

Da es sich bei dem Loginscript unter anderem um ein <form> handelt, könnte doch hier der Fehler liegen. Angeblich wird bei einem <form> dann ein hidden Field übertragen, wenn die Cookies nicht aktiviert sind. Problem ist dann eben nur, dass das Formular über POST versendet wird und das Hidden Field dann nicht in der URL auftritt. Soiweit ich weiss, gibt es jedoch keine Möglichkeit einen Teil eines Formulars per POST und den anderen Teil per GET zu versenden. Wie auch immer, ich komme hier nicht weiter, aber vieleicht hat jemand ja eine Idee.

Greets Yoshi2k
 
Zuletzt bearbeitet:
So, also nach langem ausprobieren, bin ich jetzt ein wenig schlauer.

Zunächst mal der erste ziemlich dämliche Fehler:
In XAMPP gibt es eine Vielzahl phpXXX.ini. Leider hab ich viel zu spät gemerkt, dass das ganze System nicht die phpXXX.ini aus dem PHP Ordner nimmt, sondern die aus dem Apache Ordner, wodurch das Problem der Konfiguration gelöst wurde.

Ich hatte nun also, wenn ich auf einen Link geklickt hatte, meine SessionId in der Url. Bei einem Formular wurde ein weiteres Hidden Field hinzugefügt, welches den Namen PHPSESSID hat. Dadurch kann man nun später problemlos per $_REQUEST auf die ID zugreifen, egal ob diese per Link (also $_GET) oder Formular ($_POST) versendet wurde.
Hierzu ist dann lediglich der folgende Code unmittelbar VOR session_start (); notwendig:

Code:
if ($_REQUEST['PHPSESSID'])
    {
        $sessionid=$_REQUEST['PHPSESSID'];
        session_id($sessionid);
    }


Als einziges Problem bleibt nun noch die "header" Anweisung. Ich hab bislang noch keine Möglichkeit gefunden, dass PHP automatisch aus
header ("Location: intern.php");
ein
header ("Location: intern.php?PHPSESSID=".$sessionid);
macht. Aber ich denke mal, dass die Header Anweisung auch in sehr großen Skripten nur relativ selten vorkommt und damit der Aufwand nicht zu groß ist. Hier müsste man dann mit einer IF Abfrage prüfen, ob die SessionID via $_REQUEST übermittelt wurde oder nicht und dann dementsprechend weiterleiten.

Der Nachteil an der ganzen Sache, so wie ich sie jetzt gelöst habe, ist natürlich, dass die SessionID nun wieder offen übertragen wird, d.h. per URL oder eben Hidden Field.

Man muss sich hier nun eben entscheiden, ob man lieber auf Sicherheit gehen möchte (Cookie) oder auf Kompatibilität (POST/GET).

Ich hoffe mal ich hab vielleicht jemandem geholfen, der im Moment oder vielleicht irgendwann mal das gleiche Problem hat ;)

Greets Yoshi2k

 
Zuletzt bearbeitet:
Zurück