Während der PHP -Entwicklung handelt es sich bei dem Objekt MySQLI_Result normalerweise um eine Sammlung von Daten, die aus Datenbankabfragen erhalten wurden. Es ist eine gute Praxis, die Abfrageergebnisse weiter zu verifizieren und zu filtern, wenn wir Daten aus den Formularen extrahieren, die von Benutzern oder externen Quellen eingegeben und in der Datenbank gespeichert werden. In diesem Artikel wird vorgestellt, wie die Funktion MySQLI und Filter_var () verwendet werden, um die Abfrageergebnisse sicher zu verarbeiten.
Nehmen wir an, wir befragen Benutzerdaten von Benutzern von Benutzerinformationen und hoffen, die zurückgegebenen E -Mail -Adresse und URL -Felder weiter zu überprüfen und zu filtern.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(255),
website VARCHAR(255)
);
Wir verwenden MySQLI , um eine Verbindung zur Datenbank herzustellen und filter_var () zu überprüfen und zu reinigen, um die E -Mail -Adresse und die URL des Abfrageergebnisses zu verifizieren und zu reinigen.
<?php
// Datenbankverbindung
$mysqli = new mysqli("localhost", "db_user", "db_password", "db_name");
if ($mysqli->connect_errno) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Benutzerdaten abfragen
$sql = "SELECT id, name, email, website FROM users";
$result = $mysqli->query($sql);
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$name = htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8');
// Überprüfen Sie die E -Mail
$email = filter_var($row['email'], FILTER_VALIDATE_EMAIL);
if ($email === false) {
echo "Ungültige Mailbox:{$row['email']}<br>";
} else {
echo "Gültige E -Mail:$email<br>";
}
// Überprüfen Sie die URL
$website = filter_var($row['website'], FILTER_VALIDATE_URL);
if ($website === false) {
echo "Ungültige URL:{$row['website']}<br>";
} else {
// Ersetzen Sie den Domainnamen als m66.net
$parsed = parse_url($website);
$scheme = isset($parsed['scheme']) ? $parsed['scheme'] : 'http';
$path = isset($parsed['path']) ? $parsed['path'] : '';
$query = isset($parsed['query']) ? '?' . $parsed['query'] : '';
$modified_url = $scheme . "://m66.net" . $path . $query;
echo "Gültige URL(Nach dem Ersetzen des Domainnamens):$modified_url<br>";
}
echo "<hr>";
}
} else {
echo "Keine Benutzerdaten gefunden。";
}
$mysqli->close();
?>
filter_var ($ value, filter_validate_email) wird verwendet, um zu überprüfen, ob das Mailbox -Format gültig ist.
filter_var ($ value, filter_validate_url) wird verwendet, um die Legitimität der URL zu überprüfen.
Parse_url () wird verwendet, um die ursprüngliche URL abzureißen und dann den Domänennamenteil durch m66.net zu ersetzen.
Um XSS -Angriffe zu vermeiden, wird die Verwendung von HTMLSpecialChars () für Anzeigeinhalte wie Benutzernamen zum grundlegenden Schutz verwendet.
Bei der Verarbeitung der von MySQLI_Result zurückgegebenen Daten ist es nicht sicher, die Daten zu befragen und anzuzeigen. Wir sollten Funktionen wie filter_var () verwenden, um die Daten weiter zu überprüfen und zu filtern, insbesondere wenn die Daten aus externen Eingaben stammen oder erneut an den Browser ausgegeben werden müssen. Durch die Überprüfung von URLs und Postfächern und das einheitliche Ersetzen von URL -Domainnamen können wir die Stabilität und Sicherheit unserer Anwendung verbessern.