Probleem met sessievariabelen naar volgende pagina
Test_1.php (dit werkt)
Code (php)
1
2
3
4
5
2
3
4
5
<?PHP
session_start();
$_SESSION['een']="nummer een";
echo "Sessie een=: ". $_SESSION['een'];
?>
session_start();
$_SESSION['een']="nummer een";
echo "Sessie een=: ". $_SESSION['een'];
?>
RESULTAAT: Sessie een=: nummer een
------------------------------------------------------------
Test_2.php (dit werkt NIET)
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
Gewijzigd op 03/12/2022 12:52:07 door - Ariën -
sess_0a9f8gc54to6d431n5o0ocou9k
sess_0j7ssgbee3eaagrpn1oulrvta5
sess_0ken4k0er5leae0mnkevqjs2r1
sess_0m7elqbb9dma0h64p21mb0eesi
Standaard wordt MAMP/...../htdocs gebruikt
In mij site echter op een andere map.
Deze is in de server instellingen correct aangepast en werkt verder ok!
print_r($_COOKIE) geeft geen resultaat.
Je sluit toch niet de browser tussen de 2 pagina's. want dan stopt de sessie natuurlijk ook.
Nee de browser blijft gewoon open. Ik heb geen idee waar ik moet zoeken waardoor nu de site plat ligt. Balen.
Test het eens in een andere browser of ander apparaat.
Firefox voert de scripts niet uit. Geef bij het uitvoeren een blank scherm zonder meldingen.
Toevoeging op 04/12/2022 00:22:05:
Is er misschien een foute instelling te zien op php.ini?
print_r($_SESSION);
De resultaten zijn exact hetzelfde als op mijn M1.
Toevoeging op 04/12/2022 00:52:42:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?PHP
session_start();
ini_set("display_errors", 1);
error_reporting(E_ALL);
print_r($_SESSION);
?>
session_start();
ini_set("display_errors", 1);
error_reporting(E_ALL);
print_r($_SESSION);
?>
Resultaat: Array ( )
Toevoeging op 04/12/2022 00:58:58:
Ik ga er een nachtje over slapen. Erg bedankt vast voor het meedenken. Misschien komt er nog ergens een helder moment.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
?>
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
?>
Code (php)
1
2
3
4
2
3
4
<?PHP
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
?>
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
?>
Resultaat: Sessie werkt: true
Toevoeging op 04/12/2022 08:57:30:
De bovenste is een foutje.
Toevoeging op 04/12/2022 09:18:21:
Ik ben er door jullie hulp van overtuigd dat ik ergens een fout in een script heb staan. Ik ga vanavond verder zoeken. Bedankt.
Toevoeging op 05/12/2022 08:17:55:
Helaas nog geen oplossing. Getracht oplossing te vinden met Cookies. Werkt ook niet. Zou dat vervand kunnen hebben. In de browser staan cookies op TOESTAAN.
Code (php)
Code (php)
RESULTAAT:
Cookie named 'MyCookie' is not set!
Toevoeging op 05/12/2022 08:21:09:
In het eerste script is "$value" = $value dus zonder "
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
$_SESSION['test'] = 'aaa';
?>
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
$_SESSION['test'] = 'aaa';
?>
test2.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$success = session_start();
echo 'Sessie werkt: ' . var_export($success, true);
var_dump($_SESSION);
?>
$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?
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 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.
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.
Toevoeging op 05/12/2022 19:58:21:
en kijk met "inspect" ook eens mee met het dataverkeer: is de session-id steeds hetzelfde?
Gebruik is https
Heb je hier wellicht iets aan? Ook iemand die problemen had met $_SESSION op een Macbook.
https://stackoverflow.com/questions/64887059/php-sessions-session-is-empty-running-locally-on-mac
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
Zoiets heb ik nog nooit meegemaakt.
Gewijzigd op 06/12/2022 16:20:34 door jan terhuijzen