Problème intégration formulaire --> table SQL

Résolu
LeCodeurInvisible Messages postés 8 Statut Membre -  
kelux Messages postés 3065 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voilà depuis quelque heures j'ai un petit problème, j'aimerais faire un système de concours, genre la personne rentre son nom est un chiffre au hasard, quand la personne clique sur validée les données vont dans la table SQL.

J'ai différant problème.

Problème 1 :

Tout marche sauf une fois les coordoné rentré genre :

Nom Yve
Code : 542

Sur la BDD

Nom : (il y a rien)
Code (il y a rien)

Problème 2

Parse error: syntax error, unexpected '$identity' (T_VARIABLE) in ... on line 18

________________________
Voici le code

<?php

  try {
     $user = 'xxxxxx;
     $pass = 'xxxxxx';
     $dbname = xxxxxx';
     $host = 'xxxxxx';
     //---
      $bdd = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    }
      catch (Exception $e) {
         die('Erreur : ' . $e->getMessage());
    }

      $identity=$_POST['identity'];
      $code=$_POST['code'];    

     $bdd->exe("INSERT INTO concours VALUES('', '$identity', '$code')");
      ?>

<html>
  <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

  </head>

        <body>

            <form action="particpant.php" method="post"> 
              Nom complet:
             <input type="text" name="identity"/><br/> 
              Code :
             <input te="text" name="code"/><br/> 
              
              <input type="submit"value="valider"/> 
            </form> 

        </body>
</html>


Bref j'aimerais de l'aide ;)

Cordialement.

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

6 réponses

  1. Utilisateur anonyme
     
    Bonjour

    Tu pourrais expliquer un peu mieux ta situation ? Car si tu as une "Parse error", ton script n'est pas exécuté du tout et tu ne risques pas d'insérer quoi que ce soit dans ta base.

    D'autre part, avec ce code, tu as sûrement une erreur avant la ligne 18 : tu oublies la moitié des apostrophes autour des chaînes ! Alors soit le code que tu donnes n'est pas le bon, soit le message d'erreur n'est pas le bon.
    Si tu veux de bonnes réponses, donne de bons éléments.
    1
    1. LeCodeurInvisible Messages postés 8 Statut Membre
       
      Bonjour,
      Déjà merci pour votre rapidité !

      On va expliquer mon problème, enfin le premier.
      ERREUR : Parse error: syntax error, unexpected '$identity' (T_VARIABLE) in ..... on line 19
       
      
      **BDD HIDE**
      
           $bdd = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
          }
            catch (Exception $e) {
               die('Erreur : ' . $e->getMessage());
          }
      
            $identity=$_POST['identity'];
            $code=$_POST['code'];    
      
      
            $bdd->exec('INSERT INTO concours(identity, code) VALUES('$identity', '$code')');
      
      echo 'Le jeu a bien été ajouté !';
      ?>
      ?>
      
      <html>
        <head>
      
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      
        </head>
      
              <body>
      
                  <form action="particpant.php" method="post"> 
                    Nom complet:
                   <input type="text" name="identity"/><br/> 
                    Code :
                   <input te="text" name="code"/><br/> 
                    
                    <input type="submit"value="valider"/> 
                  </form> 
      
              </body>
      </html>
      


      Voilà cela fais déjà 3 heures, que je bloque dessus..
      0
  2. Utilisateur anonyme
     
    Tiens, effectivement, le code n'était pas le bon. Et il fallait qu'on devine l'erreur...
    Si tu bloques depuis 3 heures sur cette erreur, tu devrais relire l'écriture des chaînes en PHP : ça fait partie des notions de base.
    Dans ta requête, si tu veux utiliser des variables directement (ce qui est une grave erreur avec PDO, mais qui n'est pas interdit), il faut que tu entoures ta chaîne de " et non pas de ' :
    "INSERT INTO concours(identity, code) VALUES('$identity', '$code')"
    1
    1. LeCodeurInvisible Messages postés 8 Statut Membre
       
      Bonjour, merci du code j'ai plus d'erreur.

      Maintenant les données ne s'incrivent pas sur la table SQL..

      Je vois pas ou et le problème ?
      0
  3. Utilisateur anonyme
     
    Si tu ne vois pas d'où vient le problème, essaye de le trouver un faisant un
    echo $identity,' ',$code;
    juste avant ta requête, pour voir si tu as bien les valeurs attendues.
    1
    1. LeCodeurInvisible Messages postés 8 Statut Membre
       
      Bon, regarder, quand je rentre les identifiants :
      Nom:
      Code a trouver:

       <body>
      
                  <form action="particpant.php" method="post"> 
                    Nom complet:
                    <?echo $identity,' ',$code;?> 
                   <input type="text" name="identity"/><br/> 
                    Code :
                   <input te="text" name="code"/><br/> 
                    
                    <input type="submit"  value="valider"/> 
                  </form> 
      
              </body>
      

      Voilà le formulaire, après je clique sur valider, aucune table se créer sur ma bdd..
      0
  4. Utilisateur anonyme
     
    1 - la balise pour le PHP, c'est <?php pas <? tout court. (En fait <? est peut-être autorisé par la configuration de ton serveur, mais c'est fortement déconseillé)
    2 - Je t'avais dit de mettre le echo juste avant la requête. Pourquoi tu l'as mis là ? Tu ne sais pas ce que c'est qu'une requête ? Est-ce que tu comprends à quoi sert ce echo ?
    3 - Il n'y a aucune raison qu'une table se crée dans ta bdd. ton code est fait pour insérer des données, pas pour créer des tables.
    0
    1. LeCodeurInvisible Messages postés 8 Statut Membre
       
      Oui, pardon je me suis mal expliquer..

      L'écho je sais pas pourquoi il est là..

      Je vous envois des screens :
      Je veux quand il clique sur validé les informations se mettent là.
      http://www.noelshack.com/2015-46-1447458252-1447458232.png

      Sinon j'ai un participant.php les données sont bien affichier
      http://www.noelshack.com/2015-46-1447458329-1447458273.png
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Tu as posé une question sur une erreur de syntaxe au départ, j'y ai répondu.
    Après quelques échanges, il est clair que tu n'as aucune notion de programmation. Le but du forum n'est pas de te donner une formation, ni de faire ton travail à ta place. Je suis désolé de ne pas pouvoir t'aider davantage pour ma part.
    Tu peux poser une nouvelle question, tu auras peut-être plus de chance avec quelqu'un d'autre.
    0
    1. LeCodeurInvisible Messages postés 8 Statut Membre
       
      Merci quand même!
      Bonne Soirée.
      0
  7. kelux Messages postés 3065 Date d'inscription   Statut Contributeur Dernière intervention   434
     
    <form action="particpant.php" method="post">

    Faute de frappe ?
    Participant.php

    En espérant qu'elle existe ... puisque c'est cette page qui récupère les variables en POST ...
    0
    1. LeCodeurInvisible Messages postés 8 Statut Membre
       
      Noon, vous inquiéter pas ;)
      Il y a rien dedans.
      0
    2. kelux Messages postés 3065 Date d'inscription   Statut Contributeur Dernière intervention   434
       
      Et cela ne vous pose pas de souci ?
      Avez vous bien saisi la méthode POST ?

      --> c'est cette page qui récupère les variables en POST
      Donc Mettez votre code d'insertion en DB dans cette page ...
      0