Oder Verknüpfung will nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
administrator
aussehen
bit
code
datenbank
datum
dokument
eins
fehler
funktioniert danke
http
leute
nehmen
operator
potenz
problem
schlauch
setzen
wandeln
zahl
-
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? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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...
-
@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 -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage