Tom's Guide > Forum > Programmation > probleme insertion donnée dans base de donnée a partir d'un formulaire
Mot :    Pseudo :           
 

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.

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 !

Répondre à Sethpolma
Tom's Guide > Forum > Programmation > probleme insertion donnée dans base de donnée a partir d'un formulaire
Aller à :

Il y a 2487 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens