André: Webseiten schützen über eine user-datenbank in mysql

Beitrag lesen

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

connect.php connect.php connect.php connect.php connect.php

<?php $link=mysql_connect("localhost", "root", ""); mysql_select_db("db_user", $link); $idle=10;//Minuten, die ein User ohne nochmaliges anmelden zwischen zwei Aufrufen geschützter Webseiten verstreichen lassen darf

function benutzer() { Global $link, $IDuser,$sit; $tabellenname = 'tab_user'; $sql="SELECT username FROM $tabellenname WHERE ID='$IDuser' AND kennung ='$sit'"; $result=mysql_query($sql,$link);   if(mysql_num_rows($result)==1)   {   return mysql_result($result,0,'username');   } }

function recht($admin) { Global $link,$IDuser,$sit,$idle; $pfad="../../login.php"; $tabellenname='tab_user';

if(!$IDuser OR !$sit)   {   $fehler=1;   }   else   {     if(!$link)     {     $fehler=2;     }     else     {     $sql="SELECT admin, zeit, kennung, (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(zeit)) as time FROM $tabellenname WHERE ID='$IDuser' AND kennung='$sit'";     $result=mysql_query($sql,$link);         if(mysql_num_rows($result)==1)         {             if($admin==1 AND mysql_result($result,0,'admin')!=1)             {             $fehler=1;             }             if(mysql_result($result,0,'time')/60>$idle)             {             $fehler=3;             }         }         else         {         $fehler=1;         }     }   }

if($fehler)   {     switch($fehler)     {     case 1:     die("<html><body><div align=center><h1>Sie haben keine Zugriffsrechte auf diese Seite</h1><a href='$pfad'>zum Log In</a></div></body></html>");     break;     case 2:     die("<html><body><div align=center><h1>Ein Datenbankfehler verhindert die Authentifizierung, bitte versuchen Sie es später noch einmal!</h1></div></body></html>");     break;     case 3:     die("<html><body><div align=center><h1>Ihre SitzungsID ist aufgrund zu langer Inaktivitä nicht mehr gütig, bitte melden Sie sich erneut an!</h1><a href='$pfad'>zum Log In</a></div></body></html>");     break;     }   }   else   {   $sql="UPDATE $tabellenname SET ";   $sql.=" zeit= now() ";   $sql.=" WHERE ID='$IDuser' ";   @mysql_query($sql, $link);

if(mysql_result($result,0,'admin')==1)     {     return true;     }     else     {     return false;     }

}   mysql_free_result($result); }  ?> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

login.php login.php login.php login.php  login.php login.php

<?php     require('admin/user/connect.php');     echo benutzer();     $tabellenname='tab_user';

if($sent==1)     {     $sql="SELECT kwort, ID, kennung, (UNIX_TIMESTAMP()-UNIX_TIMESTAMP(zeit)) as time FROM $tabellenname WHERE username='$username' ";     $result=mysql_query($sql,$link);         if(mysql_num_rows($result)==1)         {             if(md5($kwort)!=mysql_result($result,0,'kwort'))             {             $meldung.="Bitte kontrollieren Sie Ihr Kennwort!";             }             else             {                 if(mysql_result($result,0,'kennung')==$sit AND mysql_result($result,0,'time')/60<$idle)                 {                 $meldung.="Sie sind bereits eingeloggt";                 unset($username);                 }                 else                 {                     if(mysql_result($result,0,'kennung')!='' AND mysql_result($result,0,'time')/60<$idle)                     {                     $meldung.="Es ist bereits jemand mit Ihrem Benutzernamen eingeloggt";                     }                     else                     {                     $sitzung=uniqid('');                     $IDuser=mysql_result($result,0,'ID');                     $sql="UPDATE $tabellenname SET ";                     $sql.=" zeit= now(), ";                     $sql.=" kennung='$sitzung' ";                     $sql.=" WHERE ID='$IDuser' ";                     $test=mysql_query($sql,$link);                     setcookie('sit',$sitzung);                     setcookie('IDuser',$IDuser);                     $meldung="Sie wurden eingeloggt als $username";                     unset($username);                     }                 }             }

}         else         {         $meldung.="Bitte kontrolieren Sie Ihren Benutzernamen";         }

}  ?>

<?php

echo "<html><head><title>LOGIN User</title></head><body>";   echo "<h2><font color=red>$meldung</font></h2>";   echo "<h2>Bitte die Benutzerinformationen eingeben</h2>";   echo "<form action='$PHP_SELF' method='post'>";   echo "<input type=hidden name=sent value=1 />";   echo "<p>Benutzername</p>";   echo "<input type=text name=username value='$username' />";   echo "<p>Kennwort</p>";   echo "<input type=password name=kwort />";   echo "<br /><br /><input type=submit>";   echo "</form></body></html>";    ?> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

logout.php logout.php logout.php logout.php logout.php logout.php

<?php require ('admin/user/connect.php'); recht(1); $tabellenname='tab_user';

if($sent==1) { $sql="UPDATE $tabellenname SET "; $sql.=" zeit= 0, "; $sql.=" kennung='' "; $sql.=" WHERE ID='$IDuser' "; @mysql_query($sql,$link); setcookie('sit', '',time()-1000); setcookie('IDuser', $IDuser, time()-1000); unset ($IDuser); }

echo "<html><head><title>LOGOUT-User</title></head><body>"; if($IDuser) { echo "<h2><font color=red>$meldung</font></h2>"; echo "<h2>Sie sind angemeldet als ".benutzer()."<br />"; echo "Abmelden?</h2>"; echo "<form action='$PHP_SELF' method='post'>"; echo "<input type=hidden name=sent value=1 />"; echo "<br /><br /><input type=submit>"; echo "</form>"; } else { echo "Sie sind abgemeldet"; } echo "</body></html>";   ?> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

useradmin.php useradmin.php useradmin.php useradmin.php

<?php     require('connect.php');     //recht(1);  ?> <html> <head> <title>Userverwaltung</title> </head> <body> <table width="200" border="1">   <tr>     <td><img src="../images/clearpixel.gif" width="20" height="20"></td>     <td><img src="../images/clearpixel.gif" width="452" height="20"></td>   </tr>   <tr>     <td> </td>     <td>     <?php     $tabellenname='tab_user';

//Alegen eines neuen Users     if($sent==1)     {     $sql="INSERT INTO $tabellenname() VALUES() ";     @mysql_query($sql,$link);         if(mysql_insert_id()>0)         {         $ID=mysql_insert_id();         $meldung="Ein neuer User wurde angelegt<br />";         }         else         {         $meldung="Es konnte kein neuer User angelegt werden. Bearbeiten Sie zuvor neu angelegte User und ändern Sie den Usernamen, bevor Sie einen weiteren neuen User anlegen.<br />";         }     }

//Speichern der bearbeitenden Userinformationen     if($sent==2)     {         if($kwort!='' AND (strlen($kwort)<6 OR strlen($kwort)>12))         {         $meldung.="Das Kennwort hat nicht die richtige Länge <br />";         unset($kwort);         }

$sql="UPDATE $tabellenname SET";

if($kwort!='')         {         $kwort2=md5($kwort);         $sql.=" kwort='$kwort2', ";         }

$sql.=" username='$username', ";      $sql.=" admin='$admin', ";      $sql.=" beschreibung='$beschreibung' ";      $sql.=" WHERE ID='$ID' ";      $test=mysql_query($sql,$link);

if($kwort!='' AND !$test)         {         $meldung.="Die Änderung konnten nicht gespeichert werden, das alte Kennwort ist noch gültig <br />";         }         if($kwort!='' AND $test)         {         $meldung.="Das neue Kennwort - $kwort - ist jetzt gültig<br />";         }     }

//Löschen eines Users     if($sent==3)     {     $sql="DELETE FROM $tabellenname WHERE ID=$ID";     @mysql_query($sql,$link);     unset($ID);     }

echo "<h2>$meldung</h2>";

//Auslesen der vorhandenen User und Auswahlformular anzeigen     $sql="SELECT * FROM $tabellenname ORDER BY username";     $result=mysql_query($sql,$link);     if(mysql_num_rows($result)>0)     {     echo "<h2>Bitte den User zum Bearbeiten auswählen</h2>";     echo "<form action='$PHP_SELF' method='post'>";     echo "<select name='ID'>";         for($i=0;$i<mysql_num_rows($result);$i++)         {         $ID1=mysql_result($result,$i,'ID');         $username=mysql_result($result,$i,'username');         echo "<option value=$ID1";             if($ID==$ID1){echo " selected ";}         echo ">$username";         }     echo "</select><br /><br />";     echo "<input type=submit />";     echo "</form>";     }

//Das Formular zum Bearbeiten     if($ID)     {     $sql="SELECT * FROM $tabellenname WHERE ID=$ID";     $result=mysql_query($sql,$link);         if(mysql_num_rows($result)==1)         {         $ID1=mysql_result($result,0,'ID');         $username1=mysql_result($result,0,'username');         $kwort1=mysql_result($result,0,'kwort');         $admin1=mysql_result($result,0,'admin');         $beschreibung1=mysql_result($result,0,'beschreibung');         echo "<h2>Bitte den User $username1 bearbeiten</h2>";         echo "<form action='$PHP_SELF' method='post'>";         echo "<input type=hidden name=sent value=2 />";         echo "<input type=hidden name=ID value=$ID1 />";         echo "<p>Benutzername</p>";         echo "<input type=text name=username value='$username1' />";         echo "<p>Kennwort <br /><font color=red>Bitte leer lassen, wenn es nicht geändert werden sol!</font></p>";             if($kwort1=='kennwort'){echo "<p><font color=red size=+1>Sie müssen das Kennwort noch angeben, damit sich der User anmelden kann.</font></p>";}         echo "<input type=text name=kwort value='' />";         echo "<p>Beschreibung</p>";         echo "<input type=text name=beschreibung value='$beschreibung1' />";         echo "<p>Administrator</p>";         echo "<input type=radio name=admin value=-1";             if($admin1==-1){echo " checked ";}         echo " />Nein ------";         echo "<input type=radio name=admin value=1";             if($admin1==1){echo " checked ";}         echo " />Ja";         echo "<br /><br /><input type=submit />";         echo "</form>";

echo "<br /><a href='$PHP_SELF?sent=3&ID=$ID1'><font size=+1>Den angezeigten User löschen</font></a>";         }     }

echo "<br /><a href='$PHP_SELF?sent=1'><font size=+1>Einen neuen User anlegen</font></a>";      ?>     </td>   </tr> </table> </body> </html> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Struktur DB Struktur DB Struktur DB Struktur DB Struktur DB

Tabellenstruktur für Tabelle tab_user

CREATE TABLE tab_user (   ID int(14) unsigned NOT NULL auto_increment,   username char(50) binary default 'neueruser',   kwort char(50) binary default 'kennwort',   admin tinyint(2) default '-1',   beschreibung char(255) default NULL,   kennung char(50) default NULL,   zeit datetime default NULL,   PRIMARY KEY  (ID),   UNIQUE KEY username (username) ) TYPE=MyISAM;