Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 50870icon_mrgreen.gif

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 wink

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