Hier ist mein Script zum Verwalten von Benutzern, d.h. ihnen verschiedene Werte(Rechte) zuweißen.
Das Script sieht folgendermaßen aus
Dies ist das Array mit den Rechten
So nun die Form mit den Checkboxen
So und nun der Teil der die markierten Checkboxen in eine DB einträgt
Und zwar geschieht der Fehler an //Neue Rechte
es werden jedoch keine Daten in die Datenbank eingetragen, der Teil hingegen //Alte Löschen funktioniert.
Aber wo liegt der Fehler in //Neue Rechte ?
sorry hatte ausversehn den Post schon abgeschickt bevor ich fertig war...
Das Script sieht folgendermaßen aus
Dies ist das Array mit den Rechten
PHP-Code:
$allRights = array();
$allRights[] = "Admin";
$allRights[] = "Member";
sort($allRights);
PHP-Code:
echo "<form ". "action=\"index.php? "method=\"post\" ". "class=\"formular\">\n";
echo " <ol>\n";
echo " <ul>\n";
foreach($allRights as $value) {
echo "<li>\n";
echo " <input id=\"".$value."\" type=\"checkbox\" name=\"rights[]\"";
if(in_array($value, $rights)) {
echo " checked=\"checked\"";
}
echo " value=\"".$value."\" />\n";
echo " <label for=\"".$value."\">".$value."</label><br />\n";
}
echo " </ul>\n";
echo " </li>\n";
echo " <li>\n";
echo " <input type=\"submit\" name=\"submit\" value=\"Rechte speichern\" />\n";
echo " <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
echo " <input type=\"hidden\" name=\"".session_name()."\" ". "value=\"".session_id()."\" />\n";
echo " </ol>\n";
echo "</form>\n";
echo "<p>\n";
PHP-Code:
if(isset($_POST['submit']) AND "Rechte speichern" == $_POST['submit']) {
if(!isset($_POST['rights'])) {
echo "<p class=\"error\">\n";
echo " Sie müssen mindestens ein Recht angeben.\n";
echo "</p>\n";
} else {
// alte Reche löschen
$sql = "DELETE FROM
'user_rights'
WHERE
'UserID' = '".$_SESSION['uid']."';";
mysql_query($sql) OR die(mysql_error());
// Neue Rechte
foreach($_POST['rights'] as $right) {
$sql = "INSERT INTO
'user_rights'('UserID', 'Recht')
VALUES
('".$_SESSION['uid']."',
'".$right."');";
mysql_query($sql) OR die(mysql_error());
}
echo "<p>\n";
echo " Die Rechte wurden gespeichert.\n";
echo "</p>\n";
PHP-Code:
// alte Reche löschen
$sql = "DELETE FROM
`user_rights`
WHERE
`UserID` = '".$_SESSION['uid']."';";
mysql_query($sql) OR die(mysql_error());
// Neue Rechte
foreach($_POST['rights'] as $right) {
$sql = "INSERT INTO
`user_rights´('UserID', 'Recht')
VALUES
('".$_SESSION['uid']."',
'".$right."');";
mysql_query($sql) OR die(mysql_error());
}
Aber wo liegt der Fehler in //Neue Rechte ?
sorry hatte ausversehn den Post schon abgeschickt bevor ich fertig war...
Kommentar