Login Script mit Adminbereich

syntax

Mitglied
Hallo Leute,


wollte das Login Script http://www.tutorials.de/forum/php-tutorials/9684-php-mysql-login-system-mit-sessions.html so modifiezieren das wenn ich mich als admin anmelde ich auf eine andere Seite wie der Rest der Nutzer komme.

Hab auch schon rumprobiert, aber irgendwie will es mir nicht so recht gelingen.

PHP:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("dbserver", "db", "passwort"); 
if (!mysql_select_db ("db", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ".
    "id, benutzername ".
  "FROM ".
    "benutzer ".
  "WHERE ".
    "(benutzername like '".$_REQUEST["name"]."') AND ".
    "(kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query($sql) or die(mysql_error()); 

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

  // Sessionvariablen erstellen und registrieren
  $_SESSION["user_id"] = ["1"];
  $_SESSION["user_nickname"] = ["admin"]; 

  header ("Location: admin.php");
}
elseif  (mysql_num_rows ($result) > 0)
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result);

  // Sessionvariablen erstellen und registrieren
  $_SESSION["user_id"] = $data["id"];
  $_SESSION["user_nickname"] = $data["benutzername"]; 

  header ("Location: index.php");
} 
else
{ 
  header ("Location: anmeldung.php?fehler=1");
} 
?>


Wäre Dankbar für eure Hilfe.
 
Bei der ersten if anweisung

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

  // Sessionvariablen erstellen und registrieren
  $_SESSION["user_id"] = ["1"];
  $_SESSION["user_nickname"] = ["admin"]; 

  header ("Location: admin.php");
 
PHP:
if($_SESSION['user_nickname'] == "admin")
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result);

  // Sessionvariablen erstellen und registrieren
  $_SESSION["user_id"] = ["1"];
  $_SESSION["user_nickname"] = ["admin"]; 

  header ("Location: admin.php");

Wäre das so richtig?
 
Aber nur nachdem du geprüft hast, ob der admin das richtige Passwort eingegeben hat.
 
Kombiniere das was du schon hast. Die SQL-Abfrage und nachher die Namensabfrage
 
Hm also irgendwie steh ich gerade auf dem Schlauch.

Ich werde nicht auf meine Admin-Seite geleitet.

PHP:
if($_SESSION['benutzername'] == "admin")
{
$sql = "SELECT ".
    "id, benutzername ".
  "FROM ".
    "benutzer ".
  "WHERE ".
    "(benutzername like 'admin') AND ".
    "(kennwort = '".md5 ($_REQUEST["pwd"])."')"; 

  header ("Location: admin.php");
}
 
Was soll dein code bewirken?

item: Du erstellst ein SQL. Dieses sendest du aber nie an die DB und prüfst demzufolge auch nicht ob das PW stimmt.

item: Debuggen.... baue dir an verschiedenen Stelle var_dump(); ein um dir zwieschendurch mal die inhalte von Variablen zu prüfen.
ggf einfach einen Nummer übergegebn um zu testen ob der Code da durchkommt.

PHP:
var_dump($_SESSION['benutzername']);
if($_SESSION['benutzername'] == "admin")
{
var_dump('ist Admin');
$sql = "SELECT ".
    "id, benutzername ".
  "FROM ".
    "benutzer ".
  "WHERE ".
    "(benutzername like 'admin') AND ".
    "(kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
// Hier dein SQL gegen die DB prüfen.
  header ("Location: admin.php");
}
 
Zurück