Hallo allen,

Ik loop tegen het volgende probleem aan. Ik heb een website draaien op mijn Synology NAS. Werkt allemaal prima. Deze website wordt gesynchroniseerd met de site op mijn MacBook. Ze zijn dus identiek. Ook de database lokaal en op de NAS zijn identiek.

Het geval wil nu dat als ik inlog op de site op mijn NAS de procedure goed verloopt maar lokaal wil dir niet lukken. Als ik in het inlogscript op de plaats net voordat ik redirect naar de homepage controleer ben ik ook lokaal goed ingelogd. Zodra ik op de homepage aankom is de sessievariabele $_SESSION['user'] weg.

Ik hoop dat ik het duidelijk heb beschreven. Iemand een idee waar ik de oorzaak zou moeten zoeken. Overigens heeft het in het verleden wel goed gewerkt. Kan het een instelling in php.ini zijn?

Bij voorbaat dank
Peter
Onwaarschijnlijk. Wat zegt de error_log.
Staan foutmeldingen aan?
is hetdezelfde php versie?
synology is de nieuwste versie 8.0.17
local 8.1.8

[size=xsmall]Toevoeging op 16/07/2022 10:34:51:[/size]

Een beetje code kan mischien helpen
Wanneer je lokaal werkt worden cookies waarschijnlijk niet opgeslagen in de browser vanwege veiligheidsinstellingen.
Als ik gelijk heb, kan je dit gedrag terugzien in de browser, al dan niet met een plug-in (bijvoorbeeld "Cookie Quick Manager" in Firefox)
In de log geen meldinge.
Stukje code



index.php

<?php include("../include/session.php");
ini_set("display_errors", 1);
$_SESSION['cart1'][]="<?PHP echo $gebruiker;?>";
$meld="Homepage";
//logboek($title,$meld);



Login.php
//-----------------------------------------------------------------------------------
// inloggegevens opslaan in een cookie
//-----------------------------------------------------------------------------------
if($bewaar==1){
$verloopt_op = time() + 60*60*24*30; // maand
$_SESSION["inlogtime"]=time();
$_SESSION["verloopt"]=$verloopt_op;
setcookie("email", "$email", $verloopt_op,"/","");

$_SESSION['cart'][]="Gegevens bewaard!".$cc_pass;
$_SESSION['cart'][]="Gegevens bewaard!".$email;
} // einde bewaar

// ingelog en door naar de homepagek
phpinfo(); // tot hier gaat het goed vaiabelen bestaan

redirect_to('../php/index.php');
exit();

}else{

$_SESSION['cart'][]="Inloggen niet gelukt";
$gevonden="nee";
// inloggen niet gelukt
$_SESSION['cart'][]="Onjuiste invoer.";

if(isset($_SESSION['wacht'])){
// volgende foute invoer wachttijd verdubbelen
//$_SESSION['wacht']=($_SESSION['wacht']*2);
}else{
// 1e keer fout 5 seconden wachten
$_SESSION['wacht']=1;
}
$_SESSION['cart'][]="Bij de volgende poging is de wachttijd " .$_SESSION['wacht']. " seconden!";
$_SESSION['cart'][]="LET OP! Bij invoer is verschil tussen HOOFDLETTERS en kleine letters! ";
redirect_to("../app_register/login.php");
exit();
}
En wat zit er in include("../include/session.php") ?
Je moet wel eerst session_start() aanroepen, doe je dat ook?
../include/session.php

<?php
if (!isset($_SESSION)) {session_start();}

ini_set("display_errors", 1);
//error_reporting(E_ALL & ~E_NOTICE);
error_reporting(E_ALL);
$paginaName=$_SERVER['PHP_SELF'];
//**************************************************************
// variabelen instellen
//**************************************************************
date_default_timezone_set('Europe/Amsterdam');
setlocale(LC_ALL,'nl_NL');
$updated= "Bijgewerkt op: " . date ("F d Y H:i:s.", getlastmod());

$root=$_SERVER['DOCUMENT_ROOT'];

$root1="../";
$root2="../../";
$path="../";


connection naar de database









[size=xsmall]Toevoeging op 16/07/2022 15:50:53:[/size]

En dit werk dus allemaal goed op de server.
Fix je codeblok eens? ^^

Kijk ook eens wat print_r over je $_SESSION zegt?
Kijk ook eens wat print_r over je $_SESSION zegt?

<?PHP print_r($_SESSION['auth']);?>
Notice: Undefined index: auth in /Volumes/Werkdisk/Sites/home/php/index.php on line 98
Dit zou dus True moeten geven.

Wat bedoel je met: Fix je codeblok eens? ^^
Zie regel 34. Dat lijkt mij buiten je codeblok te horen.

Bestaat je SessionID cookie wel?
Ik heb alleen het relevante deel van het script gestuurd. t/m row 19.
De rest heb ik zelf bij gezet.



.Session_id:snn2dmsv8jbt97h0f3ii6ubsrc

Voor zover ik het nu kan bekijken wordt er na het inloggen een nieuwe sessie gestart.


[size=xsmall]Toevoeging op 16/07/2022 18:01:59:[/size]

Omdat het op de server goed werkt en de bestanden identiek zijn (Synology Drive) zou je toch aan kunnen nemen dat er met het script niets mis is.
>> Kijk ook eens wat print_r over je $_SESSION zegt?

>> <?PHP print_r($_SESSION['auth']);?>

Nu controleer je slechts op een bepaalde key. Check gewoon de complete session variabele eens om te zien of/wat daar (iets) in zit.

<?php

var_dump($_SESSION);

?>

Reageren