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
  1. <table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
  2.  <tr>
  3.   <td align="center">
  4.    <b>Nickname:</b><br>
  5.    <input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" style="width=110px;"><br>
  6.    <b>Passwort:</b><br>
  7.    <input type="Password" name="passwort" value="" style="width=110px;"><br>
  8.    <select name="autologin" size="1" style="width=110px;">
  9.     <option value="true" SELECTED>Mit Autologin&nbsp;</option>
  10.     <option value="false">Ohne Autologin&nbsp;</option>
  11.    </select><br>
  12.    <br>
  13.    <input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
  14.   </td>
  15.  </tr>
  16.  <tr>
  17.   <td height="15" align="left">
  18.    <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/daten">Daten vergessen?</a>
  19.   </td>
  20.  </tr>
  21.  <tr>
  22.   <td height="15" align="left">
  23.    <img src="images/pfeil.gif" border="0" alt="">&nbsp;<a href="?content=/intern/anmelden">Registrieren</a>
  24.   </td>
  25.  </tr>
  26. </table>
ersetzen mit
  1. <table width="100%" align="center" cellpadding="0" cellspacing="0" border="0">
  2.         <tr>
  3.                 <td align="center">
  4.                         <b>Klamm-ID:</b><br>
  5.                         <input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" style="width=110px;"><br>
  6.                         <b>Lose-Passwort:</b><br>
  7.                         <input type="Password" name="passwort" value="" style="width=110px;"><br>
  8.                         <select name="autologin" size="1" style="width=110px;">
  9.                         <option value="true" SELECTED>Mit Autologin&nbsp;</option>
  10.                         <option value="false">Ohne Autologin&nbsp;</option>
  11.                         </select><br>
  12.                         <br>
  13.                         <input type="Submit" name="checkid" value="Login" style="width=110px;"><br><br>
  14.                 </td>
  15.         </tr>
  16.         <tr>
  17.                 <td  align="left">
  18.                         Keine Registrierung Nötig.
  19.                 </td>
  20.         </tr>
  21. </table>


Als nächstes:
(root/lib/header.php)
folgendes
  1. <div id="info">
  2.         <form action="" method="post">
  3.                 <input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" class="login">
  4.                 <input type="Password" name="passwort" value="" class="login">
  5.                 <input type="hidden" name="autologin" value="true">
  6.                 <button type="submit" name="checkid" id="go" value="Login">Login</button>
  7.                 <a href="?content=/intern/anmelden">Registrieren</a>
  8.                 <a href="?content=/intern/daten">Passwort anfordern!</a>
  9.         </form>
  10.         <span>
  11.                 <a href="?content=/intern/faqs">FAQ</a>|<a href="?content=/intern/agbs">AGB</a>
  12.         </span>
  13.         <br style="clear:both; font-size:0px;">
  14. </div>
  15. <?
  16. }
  17. ?>
  18. <div id="topnav">
  19.         <ul>
  20.                 <li><a href="<?=$domain;?>">Startseite</a></li>
  21.                 <li><a href="?content=/intern/anmelden">Registrieren</a></li>
  22.                 <li><a href="?content=/intern/mediadaten">Mediadaten</a></li>
  23.                 <li><a href="?content=/intern/agbs">AGB</a></li>
  24.                 <li><a href="?content=/intern/faqs">FAQ</a></li>
  25.                 <li><a href="?content=/intern/impressum">Impressum</a></li>
  26.         </ul>
  27. </div>
  28.  
ersetzen mit
  1. <div id="info">
  2.         <form action="" method="post">
  3.                 K-ID<input type="Text" name="nickname" value="<?=$_POST["nickname"];?>" class="login">
  4.                 Lose-PW<input type="Password" name="passwort" value="" class="login">
  5.                 <input type="hidden" name="autologin" value="true">
  6.                 <button type="submit" name="checkid" id="go" value="Login">Login</button>
  7.         </form>
  8.         <span>
  9.                 <a href="?content=/intern/faqs">FAQ</a>|<a href="?content=/intern/agbs">AGB</a>
  10.         </span>
  11.         <br style="clear:both; font-size:0px;">
  12. </div>
  13. <?
  14. }
  15. ?>
  16. <div id="topnav">
  17.         <ul>
  18.                 <li><a href="<?=$domain;?>">Startseite</a></li>
  19.                 <li><a href="?content=/intern/mediadaten">Mediadaten</a></li>
  20.                 <li><a href="?content=/intern/agbs">AGB</a></li>
  21.                 <li><a href="?content=/intern/faqs">FAQ</a></li>
  22.                 <li><a href="?content=/intern/impressum">Impressum</a></li>
  23.         </ul>
  24. </div>
  25.  



Funktion. Öffne die root/lib/session.lib.php
Ersetze den Inhalt mit diesem.
  1. /*
  2. Datei : session.lib.php
  3. Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
  4. Loginmodifikation by Lokutos (paid-4.ch)
  5. */
  6.  
  7. // Variabeln definieren
  8. if (!isset($_SESSION['login']))  $_SESSION['login']      = "";
  9. if (!isset($_SESSION['werber']))        $_SESSION['werber']      = "0";
  10. if (!isset($_SESSION['uid']))    $_SESSION['uid']        = "0";
  11. if (!isset($_POST['nickname']))  $_POST['nickname']      = "";
  12. if (!isset($_POST['passwort']))  $_POST['passwort']      = "";
  13. if (!isset($_POST['checkid']))   $_POST['checkid']       = "";
  14. if (!isset($_POST['autologin']))        $_POST['autologin']      = "";
  15. if (!isset($_GET['logout']))     $_GET['logout']         = "";
  16. if (!isset($_GET['ref']))        $_GET['ref']    = "0";
  17.  
  18. if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];
  19.  
  20. // Seiteneinstellungen laden...
  21. $pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
  22.  
  23. if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
  24. setcookie('uid','',time()-86400*30);
  25. setcookie('passwort','',time()-86400*30);
  26. setcookie('autologin','',time()-86400*30);
  27. $_SESSION['uid']         = "";
  28. $_SESSION['passwort']   = "";
  29. $_SESSION['login']       = "";
  30. header ("location: ".$domain."/wartung.php");
  31. die();
  32. }
  33.  
  34.  
  35. // Login
  36. if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {
  37. $_POST['nickname'] = addslashes($_POST['nickname']);
  38. $schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1"));
  39. @require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
  40. usercheck ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_POST['nickname'],$_POST['passwort']);
  41. if ($error) {
  42. //Falsche daten
  43. $_SESSION['uid']         = "";
  44. $_SESSION['passwort']   = "";
  45. $_SESSION['login']       = "";
  46. } else {
  47.  
  48. //Einloggen
  49. //überprüfen ob user das erste mal hier ist
  50. $user_check = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['nickname']."' LIMIT 1");
  51. if (!mysql_num_rows($user_check)) {
  52. db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand)
  53. VALUES ('".$_POST['nickname']."','".md5($_POST['passwort'])."','1','','0')");
  54. db_query("INSERT INTO ".$db_prefix."_emaildaten (uid,emailadresse,freigabe_fuer)
  55. VALUES ('".$_POST['nickname']."','','0')");
  56. db_query("INSERT INTO ".$db_prefix."_userdaten (uid,nickname,vorname,nachname,angemeldet_seit)
  57. VALUES ('".$_POST['nickname']."','".$_POST['nickname']."','x','x','".time()."')");
  58. db_query("INSERT INTO ".$db_prefix."_werberdaten (uid,werber,umsatz,zuordnungszeit)
  59. VALUES ('".$_POST['nickname']."','".$_SESSION['werber']."','0','".time()."')");
  60. }
  61. $login_check = db_query("SELECT * FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['nickname']."' LIMIT 1");
  62. $login_check = mysql_fetch_array($login_check);
  63. //User war bereits hier
  64. db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."'
  65. WHERE uid=".$login_check['uid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");
  66. if ($_POST['autologin'] == 'true') {
  67. setcookie('uid',$login_check['uid'],time()+86400*30);
  68. setcookie('passwort',$login_check['passwort'],time()+86400*30);
  69. setcookie('autologin','true',time()+86400*30);
  70. }
  71. echo $login_check['uid'];
  72. $_SESSION['uid']         = $login_check['uid'];
  73. $_SESSION['passwort']    = $login_check['passwort'];
  74. $_SESSION['login']       = "true";
  75. header ("location: ".$domain);
  76. die();
  77. }
  78. } else {
  79. if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
  80. }      
  81.  
  82.  
  83.  
  84. // Autologin
  85. if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {
  86.  
  87. $_COOKIE['uid'] = (int)$_COOKIE['uid'];
  88. $_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);
  89.  
  90. $login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten
  91. WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
  92. if (mysql_num_rows($login_check)) {
  93. $login_check = mysql_fetch_array($login_check);
  94. if ($login_check['status'] == 1) {
  95. db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."'
  96. WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
  97. $_SESSION['uid']         = $login_check['uid'];
  98. $_SESSION['passwort']   = $login_check['passwort'];
  99. $_SESSION['login']       = "true";
  100. }
  101. }
  102. }
  103.  
  104. // Logout
  105. if ($_GET['logout'] == 'true') {
  106. setcookie('uid','',time()-86400*30);
  107. setcookie('passwort','',time()-86400*30);
  108. setcookie('autologin','',time()-86400*30);
  109. $_SESSION['uid']         = "";
  110. $_SESSION['passwort']    = "";
  111. $_SESSION['login']       = "";
  112. header ("location: ".$domain);
  113. die();
  114. }
  115. if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort'])){
  116. db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()."
  117. WHERE uid = ".$_SESSION['uid']." AND passwort = '".$_SESSION['passwort']."' LIMIT 1");
  118. }
  119. ?>
  120.  
Eintrag vom 07 January 2011 zur Kategorie Programmierung