/PHP übergabe von checkboxwerten
backbone
- html
aloha...
ich habe eine dynamisch erzeugte tabelle. am ende jeder zeile steht eine checkbox. die kann der user anklicken und somit auf einen schlag mehrer nachrichten löschen. mein problem ist jetzt das wenn ich mehrer werte anklicke aber nur immer einer übergeben wird. ich habe ein array angelegt doch es wird immer nur ein wert übergeben. nun meine frage: was mache ich falsch. hier mal der quelltext:
$i = array($_POST[pc_id]));
$ids = implode(" OR id = ",$i);
$id_send.= "id = ".$ids;
schonmal danke für eure hilfe.
tschau
Hallo backbone,
$i = array($_POST[pc_id]));
mal abgesehen davon, dass um pc_id Anführungszeichen fehlen - für was soll das array(...) sein?
$ids = implode(" OR id = ",$i);
du willst Angaben die vom User kommen ungeprüft verwenden? Was passiert, wenn der in ein $i mal "13 OR 1=1" reinschreibt? - dann sind aber _alle_ Daten weg (zumindest wenn ich jetzt keinen Denkfehler gemacht habe :-))
$id_send.= "id = ".$ids;
dein php-Code mag ja ganz interessant sein - interessanter wäre aber wie der html-Teil aussieht.
Grüße aus Nürnberg
Tobias
aloha...
für was soll das array(...) sein?
dient zur erstellung eines array?!
$ids = implode(" OR id = ",$i);
du willst Angaben die vom User kommen ungeprüft verwenden? Was passiert, wenn der in ein $i mal "13 OR 1=1" reinschreibt? - dann sind aber _alle_ Daten weg (zumindest wenn ich jetzt keinen Denkfehler gemacht habe :-))
ja, nur das ist hier irrelevant da das programm nur für user gedacht ist die sich mit der sache auskennen und die absicht der manipulation nicht haben.
$id_send.= "id = ".$ids;
dein php-Code mag ja ganz interessant sein - interessanter wäre aber wie der html-Teil aussieht.
okay, hier mal der html-code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>showroom</title>
<link rel="stylesheet" type="text/css" href="./style/basic.css">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="6" height="30" valign="top"><p>Alle eingetragenen Computer mit den wichtigsten Kenndaten</p></td>
</tr>
<tr>
<td valign="top"><table border="0">
<tr>
<td class="show_top"><p>Raum</p></td><td class="show_top"><p>PC-ID</p></td><td class="show_top"><p>IP-Adresse</p></td><td class="show_top"><p>CPU</p></td><td class="show_top"><p>RAM</p></td><td class="show_top"><p>HDD<a href="#" onclick="window.open('./help/index.php?help=shorthdd', 'Help', 'height=100,width=270,locationbar=no,menubar=no,scrollbars=yes')">*</a></p></td><td class="show_top"><p>Löschen</p></td>
</tr>
<form action="./edit.php" method="post">
<tr>
<td class="show"><a href="./show.php?action=inside&room=Raum 17">Raum 17</a></td><td class="show"><a href="#" onclick="window.open('./deteil.php?id=pc1711', 'Deteils', 'height=550,width=630,locationbar=no,menubar=no,scrollbars=yes')">pc1711</a></td><td class="show"><p>127.0.0.1</p></td><td class="show"><p>Pentium III 800 MHz</p></td><td class="show"><p>256MB</p></td><td class="show"><p>40 GB</p></td><td class="show" align="center"><input type="checkbox" name="pc_id" value="pc1711"></td>
</tr>
<tr>
<td class="show"><a href="./show.php?action=inside&room=Raum 17">Raum 17</a></td><td class="show"><a href="#" onclick="window.open('./deteil.php?id=wer', 'Deteils', 'height=550,width=630,locationbar=no,menubar=no,scrollbars=yes')">wer</a></td><td class="show"><p></p></td><td class="show"><p>fas</p></td><td class="show"><p>fas</p></td><td class="show"><p>0 GB</p></td><td class="show" align="center"><input type="checkbox" name="pc_id" value="wer"></td>
</tr>
<tr>
<td colspan="7" class="show" align="right"><input type="submit" name="del_any_pc" value="Löschen"></td>
</tr>
<input type="hidden" name="delete" value="yes">
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
thx 4 help.
tschau
hi,
die checkboxen erstellst du folgendermaßen:
<input type="checkbox" name="pc_id[]" value="pc1711">
<input type="checkbox" name="pc_id[]" value="......">
beachte die eckigen klammern hinter dem namen.
dadurch hast du in php _automatisch_ ein array zur verfügung (brauchst kein array() mehr davor schreiben o.ä.)
gruss,
wahsaga
moin!
die checkboxen erstellst du folgendermaßen:
<input type="checkbox" name="pc_id[]" value="pc1711">
<input type="checkbox" name="pc_id[]" value="......">
beachte die eckigen klammern hinter dem namen.
dadurch hast du in php _automatisch_ ein array zur verfügung (brauchst kein array() mehr davor schreiben o.ä.)
danke schön. genau die lösung habe ich gebraucht.
bis denn...
tschau,marcus.
Moin!
die checkboxen erstellst du folgendermaßen:
<input type="checkbox" name="pc_id[]" value="pc1711">
<input type="checkbox" name="pc_id[]" value="......">
Ja. Und für für künftige Finder mit ählichen Problemen:
Die Dinger lassen sich auch durchnummerieren:
<input type="checkbox" name="pc_id[1]" value="Nr.1">
<input type="checkbox" name="pc_id[2]" value="Nr.2">
<input type="checkbox" name="pc_id[3]">3<br>
unter: http://fastix.dyndns.checkbox.html
lässt sich dann gleich mal die Rückgabe bestaunen...
fastix®
Moin!
http://fastix.dyndns.org/tests/checkbox.html
ist besser....
fastix®
Hallo backbone,
für was soll das array(...) sein?
dient zur erstellung eines array?!
ja, aber wenn in $_POST['...'] ein Array drinsteht, steht eins drin, wenn nicht dann eben nicht - da ändert auch array() nichts dran
$ids = implode(" OR id = ",$i);
du willst Angaben die vom User kommen ungeprüft verwenden?
ja, nur das ist hier irrelevant da das programm nur für user gedacht ist die sich mit der sache auskennen und die absicht der manipulation nicht haben.
wie war das? die meisten Angriffe kommen von innen oder so ähnlich?
dein php-Code mag ja ganz interessant sein - interessanter wäre aber wie der html-Teil aussieht.
okay, hier mal der html-code
*grmpf* doch nicht _alles_ nur den relevanten Teil...
</tr>
<form action="./edit.php" method="post">
<tr>
*pfui* hier hat das <form> aber _nichts_ zu suchen.
<input type="checkbox" name="pc_id" value="pc1711">
<input type="checkbox" name="pc_id" value="wer">
du suchst http://www.dclp-faq.de/q/q-formular-checkbox.html
</tr>
<input type="hidden" name="delete" value="yes">
</form>
</table>
weder <input> noch </form> haben hier was zu suchen (jag deinen Code mal durch den http://validator.w3.org/ und schreib den Code etwas übersichtlicher)
Grüße aus Nürnberg
Tobias