Illustrations des incohérences produites :
Cas 1 : édition et méthode GET
- On dispose d'une table Nom(int id, string nom) avec une gestion automatisée de la clé.
- On réalise un formulaire pour mémoriser de nouveaux noms dans la table qui utilise la méthode GET
- Résultat : script d'insertion avec GET
Cas 2 : passage à la méthode POST
Code PHP (version GET)
try {
if (isset($_GET['action'])) {
$dbs1 = $dbh->prepare('INSERT INTO nom(nom) VALUES(:nom)');
$dbs1->bindValue(':nom', $_GET['nom']);
$dbs1->execute();
}
else {
$dbs1 = $dbh->query('DROP TABLE IF EXISTS nom ');
$dbs1 = $dbh->query('CREATE TABLE nom (id integer auto_increment PRIMARY KEY,
nom varchar(25))');
$dbs1 = $dbh->query("INSERT INTO nom(nom) VALUES ('nom 1'),('nom 2'),('nom 3')");
}
$dbs1 = $dbh->query('SELECT * from nom');
$tab = $dbs1->fetchAll($fetch_style = PDO::FETCH_ASSOC);
echo "<h1>Contenu de la table nom</h1>";
echo "<table border='1'>\n";
$colnames = array_keys($tab[0]);
echo "<tr>\n";
foreach ($colnames as $col) {
echo "<th>" . $col . "</th>";
}
echo "</tr>\n";
foreach ($tab as $ligne) {
echo "<tr>\n";
foreach ($ligne as $col) {
echo "<td>" . $col . "</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
} catch (PDOException $e) {
print "<br />Erreur !: " . $e->getMessage() . "<br/>";
die();
}
echo "<h2>Formulaire utilisant la méthode GET</h2>";
echo "<form action='' method=get>
<input type='text' name='nom' />
<input type='submit' name='action' value='inserer'/>
</form>";