Dubbelpunt
Legacy Member
Wij gebruiken volgend script zodat mensen op onze site kunnen inloggen, dit werkt voor iedere gebruiker, behalve voor 1 persoon: deze persoon logt in, maar als hij dan eender welke andere pagina bezoekt dan is hij terug uitgelogd 
dan logt hij opnieuw in zonder problemen, hij is dan ingelogd... dan klikt hij op een link (eender welke link op onze site) en hoppaaaa, hij is terug uitgelogd
Aan wat kan dit in godsnaam lukken? Ik heb het met mijn eigen ogen gezien. Ik heb zelfs firefox geïnstalleerd en ook daar zelfde probleem op zijn pc!

dan logt hij opnieuw in zonder problemen, hij is dan ingelogd... dan klikt hij op een link (eender welke link op onze site) en hoppaaaa, hij is terug uitgelogd

Aan wat kan dit in godsnaam lukken? Ik heb het met mijn eigen ogen gezien. Ik heb zelfs firefox geïnstalleerd en ook daar zelfde probleem op zijn pc!
PHP:
function login( $username=null,$passwd=null, $remember=0, $userid=NULL ) {
global $acl, $_VERSION;
$bypost = 0;
// if no username and password passed from function, then function is being called from login module/component
if (!$username || !$passwd) {
$username = stripslashes( strval( mosGetParam( $_POST, 'username', '' ) ) );
$passwd = stripslashes( strval( mosGetParam( $_POST, 'passwd', '' ) ) );
$passwd = md5( $passwd );
$bypost = 1;
// extra check to ensure that Joomla! sessioncookie exists
if (!$this->_session->session_id) {
mosErrorAlert( _ALERT_ENABLED );
return;
}
josSpoofCheck(NULL,1);
}
$row = null;
if (!$username || !$passwd) {
mosErrorAlert( _LOGIN_INCOMPLETE );
exit();
} else {
if ( $remember && strlen($username) == 32 && strlen($passwd) == 32 && $userid ) {
// query used for remember me cookie
$harden = mosHash( @$_SERVER['HTTP_USER_AGENT'] );
$query = "SELECT id, name, username, password, usertype, block, gid"
. "\n FROM #__users"
. "\n WHERE id = " . (int) $userid
;
$this->_db->setQuery( $query );
$this->_db->loadObject($user);
$check_username = md5( $user->username . $harden );
$check_password = md5( $user->password . $harden );
if ( $check_username == $username && $check_password == $passwd ) {
$row = $user;
}
} else {
$query = "SELECT id, name, username, password, usertype, block, gid"
. "\n FROM #__users"
. "\n WHERE (username = ". $this->_db->Quote( $username )
. "\n OR email = ". $this->_db->Quote( $username )
. "\n OR userNumber = ". $this->_db->Quote( $username )
. "\n ) AND password = ". $this->_db->Quote( $passwd )
;
$this->_db->setQuery( $query );
$this->_db->loadObject( $row );
}
if (is_object($row)) {
// user blocked from login
if ($row->block == 1) {
mosErrorAlert(_LOGIN_BLOCKED);
}
// fudge the group stuff
$grp = $acl->getAroGroup( $row->id );
$row->gid = 1;
if ($acl->is_group_child_of( $grp->name, 'Registered', 'ARO' ) || $acl->is_group_child_of( $grp->name, 'Public Backend', 'ARO' )) {
// fudge Authors, Editors, Publishers and Super Administrators into the Special Group
$row->gid = 2;
}
$row->usertype = $grp->name;
// initialize session data
$session =& $this->_session;
$session->guest = 0;
$session->username = $row->username;
$session->userid = intval( $row->id );
$session->usertype = $row->usertype;
$session->gid = intval( $row->gid );
$session->update();
// check to see if site is a production site
// allows multiple logins with same user for a demo site
if ( $_VERSION->SITE ) {
// delete any old front sessions to stop duplicate sessions
$query = "DELETE FROM #__session"
. "\n WHERE session_id != ". $this->_db->Quote( $session->session_id )
. "\n AND username = ". $this->_db->Quote( $row->username )
. "\n AND userid = " . (int) $row->id
. "\n AND gid = " . (int) $row->gid
. "\n AND guest = 0"
;
$this->_db->setQuery( $query );
$this->_db->query();
}
// update user visit data
$currentDate = date("Y-m-d\TH:i:s");
$query = "UPDATE #__users"
. "\n SET lastvisitDate = ". $this->_db->Quote( $currentDate )
. "\n WHERE id = " . (int) $session->userid
;
$this->_db->setQuery($query);
if (!$this->_db->query()) {
die($this->_db->stderr(true));
}
// set remember me cookie if selected
$remember = strval( mosGetParam( $_POST, 'remember', '' ) );
if ( $remember == 'yes' ) {
// cookie lifetime of 365 days
$lifetime = time() + 365*24*60*60;
$remCookieName = mosMainFrame::remCookieName_User();
$remCookieValue = mosMainFrame::remCookieValue_User( $row->username ) . mosMainFrame::remCookieValue_Pass( $row->password ) . $row->id;
setcookie( $remCookieName, $remCookieValue, $lifetime, '/' );
}
mosCache::cleanCache();
} else {
if ( $bypost ) {
mosErrorAlert(_LOGIN_INCORRECT);
} else {
$this->logout();
mosRedirect('index.php');
}
exit();
}
}
}