SwissNetWorX-Blog


Login ohne Registrierung (VMSone)
Beschreibung
Sobald ein User seine Klammid und Losepasswort ins Loginfeld eingibt
wird dieses überprüft.
Stimmen die Daten werden die uid und das Passwort gespeichert.
(Passwort wird mittels md5 verschlüsselt und ist nicht entschlüsselbar)
Nun ist der User Registriert und kann sich weiterhin mit Kid und Losepasswort einloggen.

Natürlich kann er auch sein Passwort auf deiner Seite jetzt beliebig ändern.
Der Status wird bei klamm nicht mehr abgefragt.

Zur Optischen Anzeige könnt ihr in der
vms 1.2.3 (root/lib/menue_links.php)
folgendes
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
 <tr>
  <td align="center">
   <b>Nickname:</b><br>
   <input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" style="width=110px;"><br>
   <b>Passwort:</b><br>
   <input type="Password" name="passwort" value="" style="width=110px;"><br>
   <select name="autologin" size="1" style="width=110px;">
    <option value="true" SELECTED>Mit Autologin&nbsp;</option>
    <option value="false">Ohne Autologin&nbsp;</option>
   </select><br>
   <br>
   <input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
  </td>
 </tr>
 <tr>
  <td height="15" align="left">
   <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/daten">Daten vergessen?</a>
  </td>
 </tr>
 <tr>
  <td height="15" align="left">
   <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/anmelden">Registrieren</a>
  </td>
 </tr>
</table>
ersetzen mit
<table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td align="center">
			<b>Klamm-ID:</b><br>
			<input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" style="width=110px;"><br>
			<b>Lose-Passwort:</b><br>
			<input type="Password" name="passwort" value="" style="width=110px;"><br>
			<select name="autologin" size="1" style="width=110px;">
			<option value="true" SELECTED>Mit Autologin&nbsp;</option>
			<option value="false">Ohne Autologin&nbsp;</option>
			</select><br>
			<br>
			<input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
		</td>
	</tr>
	<tr>
		<td  align="left">
			Keine Registrierung Nötig.
		</td>
	</tr>
</table>


Als nächstes:
(root/lib/header.php)
folgendes
<div id="info">
	<form action="" method="post">
		<input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" class="login">
		<input type="Password" name="passwort" value="" class="login">
		<input type="hidden" name="autologin" value="true">
		<button type="submit" name="checkid" id="go" value="Login">Login</button>
		<a href="?content=/intern/anmelden">Registrieren</a>
		<a href="?content=/intern/daten">Passwort anfordern!</a>
	</form>
	<span>
		<a href="?content=/intern/faqs">FAQ</a>|<a href="?content=/intern/agbs">AGB</a>
	</span>
	<br style="clear:both; font-size:0px;">
</div>
<?
}
?>
<div id="topnav">
	<ul>
		<li><a href="<?=$domain;?>">Startseite</a></li>
		<li><a href="?content=/intern/anmelden">Registrieren</a></li>
		<li><a href="?content=/intern/mediadaten">Mediadaten</a></li>
		<li><a href="?content=/intern/agbs">AGB</a></li>
		<li><a href="?content=/intern/faqs">FAQ</a></li>
		<li><a href="?content=/intern/impressum">Impressum</a></li>
	</ul>
</div>
<div id="info">
	<form action="" method="post">
		<input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" class="login">
		<input type="Password" name="passwort" value="" class="login">
		<input type="hidden" name="autologin" value="true">
		<button type="submit" name="checkid" id="go" value="Login">Login</button>
		<a href="?content=/intern/anmelden">Registrieren</a>
		<a href="?content=/intern/daten">Passwort anfordern!</a>
	</form>
	<span>
		<a href="?content=/intern/faqs">FAQ</a>|<a href="?content=/intern/agbs">AGB</a>
	</span>
	<br style="clear:both; font-size:0px;">
</div>
<?
}
?>
<div id="topnav">
	<ul>
		<li><a href="<?=$domain;?>">Startseite</a></li>
		<li><a href="?content=/intern/anmelden">Registrieren</a></li>
		<li><a href="?content=/intern/mediadaten">Mediadaten</a></li>
		<li><a href="?content=/intern/agbs">AGB</a></li>
		<li><a href="?content=/intern/faqs">FAQ</a></li>
		<li><a href="?content=/intern/impressum">Impressum</a></li>
	</ul>
</div>
<div id="info">
	<form action="" method="post">
		K-ID<input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" class="login">
		Lose-PW<input type="Password" name="passwort" value="" class="login">
		<input type="hidden" name="autologin" value="true">
		<button type="submit" name="checkid" id="go" value="Login">Login</button>
	</form>
	<span>
		<a href="?content=/intern/faqs">FAQ</a>|<a href="?content=/intern/agbs">AGB</a>
	</span>
	<br style="clear:both; font-size:0px;">
</div>
<?
}
?>
<div id="topnav">
	<ul>
		<li><a href="<?=$domain;?>">Startseite</a></li>
		<li><a href="?content=/intern/mediadaten">Mediadaten</a></li>
		<li><a href="?content=/intern/agbs">AGB</a></li>
		<li><a href="?content=/intern/faqs">FAQ</a></li>
		<li><a href="?content=/intern/impressum">Impressum</a></li>
	</ul>
</div>



Funktion. Öffne die root/lib/session.lib.php
Ersetze den Inhalt mit diesem.
/*
Datei : session.lib.php
Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
Loginmodifikation by Lokutos (paid-4.ch)
*/
@session_start();

// Variabeln definieren
if (!isset($_SESSION['login']))	 $_SESSION['login']	 = "";
if (!isset($_SESSION['werber']))	$_SESSION['werber']	 = "0";
if (!isset($_SESSION['uid']))	 $_SESSION['uid']	 = "0";
if (!isset($_POST['nickname']))	 $_POST['nickname']	 = "";
if (!isset($_POST['passwort']))	 $_POST['passwort']	 = "";
if (!isset($_POST['checkid']))	 $_POST['checkid']	 = "";
if (!isset($_POST['autologin']))	$_POST['autologin']	 = "";
if (!isset($_GET['logout']))	 $_GET['logout']	 = "";
if (!isset($_GET['ref']))	 $_GET['ref']	 = "0";

if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];

// Seiteneinstellungen laden...
$pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));

if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid']	 = "";
$_SESSION['passwort']	= "";
$_SESSION['login']	 = "";
header ("location: ".$domain."/wartung.php");
die();
}


// Login
if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {
$_POST['nickname'] = addslashes($_POST['nickname']);
$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")); 
@require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
usercheck ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_POST['nickname'],$_POST['passwort']);
if ($error) {
//Falsche daten
$_SESSION['uid']	 = "";
$_SESSION['passwort']	= "";
$_SESSION['login']	 = "";
} else {

//Einloggen
//überprüfen ob user das erste mal hier ist 
$user_check = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['nickname']."' LIMIT 1");
if (!mysql_num_rows($user_check)) {
db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) 
VALUES ('".$_POST['nickname']."','".md5($_POST['passwort'])."','1','','0')");
db_query("INSERT INTO ".$db_prefix."_emaildaten (uid,emailadresse,freigabe_fuer) 
VALUES ('".$_POST['nickname']."','','0')");
db_query("INSERT INTO ".$db_prefix."_userdaten (uid,nickname,vorname,nachname,angemeldet_seit) 
VALUES ('".$_POST['nickname']."','".$_POST['nickname']."','x','x','".time()."')");
db_query("INSERT INTO ".$db_prefix."_werberdaten (uid,werber,umsatz,zuordnungszeit) 
VALUES ('".$_POST['nickname']."','".$_SESSION['werber']."','0','".time()."')");	
}
$login_check = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['nickname']."' LIMIT 1");
$login_check = mysql_fetch_array($login_check);
//User war bereits hier
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' 
WHERE uid=".$login_check['uid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");
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);
}
echo $login_check['uid'];
$_SESSION['uid']	 = $login_check['uid'];
$_SESSION['passwort']	 = $login_check['passwort'];
$_SESSION['login']	 = "true";
header ("location: ".$domain);
die();
}
} else {
if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
}	



// Autologin
if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {

$_COOKIE['uid'] = (int)$_COOKIE['uid'];
$_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);

$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten 
WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' 
WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
$_SESSION['uid']	 = $login_check['uid'];
$_SESSION['passwort']	= $login_check['passwort'];
$_SESSION['login']	 = "true";
}
}
}

// Logout
if ($_GET['logout'] == 'true') {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid']	 = "";
$_SESSION['passwort']	 = "";
$_SESSION['login']	 = "";
header ("location: ".$domain);
die();
}
if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort'])){
db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()." 
WHERE uid = ".$_SESSION['uid']." AND passwort = '".$_SESSION['passwort']."' LIMIT 1");
}
?> 
Eintrag vom 07 January 2011 in der Kategorie Programmierung