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. 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.
    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. 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. 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. 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. 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. 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();