Geachte,

Ik heb een loginscript aangemaakt dat een cookie aanmaakt wanneer een gebruiker correct inlogd. Daarna wordt de pagina ververst en wordt er gecontroleerd of de cookie al dan niet bestaat. Wanneer deze bestaat wordt de gebruiker doorgestuurd naar een beveiligde pagina, anders wordt hij terug gestuurd naar de hoofdpagina van de website. Tot dusver gaat alles zoals het hoort.

Nu wil ik op de beveiligde pagina opnieuw controleren of de cookie bestaat om zeker te zijn dat de gebruiker is ingelogd en dat hij niet gewoon de url van de beveiligde pagina heeft ingevoegd in de adresbalk van zijn webbrowser.
Ik probeerde dit op volgende wijze
if(isset($_COOKIE['User']) == false)
{
?><script type="text/javascript">
window.location.href='../index.php';
</script><?php
}
Het gevolg is dat hij nooit de cookie blijkt te vinden en dus steeds terugkeert naar index.php.
Hoe kan ik ervoor zorgen dat de cookie die aangemaakt werd in het loginscript kan worden opgevraagd in een andere pagina (nl mijn beveiligde index) ?

Hartelijk dank voor jullie hulp

Mvg,

Tommy
Kijk eens even of de cookie wel bestaat...
De cookie is wel degelijk aangemaakt. Wanneer ik de controle op de beveiligde index verwijder, werkt het script perfect.
Ook wanneer ik in m'n browser de cookie ga zoeken vind ik deze terug.
Wel onder de volgende vorm login User:True

Zojuist heb ik nog geprobeerd met
if(empty($_COOKIE['User']))
Maar ik krijg steeds hetzelfde probleem
Ik denk dat de cookie weer niet wordt aangemaakt. Want anders zou die var moeten bestaan...
Hoe zien de parameters van setcookie of de header van de cookie eruit?

Heb je in het domein van het cookie wel een punt, want firefox maakt geen cookie aan als er geen punt in het domein staat.
<? php
if (mysql_num_rows($res) == 1)
{
$value = "true";
setcookie ("User", $value, time()+1200);
}
?>
Martijn je verteld mij wat nieuws.. ik werk al jaren met cookies en heb nog nooit een . gebruikt in de domeinnaam...
@Eris:

Ik kijk nog wel eens in de code van phpBB3 en daar staat dat Firefox het dan niet pikt (in session.php geloof ik). Daarna ben ik even wezen kijken tussen het kommentaar bij setcookie op PHP.net en daar hebben zij het ook over iets soortgelijks.

Tommy doe eens dit dan:
<?php
setcookie ("User", $value, time()+1200, '/', '.mijndomein.nl');
?>

Uiteraard mijndomein.nl vervangen door je domein.
Eris & Martijn! hartelijk dank voor de hulp. Ik heb het script aangepast zoals Martijn! voorstelde en nu werkt alles perfect.

Reageren