Ik heb een nieuwe website en daar werken de sessions niet van de ene op de andere pagina. Misschien doe ik iets niet goed.

test.php

<?php

    session_start();

$_SESSION['ID'] = "112233";
$_SESSION['token'] = "mytoken";

print $_SESSION['ID'];
print $_SESSION['token'];
?>
<a href="test2.php">info 2</a>


test2.php

Sessie:
<?php
session_start();

print $_SESSION['ID'];
print $_SESSION['token'];
	  

?>
<a href="test.php">info</a>


Doe ik iets niet goed of wat zou het probleem kunnen zijn?

En als ik op de eerste pagina deze code set:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

?>


Dan krijg ik de volgende foutmelding:

Warning: session_start(): open(/data/www/website.nl/temp/sess_11qlppthvtmthqasiqbc3ja51g, O_RDWR) failed: No such file or directory (2) in /data/www/website.nl/www/test.php on line 27 Warning: session_start(): Failed to read session data: files (path: /data/www/website.nl/temp) in /data/www/website.nl/www/test.php
Is het je eigen server, of is deze onder beheer bij een hostingbedrijf?
Waar heb jij het session-save-path gedefinieerd?

Want in de map waar je website staat, is niet heel gebruikelijk.
En als je dat wilt: is de map .../temp/ beschrijfbaar door de webserver?

Om te beginnen zou je die met chmod op 0777 kunnen zetten (als test: 0777 is zelden een heel goed idee).

session-save-path is gebruikelijker in bijvoorbeeld /tmp, aangezien je webserver daar zeker schrijfrechten heeft.
Ivo P op 13/10/2023 16:33:08

session-save-path is gebruikelijker in bijvoorbeeld /tmp, aangezien je webserver daar zeker schrijfrechten heeft.


Op mijn DirectAdmin server is deze beschikbaar onder:
/home/{username}/tmp

Ik denk dat je die, als je meerdere gebruikers op de server hebt, gescheiden wil opslaan.

- Ariën - op 13/10/2023 14:38:03

Is het je eigen server, of is deze onder beheer bij een hostingbedrijf?


Het is op een server van een hostingbedrijf.
Dan kan je beter de support daar om hulp vragen. Want het is een grote kans dat jij hier niks aan kan doen.

Misschien kan je wel bij je temp-map om de juiste rechten in te stellen, maar vraag liever de hosting om hulp. Misschien hebben andere klanten op de server er ook last van.
Je kunt het probleem ook vermijden door SessionHandlerInterface te implementeren die sessies naar een database schrijft. Dat is meestal veiliger omdat je niet weet wie er nog meer meekijkt op het bestandssysteem.

Reageren