+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: Wie lange dauern Sessions?

  1. #1
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62

    Wie lange dauern Sessions?

    Ich habe eine ganz allgemeine Frage und kann in den Büchern trotz aufmerksamsten Lesens nix finden.

    Die Frage ist, wie lange dauert eine Session, die mit session_start() ausgelöst und deren Parameter via URL weitergegeben werden gültig. Ist es, wenn man mehrere Variablen hat, die man nach sagen wir mal 5 Seiten in eine mysql-Tabelle eintragen will, nötig bei jeder Seite wieder alle $_Session's an die URL dranzuhängen? Oder reicht das einmal und man könnte Sie später wieder abrufen?

    Vielen Dank für die Antwort und frohes neues Jahr.

    Gruß Dirk
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

  2. #2
    TP-Member gugus macht alles soweit korrekt
    Registriert seit
    Dec 2004
    Ort
    Schweiz - Luzern
    Beiträge
    32
    Die Sessionlebensdauert kannst du in der php.ini einstellen.

    http://ch2.php.net/manual/de/ref.session.php

    Normalerweise ist sie solang gültig bis du dein Browserfenster schliesst. Möchtest du die "Session" später wieder aufrufen musst du Cookies verwenden.

    Session-ID an URL anhängen:
    PHP ist in der Lage, Links transparent umzuwandeln. Falls Sie nicht PHP 4.2 oder höher verwenden, müssen Sie das beim Übersetzen von PHP manuell aktivieren. Unter Unix müssen Sie dazu configure mit --enable-trans-sid aufrufen. Wenn diese Option und die Laufzeit-Option session.use_trans_sid aktiviert sind, werden relative URIs automatisch so geändert, dass sie die Session-ID enthalten.
    Musst du also nicht.
    Geändert von gugus (03.01.2005 um 12:41 Uhr)

    <?php
    /* My web pages */
    echo "Rettet den Wald
    Esst mehr Biber";
    ?>

  3. #3
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62
    Hm, zunächst mal vielen Dank für Deine Antwort. Aber wenn ich meiner 12. Stimme im Kopf zuhöre, dann sagt sie, dass wenn ich die Variablen per URL weitergebe und ich zwischendurch die Variablen nicht weitergebe, so wie Du sagst. Dann ist doch die Weitergabe unterbrochen, oder??? Oder wird, wenn ich die Daten per URL weitergebe die Daten trotzdem im Cache gespeichert?

    Gruß
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

  4. #4
    Guest Strogij hilft, wo's geht Strogij hilft, wo's geht
    Registriert seit
    Aug 2002
    Beiträge
    2.233
    Mich verwirrt die Aussage mit den Sessions und "Übergabe der Variablen per URL". Handelt es sich um mehrere Formulare, die nacheinander ausgefüllt werden, d.h. auf mehreren Seiten? Wozu also Variablen per URL?
    Es wäre besser, wenn du auch dein Vorhaben schildern würdest - man kann nicht nachvollziehen.

  5. #5
    TP-Member gugus macht alles soweit korrekt
    Registriert seit
    Dec 2004
    Ort
    Schweiz - Luzern
    Beiträge
    32
    Zitat Zitat von ornyma
    Hm, zunächst mal vielen Dank für Deine Antwort. Aber wenn ich meiner 12. Stimme im Kopf zuhöre, dann sagt sie, dass wenn ich die Variablen per URL weitergebe und ich zwischendurch die Variablen nicht weitergebe, so wie Du sagst. Dann ist doch die Weitergabe unterbrochen, oder??? Oder wird, wenn ich die Daten per URL weitergebe die Daten trotzdem im Cache gespeichert?

    Gruß
    *kratz* Ich check nicht genau was du meinst.

    Ein Beispiel:

    Wir haben eine Datei mit dem Namen test.php
    PHP-Code:
    session_start();
    $_SESSION['test']=1;

    echo <<<test
    <a href="test2.php">test2.php</a>
    test; 
    und eine weitere Datei mit dem Namen test2.php
    PHP-Code:
    <?
    session_start
    ();

    echo 
    $_SESSION['test'];
    ?>
    Rufst du nun "test.php" auf und klickst auf den link "test2.php" wird eine "1" ausgegeben. Die SID wird automatisch mitgegeben.

    Oder was meinst du?

    <?php
    /* My web pages */
    echo "Rettet den Wald
    Esst mehr Biber";
    ?>

  6. #6
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62
    Si, genau das isses. Und es sind mehrere Formulare, die hintereinander ausgefüllt werden.
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

  7. #7
    TP-Specialist Dennis The Menace bringt sich richtig ein Dennis The Menace bringt sich richtig ein Avatar von Dennis The Menace
    Registriert seit
    Nov 2004
    Ort
    Ich komme aus dem Zauberwald
    Beiträge
    2.035
    Lässt sich dein Si jetzt als (ja, ich hab es verstanden und kenn die Lösung des Problemes) interpretieren?
    Zwei Dinge sind Unbestreitbar:
    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
    • Die Erde ist eine Scheibe!
    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  8. #8
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62
    äh, nö... das Problem ist noch da... die Frage ist muss ich jedesmal die Session neu reinhämmern, wenn ich die Daten für ein Formular über mehrere Seiten transportieren will....
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

  9. #9
    TP-Specialist Dennis The Menace bringt sich richtig ein Dennis The Menace bringt sich richtig ein Avatar von Dennis The Menace
    Registriert seit
    Nov 2004
    Ort
    Ich komme aus dem Zauberwald
    Beiträge
    2.035
    Jetzt kommt es darauf an, was du unter "Session neu reinhämmern" verstehst. Richtig ist, dass du auf jeder Seite, die im Browser aufgerufen wird (ob von user per link, oder im skript per header) du das Skript mit session_start(); beginnen musst.

    Wobei sich auch dies mit leichter modifikation der php.ini verändern lässt!

    Zum mitschleifen eines mehrseitigen Formulares empfieht sich, auf der ersten Seite in leeres Array in der Session zu erstellen:

    PHP-Code:
    $_SESSION["meinArray"] = array(); 
    und dann auf jeder Seite, wo neue Formulardaten gesendet werden, genau jene einfach in diesem Sessionarray zu mergen:

    PHP-Code:
    //Wir gehen davon aus, dass die neuen Formulardaten per $_POST kommen:
    $_SESSION["meinArray"] = array_merge$_SESSION["meinArray"], $_POST ); 
    Auf http://php.net/array_merge kannst du nachlesen, wie sich das ganze bei gleichnamigen Feldern verhält (also: welcher Wert überschrieben wird). Wenn du das umgehen willst, empfiehlt sich ein mehrdimensionales Array, dann ist es auf jeden Fall eindeutig und es kann zu keiner Überschneidung mehr kommen!

    Wie schon erwähnt, dass auf jeder Seite, auf der neue Daten hinzukommen, machen, und, sobald alle Seiten des Formulars durchlaufen sind, kannst du sämtliche Daten mit:

    PHP-Code:
    print_r$_SESSION["meinArray"] ); 
    wieder ausgeben/speichern/weiterverarbeiten. etc
    Geändert von Dennis The Menace (03.01.2005 um 20:31 Uhr)
    Zwei Dinge sind Unbestreitbar:
    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
    • Die Erde ist eine Scheibe!
    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  10. #10
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62
    Das bringt mich erheblich weiter. Ich habe es bisher immer so gemacht, dass ich die neuen Daten der Superglobalen $_SESSION hinzugefügt habe und jedem Formularfeld einfach eine Superglobale $_SESSIOn ["meinfeld"] gegeben habe. Diese habe ich dann auf jeder Seite in eine Variable je Superglobale gegeben. Die habe ich auf jeder Seite wieder in eine Variable gepackt und vor dem Header wieder in eine SESSION gedrückt. Ich konnte mir nicht vorstellen, dass das Sinn ergibt. Ich werde mir array_merge mal kurz in der Doku anschauen.

    Andersrum müssten die Feldaten, die ich in eine SESSION verpackt habe doch auch bis zum Ende da sein, wenn ich sie nicht jedesmal wieder in eine Variable und vor dem header wieder in eine Session verpacke, oda???

    Gruß Dirk
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

  11. #11
    TP-Veteran Daniel N. ist auf einem guten Weg Avatar von Daniel N.
    Registriert seit
    Sep 2002
    Ort
    Schweiz
    Beiträge
    1.307
    Nein. Session = Browsersitzung (so hab ichs zumindest mal gelesen.). Also du übergibst zwar die Session per URL, Formular oder was auch immer ans nächste Browserfenster(seite eigentlich). Und trotzdem musst du, damit die Session-Variablen im Script quasi "empfangen" werden können, ein session_start(); an Anfang deines Codes setzen.

    [nachtrag]
    PHP-Code:
    <?php
    session_start
    (); 
    // session-variablen übernommen
    // ########## dein restiliches script..
    ?>
    Geändert von Daniel N. (03.01.2005 um 21:22 Uhr)

    Passt auf, ich bin überheblich

    http://orangetree.ch-gnu.ath.cx

  12. #12
    TP-Specialist Dennis The Menace bringt sich richtig ein Dennis The Menace bringt sich richtig ein Avatar von Dennis The Menace
    Registriert seit
    Nov 2004
    Ort
    Ich komme aus dem Zauberwald
    Beiträge
    2.035
    $_SESSION hinzugefügt habe und jedem Formularfeld einfach eine Superglobale $_SESSIOn ["meinfeld"] gegeben habe.
    Naja, ist halt entweder unnötige Handarbeit, bzw. eine unnötige foreach Schleife.

    Andersrum müssten die Feldaten, die ich in eine SESSION verpackt habe doch auch bis zum Ende da sein, wenn ich sie nicht jedesmal wieder in eine Variable und vor dem header wieder in eine Session verpacke, oda???
    K.a., was du jetzt unter "verpackt" verstehst. Wenn du, wie gugus schon demonstriert hat, einfach $_SESSION["test"] = "hallo welt"; speicherst, kannst du jenes "Hallo Welt" überall in der aktuellen Session wieder asugeben.

    Wenn es nicht klappt, überschreibst du es entweder irgendwo ungewollt, oder du hast ein session_Start(); vergessen!
    Zwei Dinge sind Unbestreitbar:
    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
    • Die Erde ist eine Scheibe!
    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  13. #13
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62
    Jetzt kommen wir der Sache schon näher. Also Es ist egal, auf welche Art man die Session übergibt, sie hält solange bis das Browserfenster geöffnet ist. Und zum Abruf der in einer Session gespeicherten Variablen muss man die Session mit session_start() zu Beginn des Scripts öffnen. Das funktioniert also auch dann, wenn die Session per URL übergeben werden. Dann könnte ich diese rein theoretisch auch 15 Seiten später abrufen, ohne diese zwischendurch weiter zu beachten - vorausgesetzt ich öfnne mit session_start() und überschreibe die Variable nicht. Ist das Statement korrekt?
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

  14. #14
    TP-Veteran Daniel N. ist auf einem guten Weg Avatar von Daniel N.
    Registriert seit
    Sep 2002
    Ort
    Schweiz
    Beiträge
    1.307
    zum letzten satz wird Dennis wohl was konkretes schreiben aber der rest - ja

    Passt auf, ich bin überheblich

    http://orangetree.ch-gnu.ath.cx

  15. #15
    TP-Member ornyma macht alles soweit korrekt Avatar von ornyma
    Registriert seit
    Oct 2004
    Ort
    München
    Beiträge
    62
    na da hasse wahr. es ist very_difficulti () was zu erklären ohne 20 einhalb Seiten Script rüberzubeamen. aber jetzt haben wir es ja.... Vielen Dank Euch allen. Ihr habt sehr grpßes Hilfe tun.

    Gruß Dirk
    Persönlichkeiten nicht Prinzipien bringen die Welt in Bewegung. (Oscar Wilde)

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 12.12.2003, 13:00
  2. Community erstellen - wie?!
    Von Sonynos im Forum Webdesign allgemein
    Antworten: 26
    Letzter Beitrag: 26.12.2002, 16:15
  3. Temporäre Variablen über Links hinweg mit Sessions
    Von TobiasKa im Forum Traum-Dynamik
    Antworten: 5
    Letzter Beitrag: 19.12.2002, 12:11
  4. Wie is das mit dem dsl???
    Von stallone im Forum Einfach so ...
    Antworten: 46
    Letzter Beitrag: 03.02.2002, 16:48

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51