Ik weet het, hier zijn meer topics over, maar in veel van die gevallen komt men er gewoon ook al niet uit. Daarom hier weer eens de vraag hoe het nu precies zit met het zetten van cookies die overal binnen jouw site te benaderen zijn.
Als voorbeeld (en tevens mijn probleem):
/login/check.php
Hier wordt de invoer van de gebruiker (username / password) gecontroleerd met de informatie die in de database staat. Bij een correcte login wordt dit uitgevoerd:
Ik krijg dan ook netjes COOKIE GEZET te zien als ik correct inlog.
Als iemand ingelogd is, moet dat uiteraard niet opnieuw gebeuren, dus heb ik een kleine if-statement opgenomen bij het login-scherm (/login/login.php):
Voor dit kleine stukje had ik even geen zin om php tussen { } af te sluiten
... voor zover ik weet en heb kunnen vinden hier op GoT en php.net zou die if-statement zo goed moeten zijn. Ik heb al eerder met cookies gewerkt, alleen maakte ik die in de root aan, wat natuurlijk niet zo netjes is.
Nu maak ik die cookie aan en geef als pad '../', wat in de root uit zou moeten komen. Het wazige is, dat zowel check.php als login.php in dezelfde directory staan en dat het dus sowieso zou moeten werken.
Het resultaat van inloggen en opnieuw de login pagina aanvragen is dat je weer de 'normale' login pagina krijgt, kennelijk wordt de if-statement als false bestempeld... waaaaroommm?
Als voorbeeld (en tevens mijn probleem):
/login/check.php
Hier wordt de invoer van de gebruiker (username / password) gecontroleerd met de informatie die in de database staat. Bij een correcte login wordt dit uitgevoerd:
PHP:
1
2
| SetCookie('login', $username, time()+2620800, '../'); echo "COOKIE GEZET"; |
Ik krijg dan ook netjes COOKIE GEZET te zien als ik correct inlog.
Als iemand ingelogd is, moet dat uiteraard niet opnieuw gebeuren, dus heb ik een kleine if-statement opgenomen bij het login-scherm (/login/login.php):
PHP:
1
2
3
4
5
| if(isset($_COOKIE['login'])){ echo "<table align='center'>"; echo "<tr><td align='center'>You are already loggin in as:</td></tr>"; echo "<tr><td align='center'>".$_COOKIE['login']."</td></tr>"; } |
Voor dit kleine stukje had ik even geen zin om php tussen { } af te sluiten
Nu maak ik die cookie aan en geef als pad '../', wat in de root uit zou moeten komen. Het wazige is, dat zowel check.php als login.php in dezelfde directory staan en dat het dus sowieso zou moeten werken.
Het resultaat van inloggen en opnieuw de login pagina aanvragen is dat je weer de 'normale' login pagina krijgt, kennelijk wordt de if-statement als false bestempeld... waaaaroommm?
Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.