Wie bekomme ich die Session-ID weg?

  • Ich hab diese Frage schon im v7 Forum und im [url=http://forums.mysql.com/read.php?20,37087,37087#msg-37087]MySQL Forum[/url] gepostet -- bisher ohne funktionierende Antwort.


    Problem ist folgendes. Ich habe eine Datenbasis, die aus URLs besteht (siehe Visitors). Diese URL kann -- aber muß nicht -- eine Session ID enthalten. Und diese möchte ich beim Aggregieren der Daten via SQL ausfiltern. Etwas ähnliches habe ich bereits mit dem Referrer-Host gemacht -- da klappts sehr gut. Nur bei der Session-ID bin ich bislang gescheitert.

    Abdrehen via php hilft nicht -- die Datenbasis existiert bereits, auch möchte ich Besucher meiner Site nicht zu Cookies zwingen und bin auf Sessions angewiesen. Dazu ein paar Beispiele.

    Zitat

    http://www.kiesler.at/article74.html…a4cbc224d4f338d
    http://www.kiesler.at/index.php?modu…61698a5a6f32009

    ...I'd like to drop the ?4c944bdb7f9edf10eedc5a883aeb396a=2f4d5ecba09158616a4cbc224d4f338d in the first and the &4c944bdb7f9edf10eedc5a883aeb396a=455c6f096cae2c84061698a5a6f32009 part in the second case.

    Sometimes, the session ID is even inside the URL, not at the end of it. An example I just made up:

    http://www.kiesler.at/index.php?modu…6f32009&view=53

    ...die Session ID kann also so ziemlich überall im URL-String vorkommen, oder auch gar nicht. Die anderen URL-Parameter möchte ich aber gerne behalten.

    Bin für alle Tips dankbar.

    LG // René!

  • dreh session.use_trans_sid in der php.ini ab und schreib deine eigenen session-handler-funktionen

    ajo, geile auswahl der foren, wäre net php.net sinniger gewesen als mysql.com? :)

  • Zitat von bosie

    dreh session.use_trans_sid in der php.ini ab und schreib deine eigenen session-handler-funktionen

    ajo, geile auswahl der foren, wäre net php.net sinniger gewesen als mysql.com? :)


    Zitat von rck

    Abdrehen via php hilft nicht -- die Datenbasis existiert bereits, auch möchte ich Besucher meiner Site nicht zu Cookies zwingen und bin auf Sessions angewiesen.

    Ich würde das ganze gerne via SQL machen -- nicht via php... ;) Also, wenn Du ein gutes Datenbankforum kennst... Und, wie geschrieben: Die Daten existieren bereits. Wenn ich jetzt die Sessions abdrehe, bringt mir das also nix mehr...

    Dazu ein Beispiel. Dieser Term hier extrahiert mir aus URLs die Hostnamen:

    die gleiche Spalte, ohne weitere Behandlung:


    Genau sowas suche ich für die Session-ID... Nachdem die aber variabel lang ist, tu ich mir da ein bisserl schwer und hoffe auf gute Ideen...

  • achso sorry dann is natürlich mysql gut ;)

    also ich kenne die mysql-string-funktionen nicht gut genug, aber hier trotzdem die idee:

    die form ist ja eigentlich immer so, dass es nicht wie üblich eine post-variable festlegt
    kiesler.at/test.php?id=10&asdfkjlweri324124kjasdfi

    jetzt könntest ja eigentlich kontrollieren ob zw. & und dem nächsten & ein = steht, wenn net .... wenn es dann noch länger als 15 zeichen ist (oder so, jedenfalls hab ich noch nie eine kurze sessionID gesehen ;)) könnte es ich um die ID handeln.

  • Zitat von bosie

    jetzt könntest ja eigentlich kontrollieren ob zw. & und dem nächsten & ein = steht, wenn net .... wenn es dann noch länger als 15 zeichen ist (oder so, jedenfalls hab ich noch nie eine kurze sessionID gesehen ;)) könnte es ich um die ID handeln.

    Die Idee ist gut, also einfach über alle GET-Parameter Iterieren und schauen wie lang der Key ist... Jetzt stellt sich natürlich noch die Frage, wie ich das Ganze mache :)

  • Zitat von rck

    Die Idee ist gut, also einfach über alle GET-Parameter Iterieren und schauen wie lang der Key ist... Jetzt stellt sich natürlich noch die Frage, wie ich das Ganze mache :)

    hmm also mit iterieren wird da net viel gehen in mysql ;)

    in php wärs klar aber mysql... alles löschen was zw. 2 & kein = hat
    edit: "ich würd das mit regex machen" - nehme ich zurück, anscheinend gibts regex nur in where-klauseln

  • Zitat von rck

    Ah, das mit dem kein = stimmt ja leider auch nicht. Ohne = kein GET-Parameter, entsprechend hat die Session-ID sowas ja auch:

    jetzt wirds immer dünner ;)

  • Wozu verwendest du überhaupt die session_id in der URL? Kannst du sie nicht weglassen, oder wenn es schon sein muss, per POST verwenden?

    mfG Fup

  • Ich verwende grundsätzlich die CMS phpWebSite, setze also auf eine bestehende Lösung auf. phpWebSite ist auf Sessions angewiesen. Sessions speichern zB die Modul-Instanzen des aktuellen Users, Design Einstellungen, usw. und sind fundamentaler Bestandteil von phpWebSite ohne den's nicht funktioniert.

    Wieso kein Post? Bitte wirf mal einen Blick auf meine Homepage. Links, wohin das Auge blickt. Das alles auf Formulare umzubauen ist eine Heiden Arbeit und würde schon fast eine neue CMS rechtfertigen. Und imho passen die Links ja auch ganz gut.

    Die session_id wird auf der ersten Seite, die ein Benutzer sieht, grundsätzlich immer an alle Links gehängt. Ab der zweiten Seite verschwinden sie dann allerdings, hat der Benutzer Cookies aktiviert. Auf der ersten Seite kann php noch nicht feststellen, ob Cookies funktionieren oder nicht.

    Somit brauche ich auf jeden Fall irgendeinen Weg, die Session ID loszuwerden. Direkt in der Datenbank ist am elegantesten, denke ich.

  • Zitat von rck

    Hab jetzt mal an was anderem gewerkt und werde mich wieder meiner Diplomarbeit zuwenden. Vielleicht fällt ja noch wem was ein, ich werde mir auch noch ein paar Gedanken zu dem Thema machen...
    Danke jedenfalls mal für die Unterstützung!

    also mir fällt nix ein außer das auf applikationsebene zu lösen.
    ajo und phpwebsite verwende ich auch ;) gefällts?

  • Zitat von rck

    site-sehen-will! :verycool:

    hehe ist noch in der entwicklung, kann ich net zeigen.
    ist auch nur für ein kleineres institut an der tu, nix aufregendes. deswegen war auch typo3 zu groß ;)

  • du solltest die seite etwas überarbeiten, sonst entsteht der eindruck, man wäre auf der offiziellen homepage.

    nicht dass du dann probleme bekommst.. ;)

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!