Pages : 1
#1 Le 02/03/2008, à 01:32
- linda80
les base de données et les formulaires
Bonjour,
je débute en php et j'aimerais ajouter des éléments a la base de donnée a travers un formulaire.
j'ai crée un formulaire en html et et un programme php qui recupere les données du formulaire
et pour ajouter un élement j'ai tapé le code suivant:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("tp");
// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO tp4 VALUES('', '$_POST['nom']', '$_POST['prenom']', '$_POST['date de naissance]')");
mysql_close();
?>
mais j'ai des erreurs !!
pourriez-vous m'aider SVP
Hors ligne
#2 Le 02/03/2008, à 02:15
- linda80
Re : les base de données et les formulaires
il suffit de mettre avant la requete :
$x=$_POST['nom ']; et de le remplacer par sans la requete par $x;
Hors ligne
#3 Le 02/03/2008, à 02:29
- dexinou
Re : les base de données et les formulaires
Bonjour les injections SQL
Assez rie,
si tu ne protège pas tes variables tu vas avoir des problèmes de hack.
//On protège les variables contre l'injection SQL
$nom = mysql_real_scape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_scape_string(htmlspecialchars($_POST['prenom']));
et avant ça tu dois normalement vérifier que tes variables existes:
//On vérifie la connexion à mysql
$link = mysql_connect("localhost", "ton_user", "ton_passe");
if(!$link) {
echo "Impossible de se connecter à mysql";
exit();
}
//On vérifie que les variables existes
if(isset($_POST['nom']) && isset($_POST['prenom'])) {
$nom = mysql_real_scape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_scape_string(htmlspecialchars($_POST['prenom']));
else {
echo "Un problème a été détecté dans votre formulaire";
exit();
}
}
//Si tout est bon alors on injecte le tout
mysql_select_db("ta_base");
$query = "INSERT INTO tp4 VALUES('', '".$nom."', '".$prenom."', '".$_POST['date de naissance']."')";
mysql_query($query) or die(mysql_error());
echo "<b>Félicitations, l\'utilisateur '.$prenom.' a été enregistré dans la base de donnée!!</b>";
//On ferme la connexion à mysql
mysql_close($link);
J'ai pas testé le code mais normalement il est bon
Bonne chance
Dernière modification par dexinou (Le 02/03/2008, à 03:04)
Ubuntu 9.10 64bits ext4 ® Core 2 Duo
Unix..... il y a moins bien mais c'est plus cher.
Si t'as pas compris la réponse, pose mieux ta question.
Tutoriaux Linux, apache, pure-ftpd, bind, mysql, qmail...
Hors ligne
Pages : 1