kostenloser Webspace werbefrei: lima-city


Oder Verknüpfung will nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    myspirit

    myspirit hat kostenlosen Webspace.

    Hallo Leute!

    Ich steh komplett auf dem Schlauch.
    Ich hab vor für eine Datenbank eine Benutzerverwaltung mit Rechten zu machen.
    Funktioniert alles eigentlich schon, aber die Rechte wollen sich nicht ganz setzen lassen.

    Hier ein Beispielcode vereinfacht.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    </head>
    <?php
    if(isset($_POST['submit'])) 
    {
    	$pAdmin = $_POST['pAdmin'];
    	$pInsert = $_POST['pInsert'];
    	$pUpdate = $_POST['pUpdate'];
    	$pDelete = $_POST['pDelete'];
    	
    	if(empty($pAdmin))	$pAdmin = 0;
    	if(empty($pInsert)) $pInsert = 0;
    	if(empty($pUpdate)) $pUpdate = 0;
    	if(empty($pDelete)) $pDelete = 0;
    	
    	echo "Administrator: ".$pAdmin."<br>";
    	echo "Daten Einfügen: ".$pInsert."<br>";
    	echo "Daten Ändern: ".$pUpdate."<br>";
    	echo "Daten Löschen: ".$pDelete."<br><br>";
    	
    	$vUseRights = $pAdmin | $pDelete |  $pUpdate | $pInsert;
    	
    	echo $vUseRights." = ".$pAdmin." | ".$pDelete." | ".$pUpdate." | ".$pInsert."<br><br>";
    }
    ?>
    <body>
    <form name="form1" method="post" action="index.php">
      <label for="Admin">Administrator</label> <input name="pAdmin" type="checkbox" id="Admin" value="15" />
      <br />
      <label for="Insert">Daten Einfügen</label> 
      <input name="pInsert" type="checkbox" id="Insert" value="1" /></br>
      <label for="Update"><br />
      Daten Ändern</label> 
      <input name="pUpdate" type="checkbox" id="Update" value="2" />
      <br />
      <label for="Delete">Daten Löschen</label> 
      <input name="pDelete" type="checkbox" id="Delete" value="4" />
      <br />
      <input type="submit" name="submit" value="Go" />
    </form>
    </body>
    </html>


    Nun die Fehler:

    Wenn man Administrator und Löschen auswählt kommt 55 raus.
    Aber -> 15 | 0 | 0 | 4 = 15

    Wenn man alle auswählt kommt 75 raus.
    Aber -> 15 | 1 | 2 | 4 = 15

    Aber warum ?
    Normal muss immer wenn Administrator ausgewählt ist 15 rauskommen.
    Irgendwie will das oder nicht ganz.

    Wisst ihr warum?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich verstehe zwar den Code nicht auf die Schnelle, aber der Überschrift entnehme ich dass du Probleme mit einer Oder-Verknüpfung hast. Allerdings finde ich keine Oder-Verknüpfungen in deinem Code...falls " | " eine Oder-Verknüpfung sein soll, muss es wenn dann " || " heißen...
  4. @Vorposter: Nein, es gibt auch den Bitweisen | Operator und der ist hier genau richtig.

    @myspirit: 15 ist keine 2er Potenz. Probiere es mal mit 16. Da ist dann auch nur das erste Bit auf eins, während bei 15 alle Bits auf 1 sind.

    p.s. Für neue Webseiten sollte man nur XHTML Strict nehmen!

    Beitrag zuletzt geändert: 28.6.2010 18:53:35 von bladehunter
  5. Autor dieses Themas

    myspirit

    myspirit hat kostenlosen Webspace.

    Hallo

    Es sollte so aussehen:

    Einfügen: 0000 0001 = 1
    Ändern: 0000 0010 = 2
    Löschen: 0000 0100 = 4
    Admin : 0000 1111 = 15

    Aber es funktioniert schon:

    Fehler war das man die Werte erst in einen Int wandeln muss.
    Sonst nimmt er die Zahlen als asci

    $pAdmin = intval($_POST['pAdmin']);
    $pInsert = intval($_POST['pInsert']);
    $pUpdate = intval($_POST['pUpdate']);
    $pDelete = intval($_POST['pDelete']);

    Hat funktioniert
    Danke
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!