Insertion dans base de données MYSQL IMPOSSIBLE!

cs_MuS3 Messages postés 1 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 10 avril 2008 - 10 avril 2008 à 13:37
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 - 11 avril 2008 à 08:52
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>

<center>

</center>

<center>Inscription</center>

<form method="post" action="inscription.php">

<center> <TABLE BORDER=\"2\">

----

Pseudo,
,

----

Password,
,

----

Nom,
,

----

Prénom,
,

----

Adresse,
,

----

Ville,
,

----

Code Postal,
,

----

Sexe,
Homme :

Femme : ,

----

Date de Naissance,
,

----

Remise à Zero,
<center></center>,

</form>
</center>

<center>
<FORM ACTION="inscription.php">

</form>
<FORM ACTION="01.htm">

</form>

</center>

</html>

PHP :

<html>

<?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"

Vos données ont bien été envoyées.";

// on ferme la connexion

mysql_close();

?>

</html>

4 réponses

Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
10 avril 2008 à 14:33
Bonjour,

Premièrement, es-tu sûr qu'il crée bien une nouvelle ligne dans ta table ?
Deuxièmement, as-tu bien vérifié les paramètres de connexion à la base de données ?

Pour finir, le message Vos données ont bien été envoyées apparaît toujours, quel que soit le résultat de ta requête, donc ne te fie pas trop à ce dernier...

"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
0
Euskalor Messages postés 40 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 22 avril 2010
10 avril 2008 à 16:27
Si je me trompe pas c'est normal ton erreur ! Qui en fait n'en est pas vraiment une.

Le soucis vient de ta première balise </form>. Si tu l'as met après tous tes input text et que tu redémarre un autre Form action, alors quand tu clique sur valider il n'enregistrera rien.

...
center></center>
</TD>
</TR>

</form> ---> Efface ça

</table></center>

<center>
<FORM ACTION="inscription.php"> ---> Efface ça

</form>
<FORM ACTION="01.htm">

</form>

</center>
...

Comme ça le Submit prendra en charge tes input texte.
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
11 avril 2008 à 00:29
Salut,

Je suis du même avis que Euskalor, un submit envoit le formulaire dans lequel il est déclaré, pas tous les formulaires de la page... ton submit doit donc être dans le même form que tes champs (ou utilisé du javascript pour envoyé le BON formulaire)...

Ton code est assez brouillon je trouve que tu pourrais beaucoup raccourcir ça... Mais ça, c'est une autre histoire :)

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
11 avril 2008 à 08:52
Le pire, c'est que je n'ai même pas vu cette erreur...

Pour compléter ce que propose yoman64, je te conseille aussi, afin d'être conforme aux normes xhtml, d'écrire toutes tes balises en minuscule, et de fermer toutes les balises (même les input ou img !).
Ca ne fonctionnera pas plus vite, mais ça sera plus homogène et ça respectera les normes.

Bonne continuation dans ton développement (et n'oublie pas le tag résolu, donc penses à accepter la réponse d'Euskalor).

"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
0