hulp bij 'remember me' optie in website (PHP)

Hier kunt u alles kwijt over computers en software

Moderator: Moderators

Plaats reactie
Gebruikersavatar
N-Rico
Technologist
Berichten: 269
Lid geworden op: 13 jul 2003 15:16
Locatie: Goebelsmuhle

hulp bij 'remember me' optie in website (PHP)

Bericht door N-Rico »

is hier iemand die wat meer bedreven is met PHP dan ik? :D

Ik heb op mijn eigen website een inlog mogeljikheid en wil hier graag een 'remember me' vinkje bij hebben, dus zal er iets in een cookie opgeslagen moeten worden (setcookie()?)

Heeft iemand hier ervaring mee?

Groet,

N-Rico
Gebruikersavatar
chromis
IT Tech. & Moderator
Berichten: 2315
Lid geworden op: 18 apr 2005 12:55
Locatie: Zuid Limburg

Bericht door chromis »

N-Rico,

Even googlen: http://www.free2code.net/plugins/articl ... .php?id=83
http://www.metalshell.com/view/source/117/

Een cookie is uiteindelijk een stuk tekst (een string) die de browser onthoudt. Een cookie 'sturen', beter gezegd setten doe je voordat je je HTML begint te sturen. De browser slaat deze dan apart op. Een cookie heeft een naam, een waarde, een verloopdatum, een pad (bv / of /forum) en domein (www.freethinker.nl) die bepalen wanneer de cookie gestuurd zal worden door de browser. De cookie maakt deel uit van de HTTP header die je browser verstuurt dus dmv. telnet kan je dat zien en evt. debuggen. Een cookie kan gelezen worden via de environment variabelen van apache, maar php voorziet daarin.
“But Marge, what if we chose the wrong religion? Each week we just make God madder and madder.” - Homer Simpson.
Gebruikersavatar
N-Rico
Technologist
Berichten: 269
Lid geworden op: 13 jul 2003 15:16
Locatie: Goebelsmuhle

Bericht door N-Rico »

Ah..thanks voor de reactie!

Ik ben al iets verder (ik had eerst de fout gemaakt om de cookie te zetten terwijl er al html was ge-output :) ) alleen nu wil ik eigenlijk dat als iemand logout clickt op m'n site dat de cookie wordt 'gecleared'....m'n logout form heeft als action 'checklogin.php'

in checklogin.php heb ik bovenin de onderstaande code staan:

<?php
ob_start();
include "inc/connect.php";
$link = mysql_connect($hostname, $mysql_login, $mysql_password) or die("MySQL: ".mysql_error());
mysql_select_db($database, $link) or die("MySQL: ".mysql_error());

if (isset($UserUnAuth)) {
setcookie('username',"",time() - 60*60*24*7);
setcookie('password',"",time() - 60*60*24*7);
session_start();
session_destroy();
header("Location: index.php");
} else {
.....

Als ik op logout click kom ik weer netjes terug op de index.php, maar ben ik nog steeds ingelogd :S

enig idee? :D

Greetz,
N-Rico
Gebruikersavatar
N-Rico
Technologist
Berichten: 269
Lid geworden op: 13 jul 2003 15:16
Locatie: Goebelsmuhle

Bericht door N-Rico »

laat maar :S haha

was pad en domein vergeten bij het 'unsetten' van de cookies :)

setcookie('username',"",time() - 60*60*24*7,"/","www.enricoklein.nl");
setcookie('password',"",time() - 60*60*24*7,"/","www.enricoklein.nl");

Thanks again!
Gebruikersavatar
chromis
IT Tech. & Moderator
Berichten: 2315
Lid geworden op: 18 apr 2005 12:55
Locatie: Zuid Limburg

Bericht door chromis »

De vraag is in hoeverre je browser meewerkt als het gaat om invalide cookies. Dat wil wellicht wel eens verschillen. Invalide cookies zijn inderdaad cookies die verlopen zijn. De kans bestaat dat ze pas gewist worden nadat je je browser hebt afgesloten.

Om dat te vermijden kan je de string "INVALID" oid in de cookies plaatsen en daarop extra checken.
“But Marge, what if we chose the wrong religion? Each week we just make God madder and madder.” - Homer Simpson.
Gebruikersavatar
N-Rico
Technologist
Berichten: 269
Lid geworden op: 13 jul 2003 15:16
Locatie: Goebelsmuhle

Bericht door N-Rico »

ah...goeie tip! verschillende browsers hebben inderdaad nogal eens verschillende wijzen van interpretatie :S

Thanks!

N-Rico
Gebruikersavatar
N-Rico
Technologist
Berichten: 269
Lid geworden op: 13 jul 2003 15:16
Locatie: Goebelsmuhle

Bericht door N-Rico »

Zoiets?

if (isset($_COOKIE['username']))
{
if ($_COOKIE['username'] !== "INVALID")
{
session_register('username','accesslevel','stylesheet');
include "inc/cookiecheck.php";
$_SESSION['username'] = $_COOKIE['username'];
}
}

:)

N-Rico
Gebruikersavatar
chromis
IT Tech. & Moderator
Berichten: 2315
Lid geworden op: 18 apr 2005 12:55
Locatie: Zuid Limburg

Bericht door chromis »

Bijvoorbeeld, ja.

!== zal denk ik != moeten zijn.

Maar mischien is dat equivalent in php.
“But Marge, what if we chose the wrong religion? Each week we just make God madder and madder.” - Homer Simpson.
Plaats reactie