SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 03.01.2005, 13:28   #1
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt

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)
ornyma ist offline   Mit Zitat antworten


Alt 03.01.2005, 13:30   #2
TP-Member
 
Registriert seit: Dec 2004
Ort: Schweiz - Luzern
gugus macht alles soweit korrekt
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:
Zitat:
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.
__________________

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

Geändert von gugus (03.01.2005 um 13:41 Uhr).
gugus ist offline   Mit Zitat antworten
Alt 03.01.2005, 15:33   #3
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt
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)
ornyma ist offline   Mit Zitat antworten
Alt 03.01.2005, 15:55   #4
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
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.
Strogij ist offline   Mit Zitat antworten
Alt 03.01.2005, 18:31   #5
TP-Member
 
Registriert seit: Dec 2004
Ort: Schweiz - Luzern
gugus macht alles soweit korrekt
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";
?>
gugus ist offline   Mit Zitat antworten
Alt 03.01.2005, 19:33   #6
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt
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)
ornyma ist offline   Mit Zitat antworten
Alt 03.01.2005, 21:13   #7
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
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^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 03.01.2005, 21:15   #8
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt
ä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)
ornyma ist offline   Mit Zitat antworten
Alt 03.01.2005, 21:28   #9
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
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
__________________
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^^!

Geändert von Dennis The Menace (03.01.2005 um 21:31 Uhr).
Dennis The Menace ist offline   Mit Zitat antworten
Alt 03.01.2005, 22:04   #10
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt
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)
ornyma ist offline   Mit Zitat antworten
Alt 03.01.2005, 22:17   #11
TP-Veteran
 
Benutzerbild von Daniel N.
 
Registriert seit: Sep 2002
Ort: Schweiz
Daniel N. ist auf einem guten Weg
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..
?>
__________________

Passt auf, ich bin überheblich

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

Geändert von Daniel N. (03.01.2005 um 22:22 Uhr).
Daniel N. ist offline   Mit Zitat antworten
Alt 03.01.2005, 22:20   #12
TP-Specialist
 
Benutzerbild von Dennis The Menace
 
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
Dennis The Menace bringt sich richtig einDennis The Menace bringt sich richtig ein
Zitat:
$_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.

Zitat:
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^^!
Dennis The Menace ist offline   Mit Zitat antworten
Alt 03.01.2005, 22:25   #13
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt
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)
ornyma ist offline   Mit Zitat antworten
Alt 03.01.2005, 22:27   #14
TP-Veteran
 
Benutzerbild von Daniel N.
 
Registriert seit: Sep 2002
Ort: Schweiz
Daniel N. ist auf einem guten Weg
zum letzten satz wird Dennis wohl was konkretes schreiben aber der rest - ja
__________________

Passt auf, ich bin überheblich

http://orangetree.ch-gnu.ath.cx
Daniel N. ist offline   Mit Zitat antworten
Alt 03.01.2005, 22:30   #15
TP-Member
 
Benutzerbild von ornyma
 
Registriert seit: Oct 2004
Ort: München
ornyma macht alles soweit korrekt
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)
ornyma ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Wie lange dauern Sessions? Wie lange dauern Sessions?
« Zugriff auf Seite beschränken | kein mysql update »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie bekomm ich die Standardeinstellungen wieder hin? (Verlaufswerkzeug) Akki Photoshop 3 12.12.2003 14:00
Community erstellen - wie?! Sonynos Webdesign & Co. 26 26.12.2002 17:15
Temporäre Variablen über Links hinweg mit Sessions TobiasKa Traum-Dynamik 5 19.12.2002 13:11
Wie is das mit dem dsl??? stallone Einfach so ... 46 03.02.2002 17:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:02 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12