Benutzerrechte funktionieren nicht WHY?

  • Themenstarter Themenstarter Ang3l
  • Beginndatum Beginndatum
A

Ang3l

Ich hab keinen Login gemacht und Benutzerrechte vergeben, als Vorlage hab ich ein Tut. von hier genommen.

Hier der Code :

checkuser.php :
Code:
<?php
session_start ();

$connID = mysql_connect ("localhost", "to-XXX", "XXXXXX");
@mysql_select_db ("to-XXXX", $connID);

$sql = "SELECT * FROM users WHERE (Benutzername = '$username') AND (Kennwort = '$password')";
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0)
{
 list($id,$Benutzername,$Kennwort,$access) = mysql_fetch_row($result);
  $datenrichtig = true;
  $user_eingeloggt = true;

} 
else
{
  $datenrichtig = false;
  $user_eingeloggt = false;
}

session_register ("user_eingeloggt", "access");
?>

<html>
<head>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="2; url=admin.php?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>
</head>

<body>
<?php

if ($datenrichtig) { 
  echo "Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
} else {
 echo" Die Logindaten waren falsch.<br> <a href='../main.php'><font size='4' color='#000000'>ZURÜK</font></a> und noch mal probieren";
}

?>
</body>
</html>

Hier der Code den ich als Berechtigung in die PHP Dateien einfüge :

Code:
<?
session_start (); // Session starten.

if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {
if ($access & 1)

	{
		echo "";
	}
} else 
     {
     header ("Location: ./error.htm");
     }
?>

Mein Problem is das die Dateien die durch den 2ten Code geschützt werden sollten auch ohne Login aufrufbar sind und auch ein "Nichtadmin" zugreifen kann.
In meiner SQL Table hab ich "id", "Kennwort", "Benutzername" und "access" angelegt.

Wo liegt der Fehler?
 
if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {



Eine Klammer zuviel :)

if (session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {

So müsste es richtig sein
 
:( leider gehts nich

LEIDER bekomme ich wenn die die 2te klammer wegnehme einen parse error, woran kanns noch liegen?
 
Ups ;)

Hatte was falsch gelesen... ;)

Was soll denn
PHP:
<?
if ($access & 1) 
?>
das bedeuten?


Kann natürlich sein, dass es meine Unfähigkeit ist, aber das sagt mir so spontan nix...
 
Ich komm mit der Aussage:

"Mein Problem is das die Dateien die durch den 2ten Code geschützt werden sollten auch ohne Login aufrufbar sind und auch ein "Nichtadmin" zugreifen kann."

nicht so recht klar. Kannst du mir nochmal genau erklären was genau geschehen soll?
 
es soll...

so sein das nicht durch die direkteingabe der URL ans ziel kommt sondern auf ein "Not loggen in" Feld, das geht aber das mit den Benutzerrechten nicht
 
Mhh .... also demnach kann es ja nur an der
Code:
if ($access & 1)
liegen. Ich weiß ja nun nicht wie du arbeitest. Ist das Feld access eine einfachet boolscher Wert oder arbeitest du mit Bitverschiebung?

Wenns das erste ist dann probier doch mal
Code:
if ($access == 1)

Bei der Bitverschiebung dürfte es eigentlich keine Probleme mit der 1 geben. Ich hab meine Variablen für Zugangsberechtigung so definiert:
PHP:
<?
define ("PERM_ADMIN", 1 << 0);
...
?>
 
Zurück