Userrechte?

vodka

Mitglied
Also ich hab jetzt ein Login mit Registrieren gemacht!
Wo automatisch wen man sich Registriert die Userrechte 1 gibt!Aber jetzt mein problem wie setz ich es ein mit den Userrechten das z.b. einer mit 5 Userrechten News posten , editieren und löschen kann?Oder einer mit 2 nur News Posten kann etc..?


Hier mal die dateien:

--> Login.php
PHP:
<?
session_start();
include("config.php");

// Verbindung mit der Datenbank erstellen //
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");


$query = "SELECT * FROM $tabellelogin where"."(Username like '".$_REQUEST["username"]."') AND "."(Passwort = '".md5 ($_REQUEST["passwort"])."')";
$result = mysql_query($query);

if (mysql_num_rows ($result) > 0)
{
  // Benutzerdaten in ein Array auslesen.
  $data = mysql_fetch_array ($result);

  //Session registieren
$_SESSION["id"] = $data["id"];
$_SESSION["username"] = $data["username"];
$_SESSION["passwort"] = $data["passwort"];
$_SESSION["email"] = $data["email"];
$_SESSION["rechte"] = $data["rechte"];

  header ("Location: check.php");
}
else
{
  echo "Die Daten waren falsch";
}
?>

--> Registrieren.php
PHP:
<?php
if (isset ($send) )
{
// Zur config datei Includen //
include "config.php";

// Verbindung mit der Datenbank erstellen //
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

 $abfrage1 = mysql_query("SELECT username FROM $tabellelogin");
 while ($row = mysql_fetch_object ($abfrage1))
 {
	if	($row->username==$username)
    {
	echo "Dieser Benutzer existiert schon!";
	exit;
 }
 }
if(empty($_POST['username']))
{
echo "Du hast kein Username eingegeben";
}
elseif(empty($_POST['passwort']))
{
echo "Du hast kein Passwort eingegeben";
}
elseif(empty($_POST['email']))
{
echo "Du hast keine Emailadresse eingegeben";
}
else
{
echo "Deine Daten werden an die Angegebene Emailadresse weitergeschickt";
	
$query = "INSERT INTO  $tabellelogin(username, passwort, email, rechte)
VALUES('$_POST[username]',MD5('$_POST[passwort]'),'$_POST[email]','$_POST[rechte]')";

$result = mysql_query($query);

$msg1="\n So deine daten: \n";
$msg2="\n Username: $username";
$msg3="\n Passwort: $passwort";
$message="$msg1 $msg2 $msg3";

mail("$email","$msg1","$message","From: meine@email.com");


}
}
    else
{




?>
<form name="form1" method="post" action="<? $php_self ?>">
  <table width="440" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td width="212">Username:</td>
      <td width="228"><input name="username" type="text" id="username"></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><input name="email" type="text" id="email"></td>
    </tr>
    <tr>
      <td>Passwort:</td>
      <td><input name="passwort" type="password" id="passwort"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="rechte" type="hidden" id="rechte4" value="0"></td>
      <input type="hidden" name="send" value="true">
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Register"></td>
    </tr>
  </table>
</form>
<?
}
?>
 
da Du ja sowieso mit SESSION arbeitest, geht das relativ einfach.. einfach immer abfragen zb.
Code:
if(isset($_SESSION['level']) == "5") { .... }

man koennte es auch noch ein wenig komplexer gestalten.. aber fuer den Anfang dürfte diese variante vollkommen ausreichen.
 
Also ich habe eine extra Datei für sowas -> settings.php
Dort speicherst du dann sowas ab, z.B.:

PHP:
<?php
// Rechte, um News posten zu können
// 1 = User , 2 = VIP , 3 = Admin oder so ähnlich
$status_for_news = 3;
?>

Dann die Datei einfach includen, und eine If-Abfrage machen:

PHP:
<?php
if($_SESSION["rechte"] == $status_for_news)
{
    // Hier vielleicht ein Formular einbinden, mit welchem man dann
    // die News posten kann
}
?>

Aber bevor die News in die DB geschrieben werden UNBEDINGT nochmal abfragen, ob genügend Rechte vorhanden sind, ansonsten könnte das eine kleine Sicherheitslücke darstellen, wenn sich der User den Link zurecht schneidet, z.B.:

news.php?create_news=1&create=now
 

Neue Beiträge

Zurück