dedlfix: Array auslesen, das in FORM gefüllt wurde.

Beitrag lesen

Hi!

<form action="<?PHP echo $PHP_SELF ?>" method="POST">

Kontextwechsel zur Vermeidung von Sicherheitslücken beachten. Statt htmlspecialchars($PHP_SELF) kann das Attribut action="" auch einfach leer notiert werden, das verweist ebenfalls und ohne HTML/Javascript-Injection-Potential auf die aktuelle URL. Wo kommt außerdem $PHP_SELF her? Verwende die Werte in $_GET, $_POST oder hier $_SERVER bitte direkt, ohne sie umzukopieren oder gar auf Register Globals zu bauen.

echo '<option value="$row->gebietid" ';

Anfängerwissen. Bitte beachte den essentiellen Unterschied zwischen in "" und '' eingefassten Strings.

<td valign="top"> <b>Mehrere ausw&auml;hlen</b>: <br>
              Strg-Taste w&auml;hrend
              des Ausw&auml;hlens gedr&uuml;ckt halten </td>

Verwende eine angemessene Zeichenkodierung, dann kannst du dir das Gehampel mit den Umlaut-Entities sparen.

$query=mysql_query("DELETE FROM tbl_buecher_fachgebiete WHERE buchid=$buchid") or die ("alte Gebiete loeschen schlug fehl: ".mysql_error());

Auch hier wieder ein nicht beachteter Kontextwechsel, der das Potential hat, die gesamte Tabelle löschen zu können.

if(isset ($_POST[gebiet]))
foreach($_POST[gebiet] as $gebietid)

Auch wenn PHP großzügig ist, was die Notation von Array-Keys anbelangt, solltest du immer solche String-Werte in Anführungszeichen setzen. (Also, nicht immer, es gibt Ausnahmen.) Wenn du irgendwann mal entdeckt hast, dass ein aus E_ALL gesetztes error_reporting bei Entwickeln eine wertvolle Hilfe beim Finden von Tipp- und anderen Fehlern ist, wirst du danken, wenn nicht auch noch dafür Notice-Meldungen generiert werden.

Lo!