LogIn mit unterschied ob Admin oder User

r3ddragon

Mitglied
Ich hab ein LogIn script wo sich nur Admins anmelden dürfen.
Nur weiß ich nicht genau wie ich die abfrage der Datenbank in der es einen Tabelle mit rights gibt (0 = Admin , 1 = user)

hier der aktuelle Code

PHP:
<?php
//Session starten
session_start ();
include('../db_config.php');

// Datenbankverbindung aufbauen
$connID = mysql_connect ("$db_host", "$db_user", "$db_pass");
if (!mysql_select_db ($db_name, $connID))
{
  die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT * FROM ".$tb_name2." WHERE username='" .$_REQUEST["user"]. "' AND password= '" .$_REQUEST['pass']. "' AND rights < 1 "'";



$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0)
{
$data = mysql_fetch_array ($result);
$_SESSION["user"] = $data["username"];
$_SESSION["user_id"] = $data["rights"];



header("Location: liste.php");
} else

header("Location: index.php?fehler=1");

Fehler:

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in C:\xampp\htdocs\ticketsys\admin\login.php on line 12

Parse error: syntax error, unexpected '"' in C:\xampp\htdocs\ticketsys\admin\login.php on line 12
 
ok das hatte ich übersehen

es kommt trotzdem
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\ticketsys\admin\login.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\ticketsys\admin\login.php:18) in C:\xampp\htdocs\ticketsys\admin\login.php on line 29

---

was muss in der abfrage stehen das der als 1. die user daten checkt und dann die rechte und wenn beides ok ist , wird der user weitergeleitet wird.
 
Zuletzt bearbeitet:
PHP:
$result = mysql_query ($sql, $connID) or die(mysql_error());

So wird dir der MySQL Fehler ausgegeben.

Weiterhin solltest du unbedingt [phpf]mysql_real_escape_string[/phpf] verwenden, um SQL Injektionen zu vermeiden.
 
Heey ich würd einfach noch ne if abfrage mit einbauen. Also du ließt erst alles aus der Datenbank aus wo username und passswort stimmen und dann überprüfst du später mit ner if ob die rechte in ordnung sind und wenn ja denn halt weiterleiten.

LG nino
 
ich glaube ein funktion wäre gut:

in meinen anfangzeiten ohne klassen habe ich immer damit gearbeitet ;)

PHP:
function login($right=0)
{

$right = (int)$right;

$username = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['pass']);

$db->query('QUERY HIER');

$result = $db->fetch();

if (isset($_SESSION['user']) && isset($_SESSION['right']) &&  $_SESSION['right']>=$right)
{
     // WENN SESSION da ist und rechte größer oder gleich sind
    return true;
}
elseif (isset($result) && $username==$result[0] && $result[1]==md5($result[2].md5($password)) && $result[3]>=$right)
{
     // Wenn Username Passt, Passwort Passt und Rechte mehr oder gleich sind
     // Hier Session setzen mit set_session($user, $pass)
     // Oder Cookie
     return true;
}
elseif (isset($_COOKIE[...])
{
     // etc
}
else
{
     return false;
}
}

da sind noch einige fehler dirn wie query unnütz gesetzt und so

aufrufe wäre dann in jedem script ganz leicht:

PHP:
if (login(0)) {} // Eingeloggt
 
Zuletzt bearbeitet von einem Moderator:
Zurück