Britania 4

Version complète : [RESOLU]P'tit problème de code php/html et SQL
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonjour,

je vous expose mon soucis,
je veux créer un formulaire sur une page de mon site dans lequel on y met les infos nécessaires etc ... puis on valide, bon jusque là vous me suivez je pense.
C'est le genre de truc assez typique qu'on fait avec une base SQL.
Mais moi j'ai un soucis parce que dans la DB on voit se créer les "champs" avec les infos mais les cases à renseigner sont vide ...
Genre pour moi il y a 'pseudo' , 'email', 'text', mais ces champs sont vides.

Je vous met mon fichier php et la partie html :

CODE PHP:
Code PHP :
<?php

//connexion à la DB :

$connect mysql_connect('localhost','root','XXXX') or die ("Erreur de connexion");

//Selection de la bonne DB :

mysql_select_db('mabdd',$connect) or die ("Erreur de connexion a la base");

// Insertion des données voulu :

mysql_query("INSERT INTO `monchamp` VALUES ('$pseudo','$email','$text') ");


//Enfin on ferme Mysql :

mysql_close();
?>

Partie du code html associé :
Code :
<form method="post" action="insert.php">
Pseudo : <center><input type="text" name="pseudo"></center><br>
Email  : <center><input type="text" name="email"></center><br>
Texte de candidature :
<p><center><input type="text" style="width:300px; height:180px;" name="text"></center><br>
<center><input type="submit" name="submit" value="Valider"></center>
</form>

Merci d'avance.
bonjour de nombreuses erreurs font que cela ne peux marcher
1- tu veux insérer 3 données dans une table. possible mais je en pense pas que c'est ce que tu veux. alors tu toi mettre
Code PHP :
mysql_query("INSERT INTO (monchamp1,champ2,champ3) VALUES ('$pseudo','$email','$text') "); 
2 - tu ne déclare pas les variables , $pseudo, $email, $test soit tu créer les variable grâce que requêtes post de ton formulaire soit tu insères directement les variable post dans ta requête sql
a) créer les variables:
Code PHP :
$pseudo $_POST['pseudo'];
$email $_POST['email'];
$text $_POST['text'];
mysql_query("INSERT INTO (monchamp1,champ2,champ3) VALUES ('$pseudo','$email','$text') "); 
b) insertion direct dans la requêtes sql
Code PHP :
mysql_query("INSERT INTO (monchamp1,champ2,champ3' )VALUES ($_POST['pseudo,$_POST['email'],'$text = $_POST['text'] )"); 
Merci pour ta réponse coco77,

je test ça.
ok tient moi au courant
C'est bon j'ai réussi grâce à ton exemple, merci.

Est-ce que tu sais comment je pourrai faire pour mettre un message de confirmation après avoir cliqué sur valider ?
Je sais qu'il y a le : message("...");
mais il faut le définir je crois ?
un ptit script javascript je ne sais pas lequel vu que je n'utilise trés peu comme les requêtes sont assez lourdes
Ok c'est bon j'en ai trouvé un, merci.
Déterrage de topic pour dire que ce n'est pas prudent de mettre son exemple en réel code. Grace à ça, je peux par exemple supprimer toutes les données de ta bdd ou en récupérer.

Essaye plutot avec la fonction "mysql_real_escape_string()" (qui insère des "\" avant les simples ou doubles quotes pour eviter l'injection sql) et "htmlentities()" (qui convertit tout caractère spéciaux en code html, là aussi pour eviter l'injection SQL). Lors de l'affichage des données, passer les valeurs dans "html_entity_decode()" pour décoder les caractères spéciaux.
Exemple:
Code :
$pseudo = htmlentities(mysql_real_escape_string($_POST['pseudo']));
$email = htmlentities(mysql_real_escape_string($_POST['email']));
$text = htmlentities(mysql_real_escape_string($_POST['text']));

Puis d'ajouter les valeurs là.

Voili voilou :]
URLs de référence