echo $begrüßung;
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
Die Idee hinter dieser Funktion ist richtig, die Ausführung jedoch mangelhaft.
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
Der Magic-Quotes-Mechanismus soll vor ungewollten Manipulationen von Datenbankinhalten durch SQL-Injection schützen, dabei macht er aber meist mehr Ärger an anderen Stellen als er Nutzen bringt. Wenn sich die Magic-Quotes nicht in der Konfiguration ausschalten lassen, ist es empfehlenswert sie am Scriptanfang einmalig mit stripslashes_deep() (siehe Example 2 auf dieser Handbuchseite zu entfernen
if (get_magic_quotes_gpc())
$_POST = stripslashes_deep($_POST);
und an den erforderlichen Stellen mit geeigneteren Funktionen als addslashes() die notwendige Maskierung von Sonderzeichen vorzunehmen. Für String-Werte in MySQL-Befehlen ist das mysql_real_escape_string().
Falls dieser Code für die Foreach-Schleife stimmt, wo muss ich diesen dann platzieren/erstezen?
foreach($_POST['ausgewaehlte'] as $ausgewaehlte) {
$sql=mysql_query("delete from tbl_links where id = $ausgewaelte");
}Ich weiß, dass es irgendwo hier herein gehört:
Da hst du schon mal die richtige Stelle gefunden. Diese Lösung ist im Prinzip auch die gleiche wie die von der-doktor vorgeschlagene.
if ((isset($_POST['ausgewaehlte'])) && ($_POST['ausgewaehlte'] != "")) {
Der zweite Teil dieser Prüfung wird wie folgt ausgetauscht:
if (isset($_POST['ausgewaehlte']) and is_array($_POST['ausgewaehlte'])) {
foreach($_POST['ausgewaehlte'] as $ausgewaehlte) {
if (is_numeric($_POST['ausgewaehlte'])) {
$deleteSQL = sprintf("DELETE FROM tbl_links WHERE ID=%s",
GetSQLValueString($_POST['ausgewaehlte'], "int"));
Diese beiden obigen Zeilen ersetze ich durch diese:
$deleteSQL = 'DELETE FROM tbl_links WHERE ID=' . $_POST['ausgewaehlte'];
mysql_select_db($database_conn_obertilliach, $conn_obertilliach);
$Result1 = mysql_query($deleteSQL, $conn_obertilliach) or die(mysql_error());
} //if is_numeric...
} //foreach...
} //if isset...
Zu beachten ist, dass, wie von der-doktor erwähnt, das name-Attribut der Checkbox-Input-Elemente ein [] hintendran benötigt: <input type="checkbox" name="ausgewaehlte[]" ...
echo "$verabschiedung $name";