Vraag

Session variabelen

  • 19 april 2018
  • 8 reacties
  • 233 keer bekeken

Sinds een paar dagen werkt mijn website niet meer naar behoren. De session variabelen zijn namelijk niet (langer) gezet.
Ik heb de site zelf in PHP gemaakt en deze draaide probleemloos tot een paar dagen geleden.
In de persoonlijke KPN omgeving (Cloudservice Portal) zie ik wel dat er bij de abonnementen achter
"Physical hosting (Apache) NG" - een rode balk staat. Heeft dit er mogelijk iets mee te maken?
Deze site is voor een kennis van mij en deze verklaart dat en wat abonnementen wel iets veranderd is.
Weet iemand hoe dit op te lossen?

8 reacties

Reputatie 6
Badge +5
Goedemorgen @De Zager,

Hmm, het is natuurlijk niet de bedoeling dat die variabelen wegvallen. Ik ben heel benieuwd naar die rode balk. Zou u mij (eventueel in een privébericht) kunnen laten weten om welke domeinnaam het gaat? Dan kijk ik even mee!
Reputatie 6
Badge +5
Hi @De Zager,

Bedankt voor uw privébericht 😄

Ik heb uw domein even opgezocht, en de rode balk is niets om u zorgen over te maken. Deze geeft simpelweg aan dat u 1 keer apache hosting in uw account heeft staan, en deze op dit moment ook in gebruik genomen heeft.

Dat klopt dus als een bus!

Volgens mij heb ik het probleem gevonden in de codering van de sessies! Er wordt namelijk nergens een session_start(); aangekondigd. Op PHP 7 is dit inderdaad niet meer noodzakelijk, maar bij KPN maken we gebruik van de volgende PHP versies:

Hierin wordt het niet aankondigen van een sessie dus nog niet ondersteund. ☺

Waarschijnlijk zit hier het issue! 🤓 @SjorsK, heb jij misschien nog een toevoeging als website wiz?
Dit lijkt me niet het probleem.
Session_start() wordt aangeroepen in het bestand inc/config.php.

Wat wel raar is, is dat de site het soms wel, dan weer niet doet.
Als de site niet functioneert dan mist deze de session.
Reputatie 7
Badge +6
Over welke site gaat het als ik vragen mag? Mogelijk kan ik clientside wat troubleshooten.

Verder raad ik aan om php 5.6 te proberen, de kans bestaat dat deze php versie beter de sessies bij houd
Ik ben geen expert op dit gebied, maar wat ik wel kan zien is dat ik wel een session_id() krijg, maar deze verlies zijn waarden als ik inlog.
Bij het inloggen ga ik via login naar de index terug met Header("Location: index.php");
De indexpagina verschijnt maar de session variabelen zijn leeg......
Raar blijft dat de site eerst jaren heeft gewerkt.
vanmiddag lukte het ineens wel.
dus ?????????
Als ik de site lokaal met mijn testserver draai dan werkt alles naar behoren.
Reputatie 7
Badge +6
Ah, dan zal er waarschijnlijk een probleem zitten in het inlogscript dat de sessie niet goed wordt opgezet. Ik heb met blanco gegevens geprobeerd in te loggen maar kan het probleem niet reproduceren.

Er bestaat de kans dat ergens in login.php een harde path naar een bestand staat die mogelijk anders is in de nieuwe KPN hosting omgeving of dat een bestand vaker wordt aangeroepen zodat er een conflict kan ontstaan in specifieke situaties.

Ik vraag mij af, gebruik je include of include_once voor het inladen van de config file? Ik raad aan om gebruik te maken van include_once om te voorkomen dat deze vaker wordt ingeladen.
Hallo SjorsK .
Ik gebruik require_once.
Als ik inlog en de variabelen check, dan is de sessie wel gezet zolang ik niet van pagina wissel.

if($gebruiker_id !== false)
{
// Geldige gebruikersnaam en wachtwoord
// ... genereer nieuw sessie id voor veiligheid
session_regenerate_id(true);
// ... en log gebruiker in.
$gebruiker->login($gebruiker_id);
// Stuur door naar beginpagina
Header("Location: index.php");
}

Vanaf het punt " Header("Location: index.php"); " gaat de sessie verloren.
Het session_id blijft bestaan.

Vandaag is het weer gewoon mogelijk om in te loggen.
Maar voor hoelang ?? Geen idee .

Ik heb nu het pad anders gemaakt en kan gewoon inloggen.
" Header("Location: ../index.php"); "
Eens kijken of het hier aan ligt...

Reageer