Insertion dans base de données MYSQL IMPOSSIBLE!

Insertion dans base de données MYSQL IMPOSSIBLE! - PHP - Programmation

Marsh Posté le 10-04-2008 à 13:25:18    

Bonjour,
 
Je fais un projet pour mon bac et c'est un formulaire, je dispose de deux fichiers, un inscription.html et un inscription .php.
Le problème est que quand je rempli mon formulaire et que je clique sur valider, il me dit que les informations sont bien envoyés mais quand je vais dans ma base de données il y a bien en effet une ligne qui se rajoute mais tous mes champs sont vides.
 
Voici le contenu de mes deux fichiers :
 
HTML :
 
<html>
<head>
<title>Inscription</title>
</head>
 
<body bgcolor="#000000">
 
<center>
<img src="C:\Documents and Settings\Administrateur\Bureau\projet\mood_m6.JPEG">
</center>
 
<br>
<br>
 
<center><basefont face="castellar" size="5"color="red">Inscription</center></basefont>
 
<br>
<br>
<br>
<br>
 
<form method="post" action="inscription.php">
<table border >
<body text="red">
<center> <TABLE BORDER="2">
 
 
<TR>
<TD>Pseudo</TD>
<TD>
<INPUT type="text" name="pseudo">
</TD>
</TR>
 
<TR>
<TD>Password</TD>
<TD>
<INPUT type="text" name="password">
</TD>
</TR>
 
<TR>
<TD>Nom</TD>
<TD>
<INPUT type="text" name="nom">
</TD>
</TR>
 
<TR>
<TD>Prénom</TD>
<TD>
<INPUT type="text" name="prenom">
</TD>
</TR>
 
<TR>
<TD>Adresse</TD>
<TD>
<INPUT type="text" name="adresse">
</TD>
</TR>
 
<TR>
<TD>Ville</TD>
<TD>
<INPUT type="text" name="ville">
</TD>
</TR>
 
<TR>
<TD>Code Postal</TD>
<TD>
<INPUT type="text" name="cp">
</TD>
</TR>
 
<TR>
<TD>Sexe</TD>
<TD>
Homme : <INPUT type="radio" name="sexe" value="M">
<br>Femme : <INPUT type="radio" name="sexe" value="F">
</TD>
</TR>
 
<TR>
<TD>Date de Naissance</TD>
<TD>
<INPUT type="text" name="naissance">
</TD>
</TR>
 
<TR>
<TD>Remise à Zero</TD>
<TD>
<center><INPUT type="reset"></center>
</TD>
</TR>
 
</form>
 
</table></center>
 
<center>
<FORM ACTION="inscription.php">
<input type="submit" value="Valider">
</form>
<FORM ACTION="01.htm">
<input type="submit" value="Retour">
</form>
 
</center>
 
</body>
</html>
 
 
PHP :
 
<html>
<body>
<?php
 
// On commence par récupérer les champs
 
if(isset($_POST['pseudo'])) $pseudo=$_POST['pseudo'];
else $pseudo="";
 
if(isset($_POST['password'])) $password=$_POST['password'];
else $password="";
 
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
 
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
 
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
 
if(isset($_POST['ville'])) $ville=$_POST['ville'];
else $ville="";
 
if(isset($_POST['cp'])) $cp=$_POST['cp'];
else $cp="";
 
if(isset($_POST['sexe'])) $sexe=$_POST['sexe'];
else $sexe="";
 
if(isset($_POST['naissance'])) $naissance=$_POST['naissance'];
else $naissance="";
 
// connexion à la base
 
$connexion = mysql_connect("localhost", "root", "root" ) or die ("Impossible de se connecter" );
mysql_select_db("bmw",$connexion) or die ("Impossible de trouver la base" );
 
 
// On vérifie si les champs sont vides
 
 
if(empty($pseudo) OR empty($password) OR empty($nom) OR empty($prenom) OR empty($adresse) OR empty($ville) OR empty($cp) OR empty($sexe) OR empty($naissance))
 
// on écrit la requête sql
 
$sql=("insert into inscription (pseudo, password, nom, prenom, adresse, ville, cp, sexe, naissance)
values ('$pseudo','$password','$nom','$prenom','$adresse','$ville','$cp','$sexe','$naissance')" );
 
// on insère les informations du formulaire dans la table
 
mysql_query($sql);
 
// on affiche le résultat pour le visiteur
 
echo"<br/><br/>Vos données ont bien été envoyées.";
 
// on ferme la connexion
 
mysql_close();
 
?>
 
</body>
</html>

Reply

Marsh Posté le 10-04-2008 à 13:25:18   

Reply

Marsh Posté le 10-04-2008 à 13:36:45    

que donne echo $sql ?

 

ps: aucune idée si c'est ça mais les parenthèses de "sql=(...);" sont inutiles


Message édité par art_dupond le 10-04-2008 à 13:38:15

---------------
oui oui
Reply

Marsh Posté le 10-04-2008 à 13:46:59    

insert into inscription (pseudo, password, nom, prenom, adresse, ville, cp, sexe, naissance) values ('','','','','','','','','')

Reply

Marsh Posté le 10-04-2008 à 13:50:24    

Je ne vois pas se que je dois faire :(

Reply

Marsh Posté le 10-04-2008 à 13:53:02    

fait un print_r($_POST) histoire de voir les données passées par ton fomulaire
 
et pourquoi tu as  

Code :
  1. <FORM ACTION="inscription.php">
  2. <input type="submit" value="Valider">
  3. </form>
  4. <FORM ACTION="01.htm">
  5. <input type="submit" value="Retour">
  6. </form>

?
 
logiquement tu mets ton bouton submit dnas le formulaire qui doit etre soumis et tu mets un lien pour le retour


---------------

Reply

Marsh Posté le 10-04-2008 à 13:54:27    

Bien j'ai mis un  bouton valider afin de valider les données inscrite dans le formulaire et envoyer ces données dans ma base de données puis j'ai fait un bouton retour pour revenir à l'accueil

Reply

Marsh Posté le 10-04-2008 à 13:55:07    

le print_r($post) je le met ou ?

Reply

Marsh Posté le 10-04-2008 à 13:56:08    

sauf que le formulaire qui contient le submit n'est pas celui qui contient les données
 
et le print_r , tu le mets avant de traiter les données du POST ( a mon avis ca va te dire qu'il n'y a aucune données dans $_post )


---------------

Reply

Marsh Posté le 10-04-2008 à 14:03:04    

Il vient de m'envoyer les informations c'est bon c'etait le bouton submit qui n'etait plus dans le tableau ^^
 
Par contre je pense que je vais essayer de racourcir mon code, je peux peut etre enlever tous les if ?
 

Reply

Marsh Posté le 10-04-2008 à 14:06:06    

non, tu ne pas enlever les if  
 
par contre tu peux ajouter un peu de code pour sécuriser tout ca :  
remaplcer tes if par  

Code :
  1. if(isset($_POST['pseudo'])) $pseudo=mysql_real_escape_string($_POST['pseudo']);
  2. else $pseudo="";


 
pour eviter que ton insertion plante si quelqu'un met un apostrophe dans un  champ ou que quelqu'un puisse injecter une requete  
 
par exemple si dans naissance, je mets  
         ');  DROP TABLE inscription ; #


---------------

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed