Test avec base de données d'adjectifs anglais ou français
Exemple de fichier de requête avec php mysqli (procédural)
Cet exemple montre une requête simple non sécurisée. Cette requête test avec des mots anglais français à titre d'exemple une connexion mysqli en procédural
La traduction est approximative, il s'agit d'un exemple de gestion de données.
<?php
$f_lettre_frm = htmlspecialchars($_POST['fletter']);
//1
if (empty($f_letter)) {
die("Sélection lettre requise");
//2 }
include_once('config_conn.php');
//3
$conn = mysqli_connect(SVR_IP, UTILISATEUR, MOTDEPASSE); //
4
if(mysqli_connect_errno()) { //
5 exit("<p>Echec de la connexion: (" . mysqli_connect_errno() . ")</p>");
} else {
echo "<p>Paramètres de connection à la base de données valides</p>";
}
mysqli_select_db($conn, "bdd_01"); //
6
$f_lettre = $f_lettre_frm.'%';
//7
$sql = "SELECT col1, col2, col3
FROM bdd_table
WHERE col1 LIKE '$f_lettre'";
$results = mysqli_query($conn, $sql);
//8
if (!$results){
//trigger_error(mysqli_error($conn), E_USER_ERROR);
//9 }
if (isset($conn)){
mysqli_close($conn);
//10 }
echo "<table style = 'border:1px solid black;' border = 1>";
while($row = mysqli_fetch_array($results)){
//11 echo <tr>
echo "<td>" . $row['Adjectif masculin fr'] . "</td>";
echo "<td>" . $row['Adj féminin fr'] . "</td>";
echo "<td>" . $row['Adj anglais'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_free_result($results);
//12
}
?>
htmlspecialchars()
normalement utilisée sur des saisies utilisateurs. Pour cette page, il s'agit d'une sélection de valeurs dans un menu déroulant. Par précaution, la fonction php diminue le risque d'un détournement
des données du formulaire et le risque d'une vulnérabilité par
mysqli_select_db()
mysqli_query()
trigger_error(mysqli_error(), E_USER_ERROR)
et mysqli_error() en paramètre
mysqli_close()
mysqli_fetch_array()
Pour l'exemple ci-dessus, le script ne propose pas de mesures de sécurité contre notamment les attaques par
Une de ces mesures est l'utilisation de
Cet exemple, peut servir pour comprendre des scripts anciens et les faire évoluer vers des requêtes préparées en procédural ou objet.
Le script de cet exemple a été testé mais le script qui s'applique utilise des requêtes préparées pour les raisons de sécurité évoquées.