Ik heb een probleem met SESSIE variabelen. Ik heb 2 pagina’s gemaakt.


Test_1.php (dit werkt)

<?PHP
session_start();
$_SESSION['een']="nummer een";
echo "Sessie een=: ". $_SESSION['een'];
?>
RESULTAAT: Sessie een=: nummer een
------------------------------------------------------------


Test_2.php (dit werkt NIET)

<?PHP
session_start();
echo "Sessie een=: ". $_SESSION['een'];
?>
RESULTAAT: Sessie een=:

Kan iemand een tip geven waar dit aan zou kunnen liggen.
PHP Version 7.4.21


[Session]

session.save_handler = files
session.save_path = /Applications/MAMP/tmp/php
session.use_strict_mode = 0
session.use_cookies = 1

; http://php.net/session.cookie-secure
;session.cookie_secure =
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; find /path/to/sessions -cmin +24 -type f | xargs rm

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
; http://php.net/session.referer-check
session.referer_check =

;
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
;session.trans_sid_hosts=“"


Groet,
Peter
test1.php

<?php

$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
$_SESSION['test'] = 'aaa';

?>
test2.php

<?php

$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
var_dump($_SESSION);

?>
Ga in je browser naar test1.php en direct daarna naar test2.php. Wat zie je dan?
1. Sessie werkt: true

2. Sessie werkt: truearray(0) { }




Inmiddels het volgend gedaan;

1. Hele website op een losse SSD geplaatst.
2. Alle instellingen aangepast zodat het werkt.
3. Alles werkt zoals eerst maar sessies en cookies NIET
4. De SSD aangesloten op oude macbook pro en instellingen aangepast
5. Ook hier werkt alles en ook de SESIONS.

Dus samengevat: De site op de SSD werkt wel met SESSION in macbook 1 maar niet met session en cookies op macbook M1
Verder slaat Chrome alle Cookies van andere applicatie gewoon op.
Omdat alles werkt op mijn oude MacBook lijkt er met de scripts op de websites dus niets mis.
Waar zou dan de oorzaak kunnen liggen is nu de vraag.

Ik heb MAMP helemaal verwijderd en opnieuw geïnstalleerd. Maakt geen verschil SESSION op de M1 heeft er geen zin in.
Heb je het al eens in een andere browser geprobeerd?
Ik zou bijna denken dat je ergens in je php een fout hebt, of per ongeluk iets doet als...

$_SESSION = [];
// Of
unset($_SESSION);

Ik weet niet hoe complex je project is en hoeveel code erin zit, maar in de hele route die je request aflegt door je php scripts kan het misschien toch ergens zitten... Bijvoorbeeld doordat je een keer iets testte.

Ik weet dat php de data die in een sessie zit, opslaat in een file (gebeurt achter de schermen door php). Ik weet niet wat het standaard pad is naar die sessie file(s). Het zal in elk geval in een beveiligde map zitten en niet toegankelijk zijn via het web.
Je zou kunnen proberen:
1. Request naar test1.php
2. Die test1.php schrijft nu een waarde in je $_SESSION. Met andere woorden, er is nu een sessie gemaakt en naartoe geschreven.
3. De sessie moet nu voorkomen in een/de session storage file van php.
4. De sessie file moet je ergens kunnen benaderen en uitlezen, om te controleren of de sessie data is opgeslagen.
Dan weet je in elk geval dat het tot dat punt werkt.

Safari hetzelfde als Chrome. Ook geen SESSIONS en COOKIES.
Vervolgens Chrome verwijderd en opnieuw geinstalleerd. Geen verschil.

Ik heb mijn SSD met de site gekoppeld aan een oud MacPro die ik nog heb staan.
Werkt daar het wel inclusief SESSIES en COOKIES.

De oorzaak zit waarschijnlijk ergens anders maar waar??? Ik heb geen idee wat ik nog zou kunnen proberen.
gebruik je overal of op sommige plekken httpS?

[size=xsmall]Toevoeging op 05/12/2022 19:58:21:[/size]

en kijk met "inspect" ook eens mee met het dataverkeer: is de session-id steeds hetzelfde?
De sessie_id is steeds verschillend. Soms 3 verschillend binnen 1 minuut.
Gebruik is https
Ik heb de link bekeken. Dit gaat hoofdzakelijk over aanpassen van php.ini.
Op de andere 2 pc waarop ik site tijdelijk heb geinstalleerd draai hij goed met de zelfde php.ini
Toch bedankt voor het meedenken.
Gr
Peter
Het lijkt er dus in elk geval op dat de webbrowser raar doet en de session id niet in zijn geheugen houdt en dus niet bij elke nieuwe request hetzelfde session id meestuurt.
Zoiets heb ik nog nooit meegemaakt.

Reageren