Re: [PUG] PHP: session id - vllig konfus

2003-07-22 Diskussionsfäden Markus Hahn
Am Montag, 21. Juli 2003 15:06 schrieb Markus Hahn:
 Hi Liste,
nach dem ich nun gestern den halben Tag an dem Problem weitergemachthabe 
und diverse Dokumentationen zu dem Thema gelesen habe bin ich nun völlig 
verwirrt vor lauter session_vars, cookie_params und id_args.

Von den session_register(), session_kill(), kill_user(), 
shutdown_server_session_args_murgs_wh() funktionen 
ganz zu schweigen. ( ach wie schon war C) 


ich will  folgendes:
Der Client soll ein cookie bekommen:
darin soll die session_id, lifetime,  domain, und ein counter
gespeichert sein.

Diese Daten soll der Benutzer auf der ersten Seite vor dem ausfüllen 
eines Forms bekommen. 
--  form.php :
 in etwa so 
?PHP

ini_alter(session.use_cookies,1);
ini_alter(session.cookie_lifetime,31536000);
ini_alter(session.use_trans_sid,1);
ini_alter(session.cookie_domain,www.wetterbote.de);
$time = mktime()+31536000;
session_start();
session_register(time,SessionID);
$SessionID=session_id();
session_set_cookie_params(31536000,/tmp,$time );
  session_set_cookie_params(int lifetime [, string path [, string 

...

nach dem ausfüllen des Forms werden die Daten 
Submited und mit $_POST nach danke.php übergeben,
und in eine mySQL Datenbank geschrieben.
Im Augenblick bekomme ich nur  

lifetime: 0
path: /
domain: 
secure: 

bzw nur die SessionID zurück. 

in die Tabelle mysite_access_tbl sollte 
nun auch die cookie vars geschrieben werden 
anstatt auf /tmp zu landen.

Als erstes will ich dann testen ob der Benutzer 
bekannt ist und innerhalb der letzten x Sekunden schon mal was hier abgesendet 
hat.(was wiederum einfach ist wenn ich das mit den cookies geschnallt habe) 


Sinnvoll fände ich auch, dass der Benutzer bei weiteren Besuch 
den alten Cookie überschrieben bekommt, oder ist 
das Standard? 


Grüße Markus 










PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] PHP: session id - völlig konfus

2003-07-22 Diskussionsfäden Laurence Tonke
On Tue, 2003-07-22 at 10:19, Markus Hahn wrote:
[..]

 ini_alter(session.use_cookies,1);
 ini_alter(session.cookie_lifetime,31536000);
 ini_alter(session.use_trans_sid,1);
 ini_alter(session.cookie_domain,www.wetterbote.de);

[..]

Ich muß noch dazu sagen, daß Du das ini_alter nicht unbedingt
benötigst! Ich benutze das nur, da ich keinen Zugriff auf die ini-Datei
auf dem Server habe, auf dem dieses PHP-Script liegt.

Mit den session_start und session_register Sachen habe ich lange
herumprobiert, und bin mir nicht im klaren warum genau diese Zeilen das
tun was ich will... probieren geht über studieren...

Laurence
-- 
Laurence Tonke
Penguin User Group
http://www.pug.org/~laurence


PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] PHP: session id - vllig konfus

2003-07-22 Diskussionsfäden Valentin Heinitz
 ( ach wie schon war C)

Wegen sowas?

*p;main(i,x){for(i=atoi((p=x)[1]);o(i),x=atoi(p[2])-i;x0?i++:i--);}

:-)

P.S.:
(http://www.lysator.liu.se/c/shocc-results.html)

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] PHP: session id - vllig konfus

2003-07-22 Diskussionsfäden Markus Hahn
Am Dienstag, 22. Juli 2003 11:13 schrieb Valentin Heinitz:
  ( ach wie schon war C)

 Wegen sowas?

 *p;main(i,x){for(i=atoi((p=x)[1]);o(i),x=atoi(p[2])-i;x0?i++:i--);}

 :-)

ich mags halt etwas komplizierter :-)
fasl du es noch nicht kennst 

http://www.c-plusplus.de/geschichte.htm



Gruß Markus 


PUG - Penguin User Group Wiesbaden - http://www.pug.org


[PUG] Re[2]: [PUG] PHP: session id - vllig konfus

2003-07-22 Diskussionsfäden Sascha Wolf
Hallo Markus,

Tuesday, July 22, 2003, 10:19:22 AM, you wrote:

MH ich will  folgendes:
MH Der Client soll ein cookie bekommen:
MH darin soll die session_id, lifetime,  domain, und ein counter
MH gespeichert sein.

MH Diese Daten soll der Benutzer auf der ersten Seite vor dem ausfüllen
MH eines Forms bekommen. 
--  form.php :
MH  in etwa so 
MH ?PHP

MH ini_alter(session.use_cookies,1);
MH ini_alter(session.cookie_lifetime,31536000);
MH ini_alter(session.use_trans_sid,1);
MH ini_alter(session.cookie_domain,www.wetterbote.de);
MH $time = mktime()+31536000;
MH session_start();
MH session_register(time,SessionID);
MH $SessionID=session_id();
MH session_set_cookie_params(31536000,/tmp,$time );
MH   session_set_cookie_params(int lifetime [, string path [, string

MH ...

MH nach dem ausfüllen des Forms werden die Daten 
MH Submited und mit $_POST nach danke.php übergeben,
MH und in eine mySQL Datenbank geschrieben.
MH Im Augenblick bekomme ich nur  

MH lifetime: 0
MH path: /
MH domain: 
MH secure: 

MH bzw nur die SessionID zurück. 

MH in die Tabelle mysite_access_tbl sollte 
MH nun auch die cookie vars geschrieben werden 
MH anstatt auf /tmp zu landen.

MH Als erstes will ich dann testen ob der Benutzer 
MH bekannt ist und innerhalb der letzten x Sekunden schon mal was hier abgesendet
MH hat.(was wiederum einfach ist wenn ich das mit den cookies geschnallt habe)


MH Sinnvoll fände ich auch, dass der Benutzer bei weiteren Besuch 
MH den alten Cookie überschrieben bekommt, oder ist 
MH das Standard? 


MH Grüße Markus 


Also um ganz ehrlich zu sein, wozu willst du die Sessionhash bitte als Cookie 
versenden? Mach es per trans_sid und gut ist! Dann hast du auch keine Probleme mit 
Clients die überhaupt keine Cookies akzeptieren, was eine ganze Menge ist!

Und wie ich schon in meiner vorherigen Mail geschrieben habe, machst du dir das hier 
ziemlich schwer! Man kann die Werte der Session direkt in dem Array schreiben  
$_SESSION['key'] = value . Da muss man nix definieren oder sonst was, es spart Zeit 
und nerven! Vorher sollte man aber, wenn es noch nicht geschehen ist,  
session_start()  ausführen! Ich habe in meinen PHP Programmen immer ein  ob_start() 
 als ersten Befehl, da ob_start den kompletten output dann buffert und Cookies und 
der gleichen immer noch oben in den Header setzt, egal wann und wo du die Cookies in 
deinem Code setzt!

Außerdem brauchst du dich nicht um die Session-ID zu kümmern, da diese automatisch 
generiert und ebenso automatisch zugewiesen wird! Das heißt du hast nach deinem 
Dateiwechsel einfach alle Variablen verfügbar - fertig! Das heißt ich würde wenn 
überhaupt nur den Counter als Cookie absetzen und den Rest per Session über trans_sid 
( Also als Anhang an der Datei ) verwalten. Außerdem würde ich auch nichts an der 
Lifetime der Session ändern, da es unsinnig ist, meiner Meinung nach, eine Session 
länger als 15 Minuten ohne Aktivität gültig zu halten.

Das würde so aussehen, als Beispiel:

?php
  ob_start();
  session_start();

  $_SESSION['var1'] = value1;
  $_SESSION['var2'] = value2;

  [...] restlicher Code
?


-- 
Best regards,
 Saschamailto:[EMAIL PROTECTED]


smime.p7s
Description: S/MIME Cryptographic Signature


[PUG] PHP: session id

2003-07-21 Diskussionsfäden Markus Hahn
Hi Liste,
um ein Formular nur einmal pro Sizung ausfüllen 
zu können brauche ich eine Session Kontrolle.

Die da ich auch wissen will ob der user schon einmal auf der Seite 
war will ich dies mit cookies realisieren. 

nun habe ich das Zusammenspiel noch zwischen 
session_id und cookie noch nicht so ganz verstanden.

Zudem habe ich folgenden (test) Code in den header meiner ersten 
Seite (wf-wetterbote.php) eingefügt:

?PHP   // Zeile 5 
session_start();
echo session_id();
echo br;
echo $PHPSESSID;
?

Ich bekomme nun diese Fehlermeldung:
 Warning: Cannot send session cookie - headers already sent by (output started 
at 
/home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php:5) 
in 
/home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php 
on line 6
 
 Warning: Cannot send session cache limiter - headers already sent (output 
started at 
/home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php:5) 
in 
/home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php 
on line 6
 8f3a675dfba34700962d029dbec358c1

was will diese fehlermeldung mir sagen?

gibt es da eingentlich einen unterschied zwischen session_id und 
cookie? oder wird die session_id im cookie gespeichert?




Grüße markus 



PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] PHP: session id

2003-07-21 Diskussionsfäden Laurence Tonke
[...]

 Ich bekomme nun diese Fehlermeldung:
  Warning: Cannot send session cookie - headers already sent by (output started 
 at 
 /home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php:5) 
[...]

 was will diese fehlermeldung mir sagen?

Du darfs vor dieser zeile noch keinen HTML-Code ausgegeben haben, sonst
wurden schon header-Informationen mitgeschickt. Deine Session-Kommandos
müssen als allererstes kommen...

 gibt es da eingentlich einen unterschied zwischen session_id und 
 cookie? oder wird die session_id im cookie gespeichert?

Du kannst Die session-id auch im Coolie speichern, mußt Du aber nicht:
 
Mit Cookie:
ini_alter(session.use_cookies,1);
ini_alter(session.cookie_lifetime,31536000);
ini_alter(session.use_trans_sid,0);
session_start();
session_register(SessionID);
$SessionID=session_id();
$time = mktime()+31536000;
setcookie (PHPSESSID, $$SessionID, $time);

Ohne Cookie:
ini_alter(session.use_cookies,0);
session_register(SessionID);
$SessionID=session_id();

Laurence
-- 
Laurence Tonke
Software AG
http://www.softwareag.com


PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] PHP: session id

2003-07-21 Diskussionsfäden Sascha Wolf
Hallo Markus,

Monday, July 21, 2003, 3:06:00 PM, you wrote:

MH Hi Liste,
MH um ein Formular nur einmal pro Sizung ausfüllen 
MH zu können brauche ich eine Session Kontrolle.

MH Die da ich auch wissen will ob der user schon einmal auf der Seite
MH war will ich dies mit cookies realisieren. 

MH nun habe ich das Zusammenspiel noch zwischen 
MH session_id und cookie noch nicht so ganz verstanden.

MH Zudem habe ich folgenden (test) Code in den header meiner ersten 
MH Seite (wf-wetterbote.php) eingefügt:

MH ?PHP   // Zeile 5 
MH session_start();
MH echo session_id();
MH echo br;
MH echo $PHPSESSID;
?

MH Ich bekomme nun diese Fehlermeldung:
MH  Warning: Cannot send session cookie - headers already sent by (output started
MH at 
MH /home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php:5)
MH in 
MH /home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php
MH on line 6
 
MH  Warning: Cannot send session cache limiter - headers already sent (output
MH started at 
MH /home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php:5)
MH in 
MH /home/markus/public_html/wetterfest/wf-sites/wf-wetterbote/wf-wetterbote.php
MH on line 6
MH  8f3a675dfba34700962d029dbec358c1

MH was will diese fehlermeldung mir sagen?

MH gibt es da eingentlich einen unterschied zwischen session_id und 
MH cookie? oder wird die session_id im cookie gespeichert?




MH Grüße markus 


MH 
MH PUG - Penguin User Group Wiesbaden - http://www.pug.org

du musst die Session-ID ja irgendwie transportieren, das heißt von Seite zu Seite 
übertragen! Dafür gibt es 2 klassische technicken, entwender per Append hinter dem 
Dateinamen oder aber per Cookie. Das heißt im Cookie wird dann die Session-ID 
gespeichert. Das ist alles!

Außerdem kannst du ab 4.1 glaube ich auch den superglobalen Array $_SESSION nutzen, 
und dort deine Werte direkt eintragen. Es ist auch sinnvoll als erstes ob_start() 
einzutragen, um ein Cookie setzen zu können, nachdem bereits eine Ausgabe getätigt 
wurde - wie in deinen obigen Fehlercode zu ersehen ist!


-- 
Best regards,
 Saschamailto:[EMAIL PROTECTED]


smime.p7s
Description: S/MIME Cryptographic Signature


Re: [PUG] PHP: session id

2003-07-21 Diskussionsfäden Markus Hahn
Am Montag, 21. Juli 2003 15:13 schrieb Laurence Tonke:

 Du kannst Die session-id auch im Coolie speichern, mußt Du aber nicht:
Ah, sowas dachte ich mir schon.

 Mit Cookie:
 ini_alter(session.use_cookies,1);
 ini_alter(session.cookie_lifetime,31536000);
cool, jetzt weiß ich auch wieviele Sekunden ein Jahr hat.

 ini_alter(session.use_trans_sid,0);
 session_start();
 session_register(SessionID);
 $SessionID=session_id();
   $time = mktime()+31536000;
 setcookie (PHPSESSID, $$SessionID, $time);



Danke 

Grüße Markus 




PUG - Penguin User Group Wiesbaden - http://www.pug.org