Aktueller Standort: Startseite> Neueste Artikel> Wie kann ich bestimmen, ob der Benutzer die Originaldaten über die Funktion array_diff_assoc () in Formularüberprüfung geändert hat?

Wie kann ich bestimmen, ob der Benutzer die Originaldaten über die Funktion array_diff_assoc () in Formularüberprüfung geändert hat?

M66 2025-06-24

Bei der Entwicklung von Webanwendungen ist die Verifizierung von Formularen ein wichtiger Schritt, um die Gültigkeit von Benutzereingabedaten sicherzustellen. Zusätzlich zur Überprüfung des Datenformats müssen wir feststellen, ob der Benutzer die Originaldaten geändert hat, insbesondere wenn es um sensible Datenaktualisierungen geht. PHP liefert eine nützliche Funktion Array_diff_assoc () , mit der wir die Differenz zwischen zwei Arrays bestimmen und dann überprüfen können, ob der Benutzer die ursprünglichen Daten manipuliert hat.

Einführung in die Funktion array_diff_assoc ()

Die Funktion array_diff_assoc () wird verwendet, um die Unterschiede zwischen zwei Arrays zu berechnen. Es vergleicht die Schlüsselnamen und Schlüsselwerte der beiden Arrays. Wenn sich die Schlüsselnamen oder Schlüsselwerte in der Array ändern, gibt die Funktion diese Unterschiede zurück. Diese Funktion macht array_diff_assoc () eine ideale Wahl, um festzustellen, ob der Benutzer Daten in Formularüberprüfung ändert.

 array_diff_assoc(array $array1, array $array2)
  • Array1 : Das erste Array.

  • Array2 : Das zweite Array, das mit dem ersten Array verglichen wird.

Diese Funktion gibt ein Array zurück, das Unterschiede enthält, bei denen Elemente mit unterschiedlichen Schlüsselnamen und Werten zurückgegeben werden.

Verwenden Sie Array_Diff_assoc (), um festzustellen, ob der Benutzer die Originaldaten geändert hat

Angenommen, wir haben ein Benutzerbearbeitungsformular und die Originaldaten werden in der Datenbank gespeichert. Wenn ein Benutzer ein Formular einreicht, möchten wir überprüfen, ob der Benutzer die Originaldaten geändert hat. Dazu können wir die vom Benutzer übermittelten Formulardaten mit den Originaldaten vergleichen. Wenn der Unterschied festgestellt wird, bedeutet dies, dass der Benutzer die Daten geändert hat.

Beispielcode:

 <?php
// Rohdaten(Angenommen, es wird aus der Datenbank abgerufen)
$original_data = [
    'username' => 'john_doe',
    'email' => 'john@example.com',
    'age' => 30
];

// Benutzerinte Formulardaten
$form_data = [
    'username' => 'john_doe', // Angenommen, es ist nicht modifiziert
    'email' => 'john_new@example.com', // Der Benutzer hat die E -Mail -Adresse geändert
    'age' => 30
];

// verwenden array_diff_assoc() Daten vergleichen
$diff = array_diff_assoc($original_data, $form_data);

if (empty($diff)) {
    echo "用户未修改Rohdaten。";
} else {
    echo "Der Benutzer hat die Daten geändert: ";
    print_r($diff);
}
?>

Ausgangsergebnis:

 Der Benutzer hat die Daten geändert: 
Array
(
    [email] => john_new@example.com
)

In diesem Beispiel gehen wir davon aus, dass die Originaldaten im Array $ original_data gespeichert sind und das vom Benutzer übermittelte Formulardaten $ Form_Data enthält. Durch Aufrufen der Funktion array_diff_assoc () können wir Unterschiede im E -Mail -Feld erkennen, um anzuzeigen, dass der Benutzer die Mailbox geändert hat.

Warum wählen Sie array_diff_assoc () ?

  1. Genauigkeit : Array_Diff_assoc () vergleicht nicht nur Schlüssebürme, sondern auch Schlüsselwerte. Daher wird die Differenz nur dann zurückgegeben, wenn sich der Schlüsselname oder der Schlüsselwert ändert.

  2. Einfachheit : Diese Funktion kann die Unterschiede zwischen Arrays intuitiv finden, ohne das Array manuell durchzuführen.

  3. Sicherheit : Auf diese Weise können wir Benutzer daran hindern, versteckte Felder im Formular zu manipulieren oder die ursprünglichen Daten direkt zu ändern.

Anwendungsszenarien

  1. Formular zur Änderung des Kennworts : Wenn der Benutzer das Kennwort ändert, kann er das ursprüngliche Kennwort mit dem übermittelten Passwort vergleichen, um sicherzustellen, dass der Benutzer den Inhalt als das Kennwort nicht geändert hat.

  2. Kontoinformationen ändern .

  3. Datenprüfung : In einigen Systemen, bei denen die Aufzeichnung von Benutzeroperationen erforderlich ist, können die Daten, die Benutzer geändert haben, über Array_Diff_assoc () aufgezeichnet werden, um nachfolgende Audits zu erleichtern.

Zusammenfassung

Durch die Funktion array_diff_assoc () können Entwickler leicht feststellen, ob der Benutzer die Daten im Formular geändert hat. Die Anwendung in der Formüberprüfung kann die Sicherheit des Systems effektiv erhöhen und Datenmanipulationen und andere potenzielle Sicherheitsrisiken vermeiden. Wenn Sie mit sensiblen Daten arbeiten, wird empfohlen, diese Methode zu verwenden, um die Integrität der Daten zu gewährleisten.