[PHP] session_start() werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben serieus overdonderd door de vele posts over session handling in PHP, maar toch... heleboel suggesties geprobeerd en niets resulteert.

<?
session_start();
echo session_id();

if(isset($_SESSION["myvar"]))
echo "bestaat";
else
$_SESSION["myvar"] = "ja";
?>

Bovenstaande code demonstreert zowel op mijn pc als mijn server dat de sessie id over meerdere requests heen gelijk blijft. Maar toch, de melding "bestaat" verschijnt niet op het scherm als ik de pagina vanaf mijn server raadpleeg. Als ik hem lokaal draai werkt hij wel.

Mijn server bij mijn hosting provider: PHP Version 5.1.0RC1. Lokaal draai ik PHP Version 5.2.1. session.auto_start staat bij beiden uit. register_globals staat uit op mijn PC, maar staat op mijn server nog aan. Voor zover ik heb kunnen verifieren heeft deze alleen invloed wanneer je de session_register() methodiek zou wilen toepassen en dat doe ik niet. Ik kan hem op mijn server voor zover ik weet alleen niet aanpassen.

Iemand suggesties wat de oorzaak zou kunnen zijn?

Juice
...Tastes like more!

Acties:
  • 0 Henk 'm!

  • sjongenelen
  • Registratie: Oktober 2004
  • Laatst online: 10:46
waarschijnlijk staan je register globals uit.. of aan... weet het niet meer :9 lang geleden dat ik mbo php had :P

you had me at EHLO


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Doe eens
PHP:
1
print_r($_SESSION)
Dat werkt een stuk sneller qua debuggen.

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TheNymf schreef op vrijdag 20 april 2007 @ 20:32:
lang geleden dat ik mbo php had :P
Tja, toen ik hbo deed was het nog gewoon pascal en c++ ;) Maar, ik heb iets geschreven over register globals dus als je er iets over kunt toelichten?

Juice
...Tastes like more!

Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

Verwijderd schreef op vrijdag 20 april 2007 @ 20:33:
[...]

Tja, toen ik hbo deed was het nog gewoon pascal en c++ ;) Maar, ik heb iets geschreven over register globals dus als je er iets over kunt toelichten?

Juice
...Tastes like more!
Heeft er niets mee te maken. Terug naar het debuggen! B-)

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
aex351 schreef op vrijdag 20 april 2007 @ 20:32:
Doe eens
PHP:
1
print_r($_SESSION)
Dat werkt een stuk sneller qua debuggen.
Output op mijn pc:
Bij eerste request:
Array ( )
Bij tweede request:
Array ( [myvar] => ja )

Output op mijn server:
Bij eerste request:
Array ( )
Bij tweede request:
Array ( )

Juice
...Tastes like more!

Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

error_reporting() enz staat gewoon aan op de server ? kan zijn dat iets zoals je zelf al vermoed niet goed staat ingesteld en je een notice zou moeten zien.

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
aex351 schreef op vrijdag 20 april 2007 @ 20:44:
error_reporting() enz staat gewoon aan op de server ? kan zijn dat iets zoals je zelf al vermoed niet goed staat ingesteld en je een notice zou moeten zien.
Foutmeldingen krijg ik wel. Vandaag nog in een ander script bewezen ;) Maar, voor jouw doel heb ik zojuist in bovenstaand script error_reporting(E_ALL); toegevoegd, direct voor session_start(); maar dit leidt niet tot een melding.

Helaas. 8)7

Juice
...Tastes like more!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, in de tussentijd ben ik nogmaals alle settings langsgelopen. Ik heb een custom php.ini op de server weten te maken. De wijzigingen die ik daarin aanbreng zijn zichtbaar met phpinfo().

- register_globals stond aan op de server en deze heb ik uitgezet om gelijk te zijn aan mijn pc.
- session.save_path heb ik op de server laten verwijzen naar "/home/joost/tmp".

Mijn testsessie.php file heb ik ook aangepast om te kunnen meten wat het effect is:
PHP:
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
<?php
error_reporting(E_ALL);   // pak alle eventuele fouten
session_start();

echo "
<HTML>
 <HEAD>
  <TITLE>Test ".$_SERVER["SERVER_NAME"]."</TITLE>
 </HEAD>
 <BODY>
  Session save path: ".session_save_path()."<BR>
  Session name: ".session_name()."<BR>
  Session ID: ".session_id()."<BR>
  <BR>
  This is a <A HREF=testsessie.php>link</A> to <A HREF=testsessie.php?".session_name()."=".session_id().">this page</A><BR>
  <BR>
";

print_r($_SESSION);
if (empty($_SESSION['count']))  $_SESSION['count'] = 1;
else                           $_SESSION['count']++;

echo "<BR>You have viewed this page ".$_SESSION['count']." times<BR><BR>";

phpinfo();
?>
 </BODY>
</HTML>



Het effect:
Op mijn PC onder xampp werkt het allemaal. Op de server houdt ik nog steeds de volgende effecten:
1. Session files worden aangemaakt, maar bevatten geen inhoud.
2. De print_r($_SESSION) levert bij herhaling "Array( )" op als resultaat.
3. De teller blijft op 1 staan.

Ik heb onder IE die ik in beide situaties gebruik nu ingesteld dat ik cookies handmatig moet accepteren. Dit functioneert aangezien ik de cookies van tweakers.net voor mijn kiezen krijg. IE lijkt daardoor het probleem niet te zijn. Zowel op mijn serverpagina als op mijn client pagina krijg ik geen popup. Dat is me nog niet duidelijk aangezien de client wel functioneert via cookies.

Kudos voor wie het juiste advies heeft d:)b

Juice
...Tastes like more!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
downgrade naar PHP 5.0.4 in combinatie met de php.ini file zoals hierboven beschreven leidt tot een correct functionerende sessie handling.

Het is een workaround, geen oplossing, maar ik kan weer verder. Mogelijk zit er dus wellicht een probleem in de 5.1.0.RC1 versie.

Juice
...Tastes like more!

Acties:
  • 0 Henk 'm!

  • soulrider
  • Registratie: April 2005
  • Laatst online: 27-11-2017
dan moet je eens kijken op php.net of een dergelijk probleem bekend is - zowiezo is het draaien van een rc1-versie op een (via internet bereikbare) live server niet echt aan te raden.
mogelijk voor test-omgevingen maar niet voor live-varianten of je moet de buglijst (en vooral de patches) serieus goed opvolgen of zelf kennis in huis hebben om dit op te vangen.

en waarom een downgrade op je server als je weet hebt van een nieuwere versie waarin het wel werkt
(je hebt 5.2.1 draaien op je pc en die doet het, de 5.1.0 rc1 doet het niet - en jij gaat naar 5.0.4 ??)

btw: php en sessie hoort thuis bij programmeren niet client software algemeen
(php heeft nix te maken met client maar met servers ;) )

ohja je signature
Juice
...Tastes like more!
zet ide effe echt in je signature ipv die er telkens onder te typen dat stoort serieus terwijl het nix bijdraagd tot je posts :) (en je bespaart je wat rsi-veroorzakend typwerk)

[ Voor 12% gewijzigd door soulrider op 21-04-2007 03:44 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Ik ga dit topic toch even verplaatsen naar het juiste forum :) En de opmerking over je signature kan ik onderstrepen; daarnaast mag je ze er van mij uit al je bestaande posts meteen uitslopen want het leest irritant en je wilt mensen niet irriteren die je proberen te helpen ;)

CSA > PW

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1