Probeme $_SESSION['login']

Résolu
Bonjour,
Je bloque sur un truc qui consiste a envoyé des données a une table.
L'utilisateur se connecte, il est donc enregistrer sous $_SESSION['login']. Il envoi ensuite une réponse un a jeu à partir d'un champs.

voici le code php:
if (!isset($_SESSION['login'])) { 
  header ('Location: index.php'); 
  exit();  
}  
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['valider']) && $_POST['valider'] == 'Valider') { 
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
  if ((isset($_POST['reponse']) && !empty($_POST['reponse']))) {  
        $base = mysql_connect ('xxxx', 'xxxx', 'xxxx'); 
      mysql_select_db ('xxxx', $base); 
      
      // on recherche si le membre a déja joué
        $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_SESSION['login']).'"'; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        $data = mysql_fetch_array($req); 
       
       if ($data[0] == 0) { 
            $sql= '"INSERT INTO jeu1 ('login','reponse') VALUES('"".$_SESSION['login'].""','$_POST['reponse']')"';  
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 

            } 
        else { 
            $erreur = 'Vous avez déja joué.'; 
         }
      
      }
   }     
  else { 
      $erreur = 'Au moins un des champs est vide.'; 


et le code html:
<form action="membre.php" method="post">
Réponse : <input type="text" name="reponse"</div>
<input type="submit" name="valider" value="Valider">
</form>

J'ai toujours une page blanche avec une erreur:
Parse error: syntax error, unexpected T_STRING in /home/u302086084/public_html/membre.php on line 20

La ligne 20 correspond à $sql= '"INSERT INTO jeu1 ('login','reponse') VALUES('"".$_SESSION['login'].""','$_POST['reponse']')"';

Merci d'avance de votre aide !

2 réponses

  1. Merci de ta réponse aussi rapide sa marche, sa affiche la page. Mais la j'comprend pas il n'y a rien qui s'affiche dans la table de la bdd "jeu1".
    ps: j'ai bien remplacer les xxxx pour la co a la bdd par le login pass ect...
    1. Contributeur
      Fais un echo de ta requête, tu peux essayer de l'exécuter dans phpmyadmin pour voir ce que ça donne.
    2. quand j'met $sql= "INSERT INTO jeu1 (login,reponse) VALUES('$_SESSION[login]','$_POST[reponse]')";
      dans sql dans la table de la bdd
      sa m'affiche $_SESSION[login] dans login et $_POST[reponse]' dans reponse
    3. Contributeur
      ?

      rajoute un echo devant $sql = .....

      dans ta page, ça va t'afficher ta requête, tu la récupères et tu la colles dans phpmyadmin pour voir ce que ça fait.
    4. jcomprend pas :s (dsl jsuis pas trop bon en php)
    5. Contributeur
      la ligne :

      $sql= "INSERT INTO jeu1 (login,reponse) VALUES('$_SESSION[login]','$_POST[reponse]')";  


      tu fais :

      echo $sql= "INSERT INTO jeu1 (login,reponse) VALUES('$_SESSION[login]','$_POST[reponse]')";  


      dans ta page, ça t'affichera ta requête, déjà, affiche là ici, peut être que je verrai le soucis directement.

      Tu as accès à phpmyadmin ?
      Si c'est le cas, tu exécutes la requête et tu vois ce que ça donne.
  2. Contributeur
    Salut,

    tu te mélanges les pinceaux avec les quotes simples et les doubles quotes.

    comme ça, ça sera mieux :
    $sql= "INSERT INTO jeu1 (login,reponse) VALUES('$_SESSION[login]','$_POST[reponse]')";