IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Impossible d'enregistrer mes données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut Impossible d'enregistrer mes données
    Tout d'abord bonjour à toutes et tous, ceci est mon premier post !

    J'ai essayé de lire un max de FAQ et les tutos biensur, or là j'ai un soucis avec mon code et j'aimerai bien trouvé d'où vient l'erreur plutôt que de reprendre un autre code (sûrement plus propre) qui viendrait d'un tuto !

    En fait il s'agit d'une erreur de débutant j'en suis sur ! Je voudrais mettre des infos d'un formulaire dans une base de données or quand je valide le formulaire se recharge vide et rien n'apparaît dans la base

    Voici le code de la page :

    En haut de page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <? include("connex.php");
     
    $URL = $_SERVER["SCRIPT_NAME"];
    $Nom=""; if(!empty($_POST["Nom"]))
       $Nom=addslashes($_POST["Nom"]);
    $Prenom=""; if(!empty($_POST["Prenom"]))
       $Prenom=addslashes($_POST["Prenom"]);
    $Adresse=""; if(!empty($_POST["Adresse"]))
       $Adresse=addslashes($_POST["Adresse"]);
    $Ville=""; if(!empty($_POST["Ville"]))
       $Ville=addslashes($_POST["Ville"]);
    $CP=""; if(!empty($_POST["CP"]))
       $CP=addslashes($_POST["CP"]);
    $Tel=""; if(!empty($_POST["Tel"]))
       $Tel=addslashes($_POST["Tel"]);
    $Observations=""; if(!empty($_POST["Observations"]))
       $Observations=addslashes($_POST["Observations"]);
    $Budget=""; if(!empty($_POST["Budget"]))
       $Budget=addslashes($_POST["Budget"]);
    $Email=""; if(!empty($_POST["Email"]))
       $Email=$_POST["Email"];
    $Asnieres=""; if(!empty($_POST["Asnieres"]))
       $Asnieres=$_POST["Asnieres"];
    $Courbevoie=""; if(!empty($_POST["Courbevoie"]))
       $Courbevoie=$_POST["Courbevoie"];
    $Colombes=""; if(!empty($_POST["Colombes"]))
       $Colombes=$_POST["Colombes"];
    $Bois=""; if(!empty($_POST["Bois"]))
       $Bois=$_POST["Bois"];
    $Garenne=""; if(!empty($_POST["Garenne"]))
       $Garenne=$_POST["Garenne"];
    $Autres=""; if(!empty($_POST["Autres"]))
       $Autres=$_POST["Autres"];
     
    $message="";
    // si le champ "email" n'est pas vide
    if($email) {
       // on ajoute la fiche
       $table="ma_table";
       $query = "INSERT INTO $table(Nom,Prenom,Adresse,Ville,CP,Tel,Observations,Budget,Email,Asnieres,Courbevoie,Colombes,Bois,Garenne,Autres)";
       $query .= " VALUES('$Nom','$Prenom','$Adresse','$Ville','$CP','$Tel','$Observations','$Budget','$Email','$Asnieres','$Courbevoie','$Colombes','$Bois','$Garenne','$Autres')"; 
       $result = mysql_query($query);
       // et on prépare le message à afficher
       $message = "Merci Mr/Mme ".$Nom.", votre demande a bien été envoyée ! <br>Nous nous efforcerons de vous répondre au plus vite.";
     
    } ?>
    La vérification de contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    	   <script language="JavaScript"><!--
          function verif(Email) { // Email valide ?
             var arobase = Email.indexOf("@")
             var point = Email.lastIndexOf(".")
             if((arobase < 3)||(point + 2 > Email.length)
                ||(point < arobase+3)) return false
             return true
             }
          function test(Budget,Nom,Prenom,Ville,Tel,Email) { // Vérifie le formulaire
             if(Nom.value=="") { alert('Nom requis !')
                Nom.focus();return false }
             if(Prenom.value=="") { alert('Prénom requis !')
                Prenom.focus();return false }
             if(Budget.value=="") { alert('Budget requis !')
                Budget.focus();return false }
             if(Ville.value=="") { alert('Ville requis !')
                Ville.focus();return false }
             if(Tel.value=="") { alert('Téléphone requis !')
                Tel.focus();return false }
             if(!verif(Email.value)) { alert('Email invalide !')
                Email.focus();return false }
             return true // envoie les champs
             }
       //--></script>
    Et le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <? echo $message; ?>
    <form method="post" action="<? echo $URL; ?>" onSubmit="return test(this.Nom,this.Prenom,this.Budget,this.Ville,this.Tel,this.Email)">
    <input name="Asnieres" type="checkbox"> Asnières<br><input name="Courbevoie" type="checkbox"> Courbevoie
    <input name="Nom" type="text" class="form_fond">
    ...
    ...
    <input id="submit" type="submit" value="Envoyer" class="form_bouton">
    </form>
    J'espère que je poste cette demande d'aide dans les règles, n'hésitez pas à me dire si quelque chose ne va pas.

    Et d'avance merci beaucoup à la personne qui trouvera ma coquille

    Bien à vous,

    Camille

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    ton test :

    paraît incorrect tu devrais plutôt tester :

    D'autre part modifie la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $result = mysql_query($query);
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = mysql_query($query) or die(mysql_error());
    S'il y a une erreur SQL elle s'affichera.
    Bye

    (et bienvenue sur le forum ^^)

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,

    quand tu testes tes requêtes sql toujours faire:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<br>'.$query;
    $result = mysql_query($query) or die(mysql_error());

    l'echo te permettra de voir si tes variables ont été correctement remplacées et le die(mysql_error()) te renverra l'erreur s'il y en a une.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    Merci à vous c'est vrai qu'il faut pas que j'oublie ce die(mysql_error()), mais maintenant que j'ai modifié le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <script language="JavaScript"><!--
          function verif(Email) { // Email valide ?
             var arobase = Email.indexOf("@")
             var point = Email.lastIndexOf(".")
             if((arobase < 3)||(point + 2 > Email.length)
                ||(point < arobase+3)) return false
             return true
             }
          function test(Budget,Nom,Prenom,Ville,Tel,Email) { // Vérifie le formulaire
             if(Nom.value=="") { alert('Nom requis !')
                Nom.focus();return false }
             if(Prenom.value=="") { alert('Prénom requis !')
                Prenom.focus();return false }
             if(Budget.value=="") { alert('Budget requis !')
                Budget.focus();return false }
             if(Ville.value=="") { alert('Ville requis !')
                Ville.focus();return false }
             if(Tel.value=="") { alert('Téléphone requis !')
                Tel.focus();return false }
             if(verif(Email.value)!='') { alert('Email invalide !')
                Email.focus();return false }
             return true // envoie les champs
             }
       //--></script>
    J'ai le message que me dit que mon Email est invalide, et toujours pas de message d'erreur PHP.

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    En fait je te parlais du test PHP pas du test JS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // si le champ "email" n'est pas vide
    if($email != '') {
       // on ajoute la fiche
       $table="ma_table";
    Est-ce que le : echo '<br>'.$query; te donne quelque chose ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    Ah oui j'aurai pu m'en douter...

    Mais en fait ca change rien ! Pas de message d'erreur ni d'enregistrement ni de echo de mes variables !

    Serait-ce un problème avec ma base ?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    -- 
    -- Structure de la table `ma_table`
    -- 
     
    CREATE TABLE `ma_table` (
      `id` int(11) NOT NULL default '0',
      `Nom` varchar(255) NOT NULL default '',
      `Prenom` varchar(255) NOT NULL default '',
      `Adresse` varchar(255) NOT NULL default '',
      `CP` int(8) NOT NULL default '0',
      `Ville` varchar(255) NOT NULL default '',
      `Tel` varchar(255) NOT NULL default '',
      `Email` varchar(255) NOT NULL default '',
      `Observations` text NOT NULL,
      `Asnieres` varchar(10) NOT NULL default '',
      `Courbevoie` varchar(10) NOT NULL default '',
      `Colombes` varchar(10) NOT NULL default '',
      `Bois` varchar(10) NOT NULL default '',
      `Garenne` varchar(10) NOT NULL default '',
      `Autres` varchar(10) NOT NULL default '',
      `Budget` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM;
     
    -- 
    -- Contenu de la table `ma_table`
    --

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Ca ne peut pas venir de ta table, par contre tu fais :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $Email=""; 
    if(!empty($_POST["Email"])) $Email=$_POST["Email"];

    Et puis tu testes la variable $email

  8. #8
    Membre expérimenté Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Par défaut
    salut,

    je crois que le nombre des champs dans la table, n'est pas le meme dans ta requete d'ajout, il te manque quelque champs dans ta requete et aussi pour le desordre dans les champs.

    Bonne chance.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    Oui Billoum,

    j'ai vu ca j'ai corrigé mais pas plus de réaction quand je clique sur Submit !

    Par contre l'ordre des champs on s'en fiche non ?

    Le soucis c'est que lorsque j'essaie avec seulement 2 champs (nom et email) ca marche... Par contre quand je rajoute des champs ca commence à partir en vrille !

    J'suis désolé, j'ai pourtant l'impression qu'il s'agit d'un code simple

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 12
    Par défaut
    OK donc en fait cela viendrait du fait que dans mon test JS je n'ai pas mis le bon ordre pour mes variables !!!

    Un grand merci à vous pour votre aide, j'en ai profité pour parcourir ce site aujourd'hui et je sens que je vais en devenir une vraie adpete

    A très très bientôt !!!

    Camille

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Essaie en faisant:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    echo 'test: '.$email;
     
    if($email) {
       // on ajoute la fiche
       $table="ma_table";
       $query = "INSERT INTO $table(Nom,Prenom,Adresse,Ville,CP,Tel,Observations,Budget,Email,Asnieres,Courbevoie,Colombes,Bois,Garenne,Autres)";
       $query .= " VALUES('$Nom','$Prenom','$Adresse','$Ville','$CP','$Tel','$Observations','$Budget','$Email','$Asnieres','$Courbevoie','$Colombes','$Bois','$Garenne','$Autres')"; 
     
       echo $query.'<br>';   
     
       $result = mysql_query($query) or die(mysql_error());
       // et on prépare le message à afficher
       $message = "Merci Mr/Mme ".$Nom.", votre demande a bien été envoyée ! <br>Nous nous efforcerons de vous répondre au plus vite.";
     
    }

    Comme ça tu verras où ça bloque.
    [EDIT]: bien vu ça!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer mes données après fermeture du .exe?
    Par Hellgast dans le forum C++Builder
    Réponses: 9
    Dernier message: 13/04/2009, 13h02
  2. Impossible d'enregistrer des données!
    Par Amallric dans le forum Débuter
    Réponses: 3
    Dernier message: 23/08/2008, 23h25
  3. Réponses: 9
    Dernier message: 20/01/2008, 15h16
  4. Réponses: 6
    Dernier message: 06/06/2006, 11h46
  5. Réponses: 7
    Dernier message: 20/03/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo