PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Login mit user id und nickname



Hardy
29.03.2008, 23:53
Wie ist es möglich sich mit der userid UND den nickname einzuloggen?

jpwfour
31.03.2008, 18:42
datei /lib/session.lib.php öffnen:


suchen:


$_POST['nickname'] = addslashes($_POST['nickname']);

$login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis FROM
".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");damit ersetzen:



if(ctype_digit($_POST['nickname'])){

$login_check = db_query("SELECT u.nickname,k.uid,k.passwort,k.status,k.hinweis FROM
".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
WHERE k.uid='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");

}else{

$_POST['nickname'] = addslashes($_POST['nickname']);

$login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis FROM
".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");

}




jetzt natürlich noch kenntlich machen, dass sich die user per id auch einloggen können.

Hardy
31.03.2008, 21:20
Oh danke werde ich dann demnächst mal testen weist du ob es mit vms1.1 auch so funktioniert?

jpwfour
01.04.2008, 18:01
nee, das hab ich nicht.

aber der ansatz sollte ähnlich sein, kannst mir ja die session.lib.php vom 1.1er zukommen lassen oder hier posten.

Hardy
13.04.2008, 21:32
Also im 1.2 klappt das so leider nicht.
schau mal so sieht der login abschnitt im VMS 1.1 aus:


// Login
if ($_POST['checkid'] == 'Login' && $_POST['userid'] && $_POST['passwort']) {

// SecVMS change begin
$_POST['userid'] = (int)$_POST['userid'];
// SecVMS change end

$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_POST['userid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");

if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
// Wenn User noch nicht freigeschaltet!
if ($login_check['status'] == 0) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/kein_zutritt';
}
// Wenn beim User alles O.K. ist!
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_POST['userid']." and passwort='".md5($_POST['passwort'])."'");
if ($_POST['autologin'] == 'true') {
setCookie('uid',$login_check['uid'],time()+86400*30);
setCookie('passwort',$login_check['passwort'],time()+86400*30);
setCookie('autologin','true',time()+86400*30);
}
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
header ("location: ".$domain);
die();
}
// Wenn User gesperrt wurde!
if ($login_check['status'] == 2) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/user_gesperrt';
}
} else {
$_GET['content'] = '/error/kein_zutritt';
}

} else {
if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
}

jpwfour
13.04.2008, 21:36
im prinzip funktioneirt es da genauso, nur dass es statt $_POST['nickname'] im 1.1er $_POST['userid'] heißt, und dass die datenbank abfrage wahrscheinlich etwas anders aussehen muss, da ich das vms 1.1 aber nicht habe, kann ich dir die nicht basteln.