[Rechtesystem] brauche Hilfe

Hi,

arbeite am besten mit Sessions.

am anfang deiner Seite schreibst du erstmal

PHP:
session_start();

hin.
Das muss in jeder Datei als erstes stehen, ausser bei includeten. ;)

Wenn du die Werte aus der DB ausgelesen und überprüft hast, kannst du mit
PHP:
$_SESSION['nick'] = $row['nick']

der Session die Werte zuweisen.
Das wars eigentlich schon.
Per $_SESSION['nick'] kannst du nun aufeder Seite den Nickname des Users überprüfen (was natürlich sinnfrei wäre).
Mit den Rechten machst du es einfach genauso und überprüfst bei geschützten Bereichen ob in der Session genügend Rechte eingetragen sind.


byez
 
also ich hab mal versuch das obige anzuwenden ich hab mir eine login.php erstellt
Code:
   <form action='index.php?path=admin' method='post' class='formular'>
   <table width='100%' height='24%' border='0'>
     <tr>
   	<td width='90%' height='24' align='left'>
   <input type='text' name='username' id='username' size='15' value='username'/>
   	</td>
     </tr>
     <tr>
   	<td height='24' align='left'>
   	<input type='password' name='password' id='password' size='15' value='password'/>
   	</td>
     </tr>
     <tr>
   	<td align='left'><p>
   	<input type='submit' name='login' value='Login'/>
   </p>
   </td>
     </tr>
   </table>
   </form>

und dann eine admin.php
Code:
    if  (isset($_POST['login']))
    {
   	 $username=$_POST['username'];
   	 $password=$_POST['password'];
   $sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
   	 if (mysql_num_rows($sql) > 0)
   	 {
   		 $Wert=mysql_fetch_object($sql);
   	 $username=$username;
   	 $rechte=$Wert->rechte;
 			 if(isset($_GET['site']) AND isset($admin_dateien[$_GET['site']])) {
 				 include($admin_dateien[$_GET['site']]);
   				} else {
   				    include "admin_menu.php";
   				}
   	  } else { 
   	 echo "<div align=\"center\"><h1>Login fehlerhaft</h1></div> <br>\n";
   				    include "login.php";
   	 }
   
   
   
   			  } else {
   				    include "login.php";
   			}
   		}
jetzt ist aber das problem das ich mich gar nich mehr einloggen kann
 
nimm den und sag danach bescheid ob's geht, bzw. was für fehler kommen ;)
PHP:
   $sql = mysql_query("SELECT * FROM users WHERE username=\"".$username."\" AND password=\"".$password."\"");
 
also am ergebnis hat sich nichts geändert trotzdem danke
es ist wie vorher wenn ich meine daten also username und password eigeben habe dann sagt er :
login fehlerhaft
und öffnet die login.php
das verstehe ich aber nich denn ich habe die eingaben mit der aus der datenbank 1000mal überprüft und trotzdem loggt er sich nich ein :confused:
 
ja $_POST['login'] ist gesetzt sonst würde ja nur die login.php includet werden und nicht "Login fehlerhaft " + login.php
kannste ja oben im code sehn
 
dann mach's einfach so
PHP:
if (mysql_num_rows($sql) > 0)
ersetzen durch
PHP:
if ($Wert=mysql_fetch_object($sql))

und das $Wert=mysql_fetch_object($sql) weiter unten natürlich raus nehmen

byez
 
Zurück