Ryzer
Legacy Member
Hallo,
Ik heb een class geschreven voor een login systeem in m'n script. Deze maakt gebruik van Cookies. Alles werkte perfect, tot ik nu ineens nog eens in IE test, en hierin werkt het dus niet. Volgens een kameraad heeft Opera ook problemen. Het zit namelijk zo, dat als ik inlog via m'n class, hij zegt "logged in" maar uiteindelijk toch terug de "please log in" pagina toont.
EDIT: code fixed, lees reply hieronder aub
Er scheelt dus iets met het plaatsen van de cookies blijkbaar. Ik heb al geprobeerd of de plaats waar "setcookie()" aangeroepen wordt degelijk bereikt wordt, en dit is het geval. Verder heb ik ook geprobeerd de argumenten "expire", "path" en "domain" mee te geven aan de setcookie() functie, maar helaas zonder resultaat.
Weet iemand wat er mis is?
Mvg,
Ryzer
Ik heb een class geschreven voor een login systeem in m'n script. Deze maakt gebruik van Cookies. Alles werkte perfect, tot ik nu ineens nog eens in IE test, en hierin werkt het dus niet. Volgens een kameraad heeft Opera ook problemen. Het zit namelijk zo, dat als ik inlog via m'n class, hij zegt "logged in" maar uiteindelijk toch terug de "please log in" pagina toont.
EDIT: code fixed, lees reply hieronder aub
PHP:
class cl_login {
var $record;
function cl_login() {
global $DB;
$this->record=$DB->query_first("SELECT * FROM {PREFIX}_users WHERE username='".addslashes($_COOKIE['login']['username'])."' AND password='".$_COOKIE['login']['password']."' LIMIT 1;");
if(!isset($this->record['uid'])) {
unset($this->record);
}
}
function login($username, $password) {
global $DB;
$this->record=$DB->query_first("SELECT * FROM {PREFIX}_users WHERE username='".addslashes($username)."' AND password='".md5($password)."' LIMIT 1;");
if (isset($this->record['username'])) {
if (!headers_sent()) {
setcookie("username", $username);
setcookie("password", md5($password));
return 1;
}else{
unset($this->record);
return 0;
}
}else{
unset($this->record);
return 0;
}
}
function logout() {
if (!headers_sent()) {
setcookie("username", "", time()-3600);
setcookie("password", "", time()-3600);
unset($this->record);
return 1;
}else{
return 0;
}
}
function is_logged() {
if(!isset($_COOKIE['username']) || !isset($_COOKIE['password'])) {
return 0;
}else{
if ($this->record['username'] == $_COOKIE['username'] && $this->record['password'] == $_COOKIE['password']) {
return 1;
}else{
return 0;
}
}
}
}
Er scheelt dus iets met het plaatsen van de cookies blijkbaar. Ik heb al geprobeerd of de plaats waar "setcookie()" aangeroepen wordt degelijk bereikt wordt, en dit is het geval. Verder heb ik ook geprobeerd de argumenten "expire", "path" en "domain" mee te geven aan de setcookie() functie, maar helaas zonder resultaat.
Weet iemand wat er mis is?
Mvg,
Ryzer
Ik zal eens kijken naar de manua lvan (un)serialize.