Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hey... habe mal nen Problem! mein script will einfach nicht den datensatz aus der mysqltabelle löschen! wo liegt hier der fehler?

<html>

<p align="center"> </p>
<table border="1" cellpadding="3" cellspacing="3" style="border-collapse: collapse" bordercolor="#C0C0C0" width="800">
<tr>
<td align="center" width="20"><b>ID</b></td>
<td align="center" width="100"><b>Wann</b></td>
<td align="center" width="40"><b>Vorname</b></td>
<td align="center" width="40"><b>Nachname</b></td>
<td align="center" width="100"><b>von</b></td>
<td align="center" width="100"><b>bis</b></td>
<td align="center" width="300"><b>Begründung</b></td>
<td align="center" width="100"><b>löschen / bearbeiten</b></td>
</tr>
<?
error_reporting(E_ALL);
include ("config.inc.php");



$connect = @mysql_connect($host, $user, $password) OR die(mysql_error());




mysql_select_db($db, $connect) OR die(mysql_error());

$result = mysql_query("SELECT * FROM $db ORDER by zeit DESC",$connect) or die (mysql_error());


while($row = mysql_fetch_object($result))
{

print '<tr>';
print '<td align="center" width="16">'.$row->ID.'</td>';
print '<td align="center" width="260">'.date("d.m.Y - H:i",$row->zeit).'</td>';
print '<td align="center" width="4">'.$row->vorname.'</td>';
print '<td align="center" width="6">'.$row->name.'</td>';
print '<td align="center" width="6">'.$row->datumvon.'</td>';
print '<td align="center" width="79">'.$row->datumbis.'</td>';
print '<td align="center" width="6">'.$row->statement.'</td>';
$ID = $row->ID;
print '<td align="center" width="261">
<a href=auslesen.php?loeschen=1&ID='.$ID.'> <img src="gfx/b_drop.png" width="16" height="16"></a> ||
<a href=auslesen.php?action=bearbeiten&ID='.$ID.'><img src="gfx/b_edit.png" width="16" height="16"></a></td>';
print '</tr>';

}

if ($loeschen == '1')
{
mysql_query("DELETE FROM $db WHERE ID = '$ID'",$connect) or die (mysql_error());
}




mysql_close($connect);
?>
</table>

</body>

</html>[/PHP]

danke!

Und auf jeden Fall den übergebenen Wert vor der Verwendung im Query validieren und am besten zusätzlich noch maskieren:

http://forum.fachinformatiker.de/skript-webserverprogrammierung/79449-php-datenbanksicherheit-strings.html

In Deinem Beispiel würde ein


if ($_REQUEST['loeschen'] == '1') {

  mysql_query("DELETE FROM $db WHERE ID = '".intval($_REQUEST['ID'])."'",$connect) or die (mysql_error()); 

}

schon helfen...

DELETE FROM $db WHERE ID = '$ID'

Hast du mal getestet ob das Query überhaupt funktionert? Direkt im phpMyAdmin und nimm einfach einen Beispiel Wert...

Bin zwar ein Anfänger und mit PHP auf dem Kriegsfuss... Aber muss es nicht DELETE * FROM ... heissen?

wow. es geht so wie monty meinte! vielen dank! ;)

und wofür war das register globals? das hab ich schon von mehreren gehört!

irgendwie kann ich mir nocht vorstellen, dass dein code funktioniert, denn:

mysql_select_db($db, $connect)

mysql_query("DELETE FROM $db WHERE ID = '$ID'",$connect)

fällt dir was auf?

löschen tust du aus der tabelle, nicht aus der datenbank...

ansonsten ist dein code extrem unübersichtlich und sicherheitsmäßig... naja null checks halt...

zu register globals etc:

PHP: Hypertext Preprocessor

die php seite ist wirklich top!

doch, so wie monty geschrieben hat funktioniert es ganz gut!

hmm ich könnte mir vorstellen, dass man alternativ eben wie du ne db angeben kann, sofern eindeutig ist, was gemeint ist.

aber wenn du z.b. 2 tabellen mit ner spalte ID in der db hast, woher soll mysql wissen, welcher eintrag gemeint ist?

selbst wenn es funktioniert, es ist falsch und wird dir irgendwann mächtig probleme bringen.

kann sein! aber das ist ein anderes problem ;) nun funktioniert es ja so wie ich will ;)

das sagen sich die oracle menschen wahrscheinlich auch immer *scnr*

oracle kenn ich nicht mal ;)

Ich hoffe du lässt dieses Script nicht Öffentlich laufen, es wäre sonst möglich das jeder jeden Datensatz bei dir löschen kann, da du den Lösch Befehl inkl. id per Get übergibst.

nene.... ist nur bei uns intern! ;) ista uch nichts schlimmes, was damit angerichtet werden kann ;)

na wenn die ganze telekom so arbeitet, dann gute nacht, kein wunder dass da nie was geht...

hab ich gesagt, dass es für die telekom ist? man man man... es ist für ein paar azubis und mich ... stell dich mal nicht so an...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.