Tom: Safety first, auch beim Löschen

Beitrag lesen

Hello,

Matti Maekitalo hat eben schon "BAHNHOF" gesagt und ich hänge mich da mal ganz provokativ dran: "BAAAHNHOOOF".

Bitte beschreibe in Deinen Worten

  • im Groben
    -- etwas feiner
    ---- detailliert

was passieren soll.

Ich nehme einfach mal an, dass Du aus einer Datenbanktabelle Daten ausliest.
Diese Daten werden aufbereitet für die Anzeige im HTML-Browser.

Wenn der User die Berechtigung für Änderungen der Anzeige oder der Daten hat, oder es mehrere Seiten gibt, wird diese Tabelle in ein Formular eingebunden, das passende Submit-Buttons für die gewünschte Aktion erhält.

Wenn ein User die Berechtigung dazu hat, wird ihm zusätzlich eine Checkbox "Delete" pro Datensatz generiert und ein Butten "marktierte Sätze Löschen"

Um dann beim Post zu wissen, welche Sätze gelöscht werden sollen, werden die Checkboxen als Array übertragen und sie erhalten die ID des Datensatzes als Value.

<input type="checkbox" name="ctrl[delete][]" value="$id">

Wenn jetzt ein Post am Server ankommt, kann das Script den User-Wunsch auswerten.

if (isset($_POST['ctrl']['delete']) and is_array($_POST['ctrl']['delete']))
{
    ## Arraywerte in Integers umwandeln (ID ist bei uns immer ein Int > 0)
    ## http://de3.php.net/manual/en/function.array-map.php
    $_POST['ctrl']['delete']) = array_map('intval', $_POST['ctrl']['delete']);

## Jetzt kontrollieren wir, ob wir dem User die DS mit den IDS überhaupt gesendet haben,
    ## sonst könnte der ja alles löschen, was ihm so einfällt.
    ## Dazu vergleichen wir ein Array in der Session mit den rückgesendeten IDs
    ## Das Array in der Session enthält nur die IDs der DS, die der User löschen darf.
    #####
    ## das solltest Du aber selber können
    #####

## nun bauen wir das Set für die MySQL-Abfrage auf
    ## <http://de3.php.net/manual/en/function.array-values.php)
    $delete_set = '(' . implode(',', $_POST['ctrl'>['delete']) .')';

## und nun können wird die Datenbankabfrage aan das Model übergeben

$success = delete($varified_username, $table, $delete_set);
}

für mich hat!!!
Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de