[PHP] sessions wel geschreven niet gelezen *

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Ik laat via een login script een sessie aanmaken in "/tmp". Als ik op de server kijk zie ik dan ook verschijnen, de gegevens komen ook overeen met de zaken die ik wegschrijf in de sessie. Echter op de een of andere manier worden de sessie gegevens daarna niet meer ingelezen.
De permissies van "/tmp" staan goed, de sessie bestanden worden geowned door apache uit de apache groep. Ik heb inmiddels verschillende scripts gebruikt, maar allemaal vertikken ze het, behalve als ik expliciet de sessie-id hard meegeef in het adres. Maar vanuit veiligheidsoverwegingen wil ik dat natuurlijk niet.
Op de een of andere manier moet ik een instelling wijzigen, maar welke?

De relevante zaken in php.ini:
session.save_handler = files
session.save_path = /tmp
session.use_cookies = On
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /tmp
session.cookie_domain = donald
session.serialize_handler = php
session.gc_probability = 1
session.gc_maxlifetime = 1440
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1

Iemand een idee?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31

Bosmonster

*zucht*

move W&G -> P&W

Je runt wel session_start() toch?
en use_trans_sid kun je wel uitzetten als je het niet via de URL mee wilt geven.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wat Bosmonster zegt. Wat ook nog kan: je gebruikt toch geen session_register en $_SESSION door elkaar he?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 21:46
Gisteren had iemand anders het zelfde probleem, [PHP] $_SESSION uitlezen lukt niet. Conclusie van dat topic was dat de TS een firewall programma had wat bepaalde cookies blokkeerde.

Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Ik gebruik geen firewall, fedora bak firewall uitgeschakeld.
Ik gebruik session_register maar geen _SESSION.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dan is dat je probleem. Session_register is niet zomaar depreciated. Stap over op het gebruik van $_SESSION en je hebt grote kans dat het wel werkt.
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
register_globals: important note: Since PHP 4.2.0, the default value for the PHP directive register_globals is off. The PHP community encourages all to not rely on this directive but instead use other means, such as the superglobals.

[ Voor 60% gewijzigd door NMe op 18-01-2005 14:57 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • htca
  • Registratie: November 2001
  • Laatst online: 22-09 13:55
Iets zegt me de volgende regels code dan te wijzigen:
code:
1
2
3
4
5
6
$cookie_name = $HTTP_POST_VARS['user'];
session_register ("cookie_name");
$enc_pwd = md5($HTTP_POST_VARS['password']);
session_register ("enc_pwd");
$referer = $HTTP_REFERER;
header("Location: $referer");

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Volgens mij weet jij niet wat superglobals zijn. ;) Je hebt je kennis waarschijnlijk uit een oud boek of een oude tutorial.

PHP:
1
2
3
4
$_SESSION['cookie_name'] = $_POST['user'];
$_SESSION['enc_pwd'] = md5($_POST['password']);
$referer = $_SERVER['HTTP_REFERER'];
header("Location: $referer");

Overigens check je, in ieder geval in deze code, je user input niet. Vertrouw nooit op user input. :P

[ Voor 26% gewijzigd door NMe op 18-01-2005 15:06 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

En daarvoor hebben we een speciaal onderdeel in de FAQ: P&W FAQ - PHP: gebruik van superglobals.

Dit soort form problemen met PHP zijn echt heel vaak voorbijgekomen hier :) Dus als je de volgende keer de search eens zou willen gebruiken EN de FAQ's eens even luchtig doorbladeren dan scheelt je dat weer een onnodig topic hier op GoT ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.