probleme insertion donnée dans base de donnée a partir d'un formulaire - Programmation
TomsGuide.com : 700 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
 




Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : probleme insertion donnée dans base de donnée a partir d'un formulaire
 
Profil : IDNaute
Plus d'informations

Bonjour,
Voila petit souci je viens de me mettre au php et mysql avec base de donnée et tout le tralala enfin bref...
donc le truc est la je vous presente le code que j'ai écris:

<form action="connexion_bdd.php" method="post">
<b>pseudo:</b><input type="text" name="pseudo"><br>
<b>sujet:</b><input type="text" name="sujet"><br>
<b>texte:</b><br><textarea rows="5" cols="45" name="texte"></textarea><br>

<?
mysql_connect("localhost","root","" );
mysql_select_db("news" );
mysql_query("INSERT INTO news(id,pseudo,sujet,texte) VALUES ('', 'pseudo', 'sujet', 'texte')" );
mysql_close();
?>

<input type="submit" value="valider">

</form>


maintenant le probleme :IE m'indique que les variables 'pseudo', 'sujet', 'texte' n'existent pas quelqu'un aurait une solution?merci d'avance

Liens sponsorisés


Inscrivez-vous ou connectez-vous pour masquer ceci.

Profil : IDNaute
Plus d'informations

Je vois quelques petits problèmes...

Tout d'abord, quand tu appuies sur "Valider", le script contenu dans "action" s'exécute. Ici, il doit simplement se connecter à la base de données. Je ne vois donc pas pourquoi tu te connectes une deuxième fois à l'intérieur du formulaire.

Ainsi, il vaudrait mieux que tu transformes ta balise "form" de la manière suivante :

Code :
  1. <form method="POST" action="formulaire.php">



Ensuite, dans ton fichier formulaire.php, tu y places le morceau de code suivant (les commentaires viennent après) :

Code :
  1. <?php
  2.     include('connect_db');
  3.     $pseudo = htmlentities($_POST['pseudo']);
  4.     $sujet = htmlentities($_POST['sujet']);
  5.     $texte = htmlentities($_POST['texte']);
  6.     mysql_query('INSERT INTO news ( pseudo, sujet, texte ) VALUES ( \'$pseudo\', \'$sujet\', \'$texte\' )';
  7. ?>



Tout d'abord, on se connecte à ta base de données.

On récupère ensuite les variables de ton formulaire, postées par la méthode POST. Ainsi, la variable contenant la valeur postée de pseudo est $_POST['pseudo']. On sécurise un peu le tout en évitant l'injection méchante de scripts avec la fonction htmlentities.

Enfin, on insère dans ta table le nouvel enregistrement. Je rappelle que les slashs (ou antislashs ? enfin, les trucs là : \ ) sont le caractère d'échappement. Ceci soulève une autre question : pourquoi n'avoir mis que des simples guillemets ? J'ai lu sur plusieurs sites que c'était un peu plus rapide. Je sais pas si c'est exact. Mais bon...

A noter que je n'ai pas rajouté l'id dans la requête SQL. Si tu veux l'ajouter, je pense qu'il vaudrait mieux lui attribuer la valeur null, pour qu'il incrémente tout seul. Sinon, il risque de mettre une valeur vide. Pas sûr non plus sur ce coup-là.

Bonne continuation !


  FORUM Infos-du-Net » Programmation » probleme insertion donnée dans base de donnée a partir d'un formulaire

Aller à :
 

Liens