Session probleem in php

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Hallo,

Na mijn vorige vraag ivm een session probleem dat opgelost is, stoot ik na het wijzigen naar de laatste php versie op een nieuw probleem.
De session variables worden niet opgeslagen in de browser als ik ze in de sessie steek.

PHP:
$_SESSION["sessietest"] = "test waarde";

Ik kan die aanspreken via $_SESSION["sessietest"] binnen dezelfde pagina, en enkel wanneer ik de pagina laad en de $_SESSION["sessietest"] elke keer opnieuw toewijs.

Hoe komt dit en hoe kan ik het oplossen?

Alvast bedankt om mee te helpen denken.
 
gebruik je wel
Code:
session_start();
bovenaan bij het laden van de site?
 
Ja, dat doe ik :)

Ik heb ook geprobeerd om het toewijzen van de variabelen op het einde van mijn code te plaatsen en session_write_close() te gebruiken, maar dat lost het probleem niet op :confused:
 
Laatst bewerkt:
Heb je je error reporting al vol open gezet?
Misschien sta je van alles te onderdrukken?

Dit zou gewoon moeten werken
PHP:
<?php
session_start();

// Set session variables
$_SESSION["inhoud"] = "Bladiebla";
echo $_SESSION['inhoud'];
 
Laatst bewerkt:
Deze foutmelding krijg ik in opera:

Code:
Warning: session_start(): Session ID is too long or contains illegal characters. Only the A-Z, a-z, 0-9, "-", and "," characters are allowed in [url] on line 2 Warning: session_start(): Failed to read session data: files (path: ) in [url] on line 2

Normaal gebruik ik brave als browser.
 
Dat is wel apart.....
Pas je iets van de sessionID aan, misschien?

Wat komt er hier uit?
Code:
echo "Sessie ID is:" .session_id();
 
Ik krijg een 32 karakter lange string te zien: 2c25f90e0422eef677261761433a0748
 
En wat zegt dit?

Code:
echo "Maximale lengte: ". ini_get('session.sid_length');
 
Dit geeft 32, dus de sessie lengte kan niet te lang zijn :confused:
 
Heel vreemd!
Of voer je ergens opeens een session_regenerate_id() die ervoor zorgt dat je een normale sessieID krijgt?

Anders zou ik zeggen dat PHP ergens een flinke kronkel heeft, en dat die opnieuw geupdate/gecompileerd moet worden.
 
Neen, mijn code is minimaal met enkel session_start(), dan sessie variabelen toewijzen en op het einde van de pagina session_write_close()
Meer niet
 
Dan heeft PHP een kronkel in de kop. Tijd voor herinstallatie, zou ik zeggen.
Of je triggert misschien een merkwaardige bug. Welke versie heb je?
 
Dat is op de servers van one dot com

Ja, maar dat is niet het antwoord op mijn vraag.
Welke versie is het? Check dat even via phpinfo().
 
Versie 8.0
ik zie net dat er al 8.2 is, dus misschien dat overschakelen naar die het probleem oplost
 
Probeer dat inderdaad eens. Misschien draaien ze een buggy versie uit de 8.0 reeks.
Desalniettemin raad ik toch aan om dit even te melden bij one.com, met een testcase erbij.
 
En dat lost het niet op
Dus versie 8.2, zelfde probleem :confused:
 
Wis je cookies eens voor je host/domein?

Als het dan nog blijft bestaan: Gebeurt dit ook met een simpele testcase, zoals ik al liet zien?
Blijf je die melding zien? Of verdwijnt die na een refresh?
Gebeurt dit in alle browsers?
Kijk eens in je browser wat voor SessionID je krijgt via een cookiemanager?
 
Laatst bewerkt:
In opera krijg ik een 36 karakter lange session id met een punt ertussen: 60d1ad3d66a49640e5106c706a2.46337503
in brave een 32 karakter lange: 2c25f90e0422eef677261761433a0748
in edge ook een 32 karakter lange: 1499cb041e37796bad4bc0c3137f2083
 
Laatst bewerkt:
Dus in Opera moet het op zijn bek gaan, omdat die langer is. Gebruik je vreemde add-ons ofzo?
Maak eens een schoon profiel aan in Opera, als dat kan?

Heb je anders iets opmerkelijks ingesteld in een php.ini of .htaccess?
Dit neigt naar iets vanuit jouw apparaat dat zorgt voor een vreemde SessionID in PHP.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan