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

Résolu
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. Contributeur
    <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 ...
    1. Noon, vous inquiéter pas ;)
      Il y a rien dedans.
    2. Contributeur
      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 ...
  2. 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.
    1. Merci quand même!
      Bonne Soirée.
  3. 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.
    1. 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
  4. 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. 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..
  5. 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. 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 ?
  6. 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. 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..