Alles Session oder was?

Wie gesagt, wenn dein Browser die cookies einfach beim verlassen der seite löscht oder ein anderes tool dazwischen funkt , wird das nix mit dem coockie austeilen. Auch kann es sein das dein Server die Session ID nicht einlesen tut , weil irgentwas nicht in der ini drinne ist .
Allerdings sollte es immer mit der manuellen übergabe der SID funktionieren , denn dann hat das system ja die richtige SID und legt nicht eine neue an.

Du musst irgentwie überprüfen ob es am genau diesen Office Browsern liegt.

Allerdings sollten dann auch keine Externen Seiten, wo Coockie pflicht ist, funktionieren. :smile:

P.S. wer ist den der administrator für den webserver ?

Wir könnten was testen - ich hab hier ne klitzkleine Abfrage wegen Session und Cookies und so nech.

Bei mir klappt das nicht.
Hättest du eventl ne Möglichkeit dies kurz gegenzutesten?

Denn dann bin ich auf der sicheren Seite, wobei die nicht gut is :smile:

Also -->

Neu.php

Dein Name:

Seite1.php -->

<?php session_start(); <br />$name = $\_POST['name'];
if(!isset($name))
 {
 $name = "Gast";
 }
//Session registieren
$\_SESSION['name'] = $name;
//Text ausgeben
echo "Hallo $name 
[Weiter](seite2.php)";
?\>

Seite2.php

<?php session_start(); //Ganz wichtig<br />//In $name den Wert der Session speichern
$name = $\_SESSION['name'];

//Text ausgeben
echo "Du heißt immer noch: $name";
?\>

Also wenn bei --> „Du heißt immer noch: $name“; nichts mehr kommt in der Ausgabe, dann …keine Ahnung, aber ich geh davon aus, das bei dir was kommt .

Könntest du mir das mal kurz testen bitte bitte bitte :frowning:

:wink:

Danke Gruß Rofl

Online unter
http://www.legioneuropa.byethost7.com/cockiesession/
zum selber testen :smile:

Mein Ergebnis bei Name : thomas

Hallo Thomas
Weiter

Du heißt immer noch: Thomas

cya

Ok, also er legt die Cookies an - kann aber dann nicht mehr draufzugreifen!

Danke dir :wink:

Gruß Rolf

Spannend - bei http://www.legioneuropa.byethost7.com/cockiesession/
geht auch bei mir…

Das ist merkwürdig

Gruß Rolf

Wenns nur der coockie ist, dann kannst du ja mit hidden feld für die session arbeiten , das ja nicht so schlimm :smile:

hier hab ich dir das mal in eine datei gepackt

http://www.legioneuropa.byethost7.com/cockiesession/…

zum download

http://www.legioneuropa.byethost7.com/cockiesession/

mit rechter mousetaste downloaden die neu_onefile.download

was mich wundert ist das er den coockie setzt .

Danke dir für deine Mühe…

Leider leider klappts nicht…

Ich dreh am Rad echt!

Gruß Rolf

cookie problem loesen
in deine testscripte solltest du eine zeile reinschreiben wie:
var_dump($_GET,$_POST,$_SESSION,$_COOKIE); dann solltest du sehen, was uebertragen wird.

man koennte pruefen, ob deine session funktioniert, wenn du die session_id mit get/post uebertraegst.

den aufwand mit „dein name ist“,bitte/danke.php sollte man sich sparen - das ist zu fehleranfaellig. besser etwas in der art:

<?php session_start();<br />$\_SESSION['foo'] = empty($\_SESSION) ? 1 : $\_SESSION['foo']+1; 
echo $foo;

dann braucht man nur noch f5 druecken.

du meintest zwar du haettest die php.ini schon geprueft, aber ein 2. blick kann nie schaden.
http://php.net/manual/de/session.configuration.php
insbes. der teil mit session_use_cookie koennte relevant sein - mit phpinfo pruefen.

weiter koenntest du deine http-header anschauen, ob der server set-cookie: anfragen sendet, und der browser sie mit cookie: beantwortet. das geht im ff mit einer extension (firebug, tamperdata, od. livehttpheaders) oder mit wireshark/ethereal - es soll wohl auch entspr. addons fuer ie geben.

Mojm

was meinst du mit „selber schreiben“?

Die Daten selber werden hier ja noch nicht in der Datenbank gespeichert, erst später dann.

Das Formular wird ja von Kunden ausgefüllt und dann an mich geschickt und ich speichere die Daten dann erst in der DB.

Gruß Rolf

Befor es das Modul Session beim Webserver gab, hat man sich seine Session selber geschrieben. Bei Auslieferung der ersten Seite legt man eine eindeutige Session ID in der Datenbank Users Tabelle Session an.
Diese ID hängt man an die URL oder als hidden feld (nix mit coockie) .
Beim nächsten aufruf, gugt man ob so eine ID vorhanden ist, prüft sie gegen die Datenbank ob sie existiert. Daten die man zwischenspeichern will (z.b. ein warenkorb) speichert man erstmal in der session . Dann wenn der Kunde Bestellen klickt, erst dann speichert man alle daden der session im bestellsystem und löst die bestellung aus .

Sessions sind gespeicherte Daten auf dem Server der durch eine ID ansprechbar ist. Ob die nun in einer Datenbank oder in Dateien gespeichert werden, liegt am erfinder , beides führt zum gleichen erfolg.

Und coockies ist eher neumodischer Kram . Das macht die sache dem Programmierer einfacher und offt auch unsicherer (weil autologins ), mehr auch nicht. Wer dein Browser hackt hat dann auch den zugriff.

Problem mit URL SID ist immer das entweder die IP geprüft werden muss oder die SID ein halbarkeitsdatum haben muss, denn sonst kann man einfach den server mit geügend SIDs spam und hat dann recht schnell ein user login.
Und genau wegen diesen ganzen umständene sollte man gut prüfen ob man selber solche sicherheitsrelewanten Dinge selber programmiert , sonst kommt sowas wie Sony Playerstation Network oder Facebook dabei raus .

Aber deine Erklärung lässt eh vermuten das du einfach die Grundlage von dem was du da machst nicht verstanden hast, ausser das du session_start() schreibst . Schön das man das so einfac nutzen kann , aber verstehen sollte man es dennoch . Weil wenns mal nicht geht , welche gründe auch immer, bist du ja hilflos .

Fazit : Für das was du da machst brauchst du doch eigentlich gar keine Session . Aus früherer sicht ist das fast wie mit Kanonen auf Spatzen schiessen.

1 Like

Und whem keine Sessions interressieren und es egal ist wer mitlesen kann , der speichert username und password in der url oder hidden feldern .
Ist zwar null sicher, aber identifiziert den user auch .

Hmmm, es klappt nun
Irgendwie klappts nun doch.
Hab ein paar Einstellungen noch in der php.ini eingestellt und nun gehts.

Das Problem ist aber nun, wie und vor allen WANN lösch ich die Session?

Gruß Rolf

Man kann verschiedenes einstellen :smile:

z.b.

; After this number of seconds, stored data will be seen as ‚garbage‘ and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
session.gc_maxlifetime = 1440

; Document expires after n minutes.
; http://php.net/session.cache-expire
session.cache_expire = 180

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0

Gruß Rolf

Sevus,

ja, das mit der Zeit ist aber son Ding.

Das Form wird von „Leuten“ bearbeitet.

Heisst, wenn die die Daten korrigieren sollen, kann es schon mal vorkommen das man dann erstmal eine rauchen geht oder sich nen Kaffee holt…von daher wollte ich das Zeitfenster eigentlich vermeiden.

Gruß Rolf

Sevus,

ja, das mit der Zeit ist aber son Ding.

Das Form wird von „Leuten“ bearbeitet.

Heisst, wenn die die Daten korrigieren sollen, kann es schon
mal vorkommen das man dann erstmal eine rauchen geht oder sich
nen Kaffee holt…von daher wollte ich das Zeitfenster
eigentlich vermeiden.

wirst du aber nicht können , das ist schon rein technisch nicht erwünscht, wenn jeder visitor einen dauerhaften speicherplatz bekommt.
Da ist ja nach ein paar besuchern der speicher voll und nix passiert.
Sessions sind temporär . Du kannst ja die Zeit auf 60 minuten legen, oder 1 Tag.

Als Beispiel sei beschrieben wie ich es mache.

Bei mir hat die Session nur die ID für den userlogin .

Ich prüf auf die Session ID und speicher die ganzen aktivitäten in der Datenbank unter der User ID in der tabelle formulardaten.

Bei jedem aufruf prüfe ich also ob eine Session da ist und ob Daten für die Session da sind , wenn ja werden diese übernommen . Sind neue Daten da werden die alten überschieben .

klickt der herr also auf absenden , so speicher ich was er gesendet hat.
Und hol es mir wieder wenn ich es brauch für die ausgabe.

Sessions sind auf jedenfall nix für die Ewigkeit.

1 Like

Danke erstmal an alle
Danke erstmal an alle

Soweit funtzt es jetzt, alles andere muss man schauen

Danke euch

Gruß Rolf