checkbox mit php auswerten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aba
action
eingabe
fehlermeldung
formen
garnicht
hierbei
hilfe
limit
match
meinst
not
quelltext
recht
resource
result
set
sponsor
update
wort
-
hi leutz,
ich hab nen problem.
ich m?chte in meinem cms die rechte programmieren und daf?r hab ich extra ne seite angelegt. doch irgendwie klappt des net richtig bei mir.
bitte helft mir.
require("include/mysql_connect.php"); if($_GET['action'] == 'user_rights_send') { $query = "UPDATE xms_user SET admin_news='$admin_news' , admin_clanwar='$admin_clanwar' , admin_member='$admin_member' , admin_guestbook='$admin_guestbook' , admin_history='$admin_history' , admin_server='$admin_server' , admin_ranking='$admin_ranking' , admin_sponsors='$admin_sponsors' , admin_forum='$admin_forum' , admin_user='$admin_user' , admin_polls='$admin_polls' , admin_downloads='$admin_downloads' , admin_links='$admin_links' , admin_calendar='$admin_calendar' admin_impressum='$admin_impressum'"; mysql_query ($query); echo "Der Userrechte wurden erfolgreich gesetzt."; mysql_close($connect); } $user_query = "SELECT * FROM xms_user WHERE id=$id LIMIT 1"; $user_out = mysql_query($user_query); $user_row = mysql_fetch_array($user_out); ?> <form name="formular" action="?action=user_rights_send" method="post"> <table border="0" cellspacing="0" cellpadding="0"> <tr><td>News:</td><td><input type="checkbox" name="admin_news" value="0" <?php if($user_row[47] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Matches:</td><td><input type="checkbox" name="admin_clanwar" value="0" <?php if($user_row[48] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Member:</td><td><input type="checkbox" name="admin_member" value="0" <?php if($user_row[49] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Guestbook:</td><td><input type="checkbox" name="admin_guestbook" value="0" <?php if($user_row[50] == "1") { echo "checked"; } ?>></td></tr> <tr><td>History:</td><td><input type="checkbox" name="admin_history" value="0" <?php if($user_row[51] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Server:</td><td><input type="checkbox" name="admin_server" value="0" <?php if($user_row[52] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Ranking:</td><td><input type="checkbox" name="admin_ranking" value="0" <?php if($user_row[53] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Sponsoren:</td><td><input type="checkbox" name="admin_sponsors" value="0" <?php if($user_row[54] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Forum:</td><td><input type="checkbox" name="admin_forum" value="0" <?php if($user_row[55] == "1") { echo "checked"; } ?>></td></tr> <tr><td>User:</td><td><input type="checkbox" name="admin_user" value="0" <?php if($user_row[56] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Polls:</td><td><input type="checkbox" name="admin_polls" value="0" <?php if($user_row[57] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Downloads:</td><td><input type="checkbox" name="admin_downloads" value="0" <?php if($user_row[58] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Links:</td><td><input type="checkbox" name="admin_links" value="0" <?php if($user_row[59] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Calendar:</td><td><input type="checkbox" name="admin_calendar" value="0" <?php if($user_row[60] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Impressum:</td><td><input type="checkbox" name="admin_impressum" value="0" <?php if($user_row[61] == "1") { echo "checked"; } ?>></td></tr> <tr><td colpan="2"><input type="submit" name="submit" value="SEND"></td></tr> </table> </form>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
versuchs bei allen variablen mit $_POST['MEINE_VARIABLE'] anstatt von $MEINE_VARIABLE.
Die action w?rde ich ?brigens als input type=hidden ?bergeben.... -
meinst du ich soll die query vars als postvars ?bergeben?
und warum soll ich die action mim hiddenfield ?bergeben?? -
meinst du ich soll die query vars als postvars ?bergeben?
Es dient der ?bersicht!
und warum soll ich die action mim hiddenfield ?bergeben??
Nur bei GET relevant! Solltest du es jetzt ?ndern, wird dein Script nicht mehr aufgerufen!
Was hast du den f?r ein Problem?
Kommt irgendeine Fehlermeldung etc.?
Wenn nein, dann schreib mal deine ganzen Querys ein bi?chen "sch?ner"!
Aus
$user_query = "SELECT * FROM xms_user WHERE id=$id LIMIT 1";
sollte man lieber
$user_query = "SELECT * FROM `xms_user` WHERE id='".$_POST["id"]."' LIMIT 1";
machen! -
wenn ich das abschicke, dann kommt nen fehler und der ist wie folgt (sry habsch vergessen zu zuschreiben):
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Programme\apachefriends\xampp\htdocs\xms\admin\user_rights.php on line 34
die quelltext is die datei namens user_rights.php -
$user_query = "SELECT * FROM xms_user WHERE id=$id LIMIT 1"; $user_out = mysql_query($user_query); $user_row = mysql_fetch_array($user_out);
Quck dir mal in phpmyadmin das ergebniss vom query $user_query an und poste mal das ergebniss -
da wird der mir anzeigen was in den anf?hrungszeichen steht und mehr net.
-
<?
$user_query = "SELECT * FROM xms_user WHERE id='$id' LIMIT 1";
$user_out = mysql_query($user_query);
$user_row = mysql_fetch_array($user_out);
?>
so muss das heissen! -
kein wunder, dass da die fehlermeldung kommt. w?rdest du dir mit var_dump($user_out); ausgeben lassen, ware das ein falscher bool, aus dem kann aber kein array gemacht werden! du hast einen syntayxfehler in deinen querys, mach sie lieber so, ie lucas vorgeschlagen.
<?
$user_query = "SELECT * FROM `xms_user` WHERE id='".$_POST["id"]."' LIMIT 1";
?>
-
$user_query = "SELECT * FROM `xms_user` WHERE id='".$_POST["id"]."' LIMIT 1";
hierbei bleiben die checkboxen leer.
$user_query = "SELECT * FROM xms_user WHERE id='$id' LIMIT 1";
hierbei hat er mir noch die id ausgegeben, aba jetzt passiert da n?scht mehr und die checkboxen waren auch richtig gef?llt.
aba is es denn richtig wie ich die checkboxen auswerte??? mit user_query les ich ja erst einmal die rechte aus die der user hat. -
also als erstest in dem von dir geposteten script wertest du die checkboxen garnicht aus sondern tr?gst sie blind in deine datenbank ein.
zweitens sollte man wissen was 'ankommt' wenn eine checkbox ausgew?hlt ist und was 'ankommt' wenn sie nicht ausgew?hlt ist.
ist eine checkbox nicht ausgew?hlt wird sie ?berhaupt nicht ?bermittelt. dH die $_POST / $_GET variable ist garnicht vorhanden.
dann nehme ich mal an, das id per get ?bergeben wurde...
require("include/mysql_connect.php"); if($_GET['action'] == 'user_rights_send') { // auswertung der checkboxen vor der eingabe in die datenbank $admin_clanwar = isset($_POST['admin_clanwar'])?'1':'0'; $admin_member = isset($_POST['admin_member'])?'1':'0'; $admin_guestbook = isset($_POST['admin_guestbook'])?'1':'0'; $admin_history = isset($_POST['admin_history'])?'1':'0'; $admin_server = isset($_POST['admin_server'])?'1':'0'; $admin_ranking = isset($_POST['admin_ranking'])?'1':'0'; $admin_sponsors = isset($_POST['admin_sponsors'])?'1':'0'; $admin_forum = isset($_POST['admin_forum'])?'1':'0'; $admin_user = isset($_POST['admin_user'])?'1':'0'; $admin_polls = isset($_POST['admin_polls'])?'1':'0'; $admin_downloads = isset($_POST['admin_downloads'])?'1':'0'; $admin_links = isset($_POST['admin_links'])?'1':'0'; $admin_calendar = isset($_POST['admin_calendar'])?'1':'0'; $admin_impressum = isset($_POST['admin_impressum'])?'1':'0'; $admin_news = isset($_POST['admin_news'])?'1':'0'; //dann w?hre da noch die id $id = @(int)$_GET['id']; /*hier w?hren einige warnende worte angebracht, aber da ich denke, dass nur du dieses script ausf?hren k?nnen willst... trotzdem w?hren hier die warnenden worten angebracht, das du die id unbedingt vorher aus ihre g?ltigkeit pr?fen solltest */ /* hier fehlte da mal die where klausel oder darf sich mysql den zu ?ndernden benutzer selbst ausw?hlen? */ $query = "UPDATE xms_user SET admin_news='$admin_news' , admin_clanwar='$admin_clanwar' , admin_member='$admin_member' , admin_guestbook='$admin_guestbook' , admin_history='$admin_history' , admin_server='$admin_server' , admin_ranking='$admin_ranking' , admin_sponsors='$admin_sponsors' , admin_forum='$admin_forum' , admin_user='$admin_user' , admin_polls='$admin_polls' , admin_downloads='$admin_downloads' , admin_links='$admin_links' , admin_calendar='$admin_calendar' admin_impressum='$admin_impressum' WHERE id = $id LIMIT 1"; $res = mysql_query ($query) or die (mysql_error() .' :<pre>'. $query .'</pre>'); echo "Der Userrechte wurden erfolgreich gesetzt."; mysql_close($connect); } else { $id = @(int)$_GET['id']; $user_query = "SELECT * FROM xms_user WHERE id=$id LIMIT 1"; $user_out = mysql_query($user_query) or die (mysql_error() .': <pre>'. $user_query .'</pre>'); /*$user_row = mysql_fetch_array($user_out); und hier kommen wir zu einem sehr interessantem teil. abholen tust du die daten mit array aber verwendest zahlen^^.. aha.. eigentlich sollte es so hei?en: $user_row['admin_news'] aber das wirst du selbst ?ndern k?nnen. gelle? zB in dem du */ $user_out = mysql_fetch_row($user_out); /* verwendest. ist eifacher als alle indexe zu ?ndern (ich bin auch sehr fauel^^*/ ?> <form name="formular" action="?action=user_rights_send&id=<?php echo $id;?>" method="post"> <table border="0" cellspacing="0" cellpadding="0"> <tr><td>News:</td><td><input type="checkbox" name="admin_news" value="0" <?php if($user_row[47] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Matches:</td><td><input type="checkbox" name="admin_clanwar" value="0" <?php if($user_row[48] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Member:</td><td><input type="checkbox" name="admin_member" value="0" <?php if($user_row[49] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Guestbook:</td><td><input type="checkbox" name="admin_guestbook" value="0" <?php if($user_row[50] == "1") { echo "checked"; } ?>></td></tr> <tr><td>History:</td><td><input type="checkbox" name="admin_history" value="0" <?php if($user_row[51] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Server:</td><td><input type="checkbox" name="admin_server" value="0" <?php if($user_row[52] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Ranking:</td><td><input type="checkbox" name="admin_ranking" value="0" <?php if($user_row[53] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Sponsoren:</td><td><input type="checkbox" name="admin_sponsors" value="0" <?php if($user_row[54] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Forum:</td><td><input type="checkbox" name="admin_forum" value="0" <?php if($user_row[55] == "1") { echo "checked"; } ?>></td></tr> <tr><td>User:</td><td><input type="checkbox" name="admin_user" value="0" <?php if($user_row[56] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Polls:</td><td><input type="checkbox" name="admin_polls" value="0" <?php if($user_row[57] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Downloads:</td><td><input type="checkbox" name="admin_downloads" value="0" <?php if($user_row[58] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Links:</td><td><input type="checkbox" name="admin_links" value="0" <?php if($user_row[59] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Calendar:</td><td><input type="checkbox" name="admin_calendar" value="0" <?php if($user_row[60] == "1") { echo "checked"; } ?>></td></tr> <tr><td>Impressum:</td><td><input type="checkbox" name="admin_impressum" value="0" <?php if($user_row[61] == "1") { echo "checked"; } ?>></td></tr> <tr><td colpan="2"><input type="submit" name="submit" value="SEND"></td></tr> </table> </form> <?php }
-
also ich muss im form teil noch die zahlen wie zb 47 durch admin_news ersetzen. hab ich das richtig verstanden.
und ich bedanke mich schon mal f?r deine hilfe -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage