PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Mal ne ganz blöde Fragen zur Php Session (http://www.selfphp.de/forum/showthread.php?t=2265)

Moses 26.09.2002 14:01:22

Mal ne ganz blöde Fragen zur Php Session
 
Hallo,
habe zwei wirkliche blöde Verständnis-Fragen zur Session (bin bisher ohne Sessions ausgekommen...), bin bei meiner Suche aber nicht richtig fündig geworden.
Also, auf der ersten Seite auf der die Session beginnen soll schreibe ich z.B. etwas in der Art an allererster Stelle:
<?
$id=md5(uniqid(rand()));
session_register("login");
$login=$id;
$besuchsdatum=strftime("%d.%m.%Y %H:%M", time());
session_register("datum");
$datum=$besuchsdatum;
?>

Frage 1: Muß ich die Werte wie $id und/oder $datum in einer Datenbank speichern? (Benötige die Daten nicht für eventl. statistische Auswertungen)

Frage 2: wenn ich jetzt von dieser Seite andere Seiten aufrufe, wird die Session ja angeblich automatisch weitergeleitet (habe da noch so meine Zweifel ;-)
Muß ich denn auf den anderen Seiten ganz oben den selben Code nochmals eingeben (oder einen anderen Code?) ?

Zur Verdeutlichung: ich habe zum Beispiel einen kleinen Webshop, wenn ein Besucher nur browsen will soll er das machen. In dem Moment allerdings wo er auf bestellen klickt soll die Session gestartet werden und natürlich den Besucher auch dann begleiten wenn er zu anderen Seiten zurückspringt (z.B. zw Katalog und Warenkorb)

Hoffe diese Frage ist nicht zu blöd und ich bekomme trotzdem eine Antwort.

Danke und beste Grüße,
Moses

Ben20 26.09.2002 14:37:58

Die Variablen brauchst Du nicht in einer DB zu speichern. Du mußt auf jeder Seite die entsprechenden Variablen registieren.

Also

<?php

session_register("login");
session_register("datum");


?>

Dadurch den die Vars registiert, aber nicht überschrieben, d.h. die Wert von der Vorgänger Seite sind noch da.

Moses 26.09.2002 15:05:42

Hallo Ben20,
erstmal danke für die Antwort.
Da ich es gerade nicht ausprobieren kann noch eine kurze Frage,
wenn ich diese session_register in jede Datei reinschreibe - kommt dann keine Fehlermeldung, wenn ein Besucher zuerst auf eine dieser Dateien landet, sprich die session noch nicht gestartet ist?

Grüße,
Moses

CyberAge 26.09.2002 15:33:52

mal ne frage: ist über deinem geposteten codeschnipsel noch etwas? wenn nein, dann muß als allererstes ein session_start(); in den PHP-Part, da du sonst keinen zugriff auf session-daten hast, weder schreiben noch lesen. das muß auf allen seiten geschehen, auf denen du die sessions verwenden willst.

Ansonsten kannst du ab PHP_Version 4.1.2 auch so auf Session schreiben bzw. aus denen lesen:

PHP-Code:

#Beispiel fürs schreiben
$_SESSION['id'] = "inhalt";
$_SESSION['xyz'] = "inhalt2";

#Beipsiel fürs lesen
echo $_SESSION['id'];
echo 
$_SESSION['xyz']; 


Moses 26.09.2002 17:26:20

Oops,
danke für den Hinweis! Stand "natürlich" nicht drüber.....

Grüße,
Moses

Ben20 26.09.2002 22:06:18

session_register ruft session_start auf. Wenn jemand auf eine Seite kommt ohne vorher auf der Seite gewesen zu sein, die $login und $datum mit Inhalt füllt, so haben die beiden Werte keinen Inhalt. Sofern Du die Variablen nicht an einer Stelle verwendest wo eine leere Variable zu Problemen führt macht das nix.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:29:23 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.