Php mysql

Bonjour,
voici mon code
index.php
<?php
?>
<form action="emis.php" method="post">
<input type="text" name="user_name" />
<input type="text" name="user_password" />
<input type="text" name="user_email"/>
<input type="submit" value="Enregister"/>
</form>
<?php
?>

emis.php
<?php
$result = @mysql_connect('localhost','root','');
mysql_select_db('site');
$sql_query ="INSERT INTO users (user_name,user_password,user_email) VALUES ($_POST['user_name'],$_POST['user_password'],$_POST['user_email'])";
$result = mysql_query($sql_query);
if(!$result)
echo "kham";

?>

J'ai toujours l'erreur

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EasyPHP 2.0b1\www\script\emis.php on line 4
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. Salut c'est un peu con ce que je vais dire mais essaie d'ajouter des espaces après tes virgules ;

    $sql_query ="INSERT INTO users (user_name, user_password, user_email) VALUES ($_POST['user_name'], $_POST['user_password'], $_POST['user_email'])"; 


    Sinon je ne vois pas d'où peut venir le problème... Les quotes sont bien ouvertes et bien fermées, pas de mélanges...

    Pour la connexion je te propose ce code :

    mysql_connect($host,$user,$passwd)
    or die("erreur de connexion au serveur $host");
    


    Que tu peux retrouver en détail là : http://www.commentcamarche.net/contents/php/phpbdd.php3. Et vérifie en affichant dans des echo, si tu transmets bien les bonnes valeurs à ta page emis.php.

    Penses à fermer ta base de données aussi =>

     // Deconnexion de la base de donnees
    mysql_close();


    1. Contributeur
      salut!

      essai avec ça!

      <?php
      $result = @mysql_connect('localhost','root','');
      mysql_select_db('site');
      $sql_query ="INSERT INTO users (user_name,user_password,user_email) VALUES ('$_POST['user_name']','$_POST['user_password']','$_POST['user_email']')";
      $result = mysql_query($sql_query);
      if(!$result)
      echo "kham";
      


      ?>
      1. Contributeur
        OK!

        alors essai ceci:

        <?php
        $name=$_POST['user_name'];
        $pass=$_POST['user_password'];
        $mail=$_POST['user_email'];

        $result = @mysql_connect('localhost','root','');
        mysql_select_db('site');
        $sql_query ="INSERT INTO users (user_name,user_password,user_email) VALUES ('$name,'$pass','$mail')";
        $result = mysql_query($sql_query);
        if(!$result)
        echo "kham";

        ?>
        1. je m'excuse mais ça régle pas le probléme
          1. Est-ce que tu as relu mon post ? car j'y ai rajouté quelques informations bonne à savoir =)
        2. bonjour

          <?php
          $name=$_POST['user_name'];
          $pass=$_POST['user_password'];
          $mail=$_POST['user_email'];

          $result = @mysql_connect('localhost','root','');
          mysql_select_db('site');
          // manque une quote là ------------------------------------------------------------------------------------------>
          $sql_query ="INSERT INTO users (user_name,user_password,user_email) VALUES ('$name','$pass','$mail')";
          $result = mysql_query($sql_query);
          if(!$result)
          echo "kham";

          ?>
          autre chose à vérifier :
          ces noms : user_name,user_password,user_email , sont-ils ceux des colonnes de la table ?

          1. si je mets des chaines de caractéres par exemple
            $sql_query ="INSERT INTO users (user_name,user_password,user_email) VALUES ('wi','wi','wi')";

            ça marche mais j'ai éssayé la solution de giheller mais ça marche pas
            1. je te propose de mettre en début du programme et de nous donner le résultat
              echo "<pre>";print_r($_POST);echo "</pre>";

              pour vérifier que tu reçois bien quelque chose.
          2. Essaie plutôt ça:
            <?php
            
            mysql_connect('localhost','root','');
            mysql_select_db('site');
            $sql_query = mysql_query("INSERT INTO users (user_name,user_password,user_email) VALUES (".$_POST['user_name'].",".$_POST['user_password'].",".$_POST['user_email'].")");
            $result = mysql_fetch_array($sql_query);
            if(!$result)
            {
                  echo "kham";
            }
            mysql_close();
            
            ?> 

            Pour faire une requête sql avec mysql, il faut utiliser la fonction "mysql_query".
            Pour mettre les résultats dans un tableau, il faut utiliser "mysql_fetch_array" (il en existe d'autres mais peu importe).
            Quand tu ouvres une connexion à ta base de données, n'oublies pas de la refermer avec la fonction "mysql_close();".
            Il me semble qu'il n'y a pas d'autre erreur.

            J'espère t'avoir aider.
            édition : une petite erreur dans le code, je viens de la corriger.