Admin Zugriffsabfrage funzt nicht :(

Bash, Shell, PHP, Python, Perl, CGI
blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01

Admin Zugriffsabfrage funzt nicht :(

Post by blnsnoopy26 »

Hi,

Also ich habe ein Adminbereich geproggt, aber nun möchte ich z.b das user zugriff bekommt, wenn wert 1 ist.

Bei diesem Script funzt das tadellos, aber sobald ich einen weiteren useranlege, dann funktioniert das nicht mehr.

Ich habe es schon mit allem möglichen Probiert, aber ohne Erfolg.

Hier mal ein ausschnitt des codes:

DB Abfrage:

Code: Select all

[...]
$db=mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($mydb, $db);
$query="SELECT * FROM $tabelle2";
$result=mysql_query($query,$db);
while($output=mysql_fetch_array($result))
{
$admin="$output[2]";
$access=$admin;
}
[...]
PHP Script ausschnitt:

Code: Select all

[...]
else if ($grand =="admin")

if($access == 1)
{
{
if (is_file("admin/admin.php"))
{
include("admin/admin.php");
} else {
include_once('include/header.inc');
echo "$modul1 <b>$server</b> $modul2";
include_once('include/footer.inc');
}
 }
  } else {
include_once('include/header.inc');
echo "<b><center>Du hast nicht die nötigen Rechte für den Adminmodus.</center></b>";
include_once('include/footer.inc');
}
[...]
Wie gesagt so funzt dat alles, aber sobald ich einen weiteren user eintrage, dann ist es vorbei :( Ich bekomme es einach nicht gelöst.

Die DB hat folgende einträge: usr,pwd,access.
Ich hoffe, dass jemand eine andere Lösungsabfrage hat, weil ich komme da einfach nicht hinter.
arty
Userprojekt
Userprojekt
Posts: 729
Joined: 2002-06-12 10:11

Re: Admin Zugriffsabfrage funzt nicht :(

Post by arty »

Schreib mal ein

Code: Select all

error_reporting(E_ALL);
in die erste Zeile deines Scripts.

bye
arty
blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01

Re: Admin Zugriffsabfrage funzt nicht :(

Post by blnsnoopy26 »

arty wrote:Schreib mal ein

Code: Select all

error_reporting(E_ALL);
in die erste Zeile deines Scripts.

bye
arty
Hi,

Der Bringt mir da keine Ausgabe mit deinem Code.
Hatte da nochmals einen user angelegt und wenn ich jetzt user 1 lösche funzt es mit dem Testuser wunderbar und das Script greift so wie es soll, also wenn bei access 0 steht kein zugriff und wenn access 1 dann hat der user zugriff.

Adde ich aber noch einen user hinzu wie hier das Beispiel, dann geht garnix mehr und alle haben unwiederruflich zugriff auf den adminbereich :(
Anscheinend wird nur die Zeile access überprüft und nicht beides ...user und access. Aber habe schon versucht User mit zu übergeben in der url aber half auch nix :(

So sieht es in der DB aus:

Code: Select all

   usr                  pwd                  access

Testuser       436dd7094d30df3d        0
    1             6067178d6665bcfe         1
Wahrscheinlich ist die Lösung so einfach das ich nicht drauf komme.
Aber wie gesagt die Zeile die du mir geschrieben hast bringt keine ausgabe :(

Hatte sogar die ifabfrage geändert, das user und access abgefragt werden, aber auch ohne erfolg :(

Code: Select all

[...]
else if ($grand =="admin")
if (!isset($USER) || ($access == 1 && !strcmp($access, $USER)))
//if($access == 1)
{
{
if (is_file("admin/admin.php"))
{
include("admin/admin.php");
} else {
include_once('include/header.inc');
echo "$modul1 <b>$server</b> $modul2";
include_once('include/footer.inc');
}
 }
  } else {
include_once('include/header.inc');
echo "<b><center>Du hast nicht die nötigen Rechte für den Adminmodus. $USER</center></b>";
include_once('include/footer.inc');
}
[...]
arty
Userprojekt
Userprojekt
Posts: 729
Joined: 2002-06-12 10:11

Re: Admin Zugriffsabfrage funzt nicht :(

Post by arty »

error_reporting(E_ALL) muss was bei dir ausgeben, weil du einen dermaßen schlechten und falschen PHP Code geschrieben hast, dass man da erstmal die "handwerklichen Fehler" entfernen muss.

bye
arty
niklas_
Posts: 122
Joined: 2003-08-13 20:46

Re: Admin Zugriffsabfrage funzt nicht :(

Post by niklas_ »

VOn der Struktur her muss es so heissen:

Vorraussetzung sind 2 Variblen, die zb durch ein Formular übergeben wurden: $name und $passwd

Code: Select all

<?PHP
session_start();

// DB Verbindung herstellen
$connect = mysql_connect($dbhost, $dbuser, $dbpasswd); 
$db = mysql_select_db($mydb, $connect); 


// $name und $passwd in DB überprüfen!
$query = mysql_query("SELECT usr,pwd,access FROM tbluser WHERE usr='$name' AND pwd='$passwd'");
if(mysql_num_rows($query) == "0")
{
    echo "Es wurde kein passender Eintrag mit Ihrem Name+Passwd gefunden!";
}else{
   $res = mysql_fetch_object($query);
   $access = $res->access;
  
   // DATEN in SESSION speichern:
   $_SESSION['usr'] = $name;
   $_SESSION['access'] = $res->access;
}
?>
==> Immer wenn du nun checken willst, ob der User access = 1 hat musst du eine if - Abfrage machen:

Code: Select all

if($_SESSION['access'] == "1"){ ... }