Sécurité avant de faire un INSERT
J'ai un formulaire dont je veux ecrire les résultat dans ma base. Jusque là rien d'extrordinaire me direz vous...
Code:
1 2 3 4 5 6
| $sql = "INSERT INTO commandes(date_command,tarif,date_depart,heure_depart,adresse_depart,ville_depart,adresse_arrivee,ville_arrivee,nb_personne,commentaire) VALUES('$date_command','$prix_valid','$date_valid','$heure_valid','$adresse_depart','$ville_depart','$adresse_arrivee',
'$ville_arrivee','$nb_valid','$commentaire')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); |
Le problème c'est que je ne veux pas qu'on puisse y rentrer n'importe quoi (code, injection SQL, ou simplement une apostrophe simple...).
Mes recherches dans mon bouquin et sur le net sont assez contradictoires.
Chacun y va de son conseil qui démonte celui de l'autre.
Donc selon vous, quels serait la meilleur façon, aujourd'hui de securiser mon code ?
Il faut vous mettre d'accord !
Le but du forum est de venir puiser des réponses, il n'y a pas que l'émetteur de la question qui scrute les réponses mais tout un tas de gens comme moi qui naviguons pour glaner ci et là une réponse à une foultitude de questions, finalement "Cheorches" a posé une question le 21/11 et en 10 jours, n'a pas pu progresser, nous non plus d'ailleurs, qui plus est, il n'est pas réapparu !
pour ma part j'ai parcouru le forum de 2003 à nos jours, et je vois toujours pas la réponse mon interrogation à part plein de termes non expliqués et plein de code à revendre plus ou moins obsolètes selon certains.
Ma question est simple :
je suis dans un post et envoie un texte d'un champ textarea appelé ici "descro" contenant un apostrophe genre : l'eau
je récupère les données de mon post dans une page php ou je vérifie que le champ est rempli
Code:
1 2 3 4 5 6 7
|
<?php
// On commence par récupérer les champs du formulaire
$titre = isset($_POST['titre']) ? $_POST['titre'] : '';
$url = isset($_POST['url']) ? $_POST['url'] : '';
$descro = isset($_POST['descro']) ? $_POST['descro'] : ''; |
ensuite après vérif je me connecte à la base pour lui envoyer les données du formulaire.
Code:
1 2 3
|
// on écrit la requête sql
$sql = "INSERT INTO sites (titre, url, descro) VALUES('$titre', '$url', '$descro')"; |
J'ai bien compris qu'il convenait d'utiliser le addslashes, mais où l'insérer très exactement ? je vois pas bien avec le isset cela ne fait pas bon ménage, question de parenthèses probablement !
Quelqu'un pourrait-il juste faire un post intelligible qui serve immédiatement mais aussi aux milliers de visiteurs qui dans le futur chercheront la réponse à cette question somme toute banale pour des gens éclairés !
:merci: