TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
  Reply to this topicStart new topicStart Poll

> Petit Problème, Formulaire
dadou38
Ecrit le : Mercredi 27 Décembre 2006 à 11h07
Quote Post


Newbie
*

Groupe : Membre
Messages : 7


Bonjour à tous,
Voila j'essaie de faire un formulaire. Il s'affiche et tout mais lorsque je fais un test d'inscription, j'ai le droit à cette jolie phrase :

QUOTE
Erreur SQL !INTO membre VALUES("", "jean", "4b1944f850bb03beb39a87e5a55017f6")
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO membre VALUES("", "jean", "4b1944f850bb03beb39a87e5a55017f6


Je vous montre maintenant mon code

Code Entier :
CODE
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
   if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
       // on teste les deux mots de passe
       if ($_POST['pass'] != $_POST['pass_confirm']) {
           $erreur = 'Les 2 mots de passe sont différents.';
       }
       else {
           $base = mysql_connect ('localhost', 'sukdistan', '***');
           mysql_select_db ('sukdistan_wiki', $base);
           
           // on recherche si ce login est déjà utilisé par un autre membre
           $sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'"';
         
           $data = mysql_fetch_array($req);

           if ($data[0] == 0) {
             $sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';
               mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());


               session_start();
               $_SESSION['login'] = $_POST['login'];
               header('Location: membre.php');
               exit();
           }
           else {
               $erreur = 'Un membre possède déjà ce login.';
           }
       }
   }
   else {
       $erreur = 'Au moins un des champs est vide.';
   }
}
?>
<html>
<head>
<title>Inscription</title>
<meta name="generator" content="Namo WebEditor v5.0">
</head>

<body background="sub.bmp">
Devenir Manager :<br />
<form action="inscription.php" method="post">
   <b>Vous
   </b></form>
<form method="post" action="inscription.php">

   <p>Nom et Prénom(Pseudo) : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo stripslashes(htmlentities(trim($_POST['pass_confirm']))); ?>"><br />
E-mail :<input type="text" name="email" value="<?php if (isset($_POST['email'])) echo stripslashes(htmlentities(trim($_POST['email']))); ?>"><br />
Nationalité <select name="nationalite" size="1">
   <option value="Daoudienne">Daoudienne</option>
   <option value="Russlave">Russlave</option>
   <option value="Sukdistanaise">Sukdistanaise</option>
   </select><br />
   
   <b>Votre Club</b><br>

Nom de Club :<input type="text" name="nom_club" value="<?php if (isset($_POST['nom_club'])) echo stripslashes(htmlentities(trim($_POST['nom_club']))); ?>"><br />
Surnom de vos joueurs :<input type="text" name="surnom" value="<?php if (isset($_POST['surnom'])) echo stripslashes(htmlentities(trim($_POST['surnom']))); ?>"><br />
Ville de votre Club :<input type="text" name="ville" value="<?php if (isset($_POST['ville'])) echo stripslashes(htmlentities(trim($_POST['ville']))); ?>"><br />
Pays du Club : <select name="pays" size="1">
   <option value="Daoude">Daoude</option>
   <option value="Russlavie">Russlavie</option>
   <option value="Sukdistan">Sukdistan</option>
   </select><br />
Nom de votre Stade :<input type="text" name="stade" value="<?php if (isset($_POST['stade'])) echo stripslashes(htmlentities(trim($_POST['stade']))); ?>"><br />
Nom de votre club de Supporters :<input type="text" name="supporters" value="<?php if (isset($_POST['supporters'])) echo stripslashes(htmlentities(trim($_POST['supporters']))); ?>"><br />
<input type="hidden" name="Argent" value="100000">
<input type="hidden" name="Etoile" value="1">
<input type="hidden" name="Place" value="10000">
<input type="hidden" name="Prix" value="10"></br>
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>


Code Ciblé

CODE
$sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';
               mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());


En espérant que vous pourrez m'aider.
David
PMEmail Poster
Top
Manest
Ecrit le : Mercredi 27 Décembre 2006 à 13h59
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


Euh... tu es bien sûr de ton message d'erreur? Ce n'est pas logique du tout, ton $sql ne semble pas contenir le mot "INSERT" de la requete, mais il apparait pourtant clairement dans ton $sql = 'INSERT INTO membre VAL.....

Si tu fais un simple echo "$sql <br />" après cette ligne, il t'affiche quoi?


--------------------
PMEmail PosterUsers Website
Top
dadou38
Ecrit le : Mercredi 27 Décembre 2006 à 15h44
Quote Post


Newbie
*

Groupe : Membre
Messages : 7


Ben je ne peux plus accéder au formulaire lorsque je rajoute ce que tu m'as conseillé. J'ai une page blanche biggrin.gif
PMEmail Poster
Top
Manest
Ecrit le : Mercredi 27 Décembre 2006 à 16h02
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


CODE
if ($data[0] == 0) {
   $sql = 'INSERT INTO membre VALUES("", "'.addslashes($_POST['login']).'", "'.md5(addslashes($_POST['pass'])).'")';

   // ICI le code à ajouter pour débugguer
   echo "$sql <br />";

   mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());


   session_start();
   $_SESSION['login'] = $_POST['login'];
   header('Location: membre.php');
   exit();
}


Ça, ça ne marche pas??
Il n'y a aucune raison.

Pourrais tu mettre ta page en ligne qu'on jette un oeil.
Tu as écrit ce code toi même? (Surtout pour savoir si tu le comprends)


--------------------
PMEmail PosterUsers Website
Top
Haiken
Ecrit le : Mercredi 27 Décembre 2006 à 17h42
Quote Post


Ouf
*

Groupe : Membre
Messages : 360


commence par rajouter un error_reporting(E_ALL) au début de ton script, ça t'affichera plus d'erreurs


--------------------
PMEmail Poster
Top
dadou38
Ecrit le : Mercredi 27 Décembre 2006 à 18h39
Quote Post


Newbie
*

Groupe : Membre
Messages : 7


Ma page est disponible ici : http://sukdistan.keo.in/sub
Non, j'ai suivi un tutorial pour le code mais je l'ai adapté c'est tout biggrin.gif

Je vais essayer ce que vous m'avez dit

[EDIT] Voici ce que j'ai à présent :
QUOTE
INSERT INTO membre VALUES("", "david", "4b1944f850bb03beb39a87e5a55017f6")
Erreur SQL !INSERT INTO membre VALUES("", "david", "4b1944f850bb03beb39a87e5a55017f6")
Column count doesn't match value count at row 1
PMEmail Poster
Top
Manest
Ecrit le : Mercredi 27 Décembre 2006 à 18h52
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


Pourrais tu nous donner la structure de la table "membre"?

Apparemment tu essais d'y insérer un ID, un login et un mot de passe crypté. Si ta table contient plus de champs, la requête est fausse car on ne sais pas ou insérer les éléments. Il faut dans ce cas le préciser

INSERT INTO membre (id, login, passe) VALUES("", "david", "4b1944f850bb03beb39a87e5a55017f6");

En remplaçant id, login, passe par les noms exacte des champs de ta base.




Au passage, tu donnes ton mot de passe de connexion à la base de données dans ton script. Je te conseille d'éditer rapidement ton post et de le changer si tu ne veux pas avoir de soucis innocent.gif


--------------------
PMEmail PosterUsers Website
Top
dadou38
Ecrit le : Mercredi 27 Décembre 2006 à 19h09
Quote Post


Newbie
*

Groupe : Membre
Messages : 7


CODE
Nom Type Null autorisé Valeur par défaut Extra Sélection
id int(11) Non   auto_increment  
login text Non      
pass_md5 text Non      
email text Non      
nationalite text Non      
nom_club text Non      
surnom text Non      
ville text Non      
pays text Non      
stade text Non      
supporters text Non      
Argent double Non 0    
Etoile double Non 0    
Place double Non 0    
Prix double Non 0  


Voila la table membre. biggrin.gif
J'ai vu ça pour le pass j'ai donc changé laugh.gif Merci
PMEmail Poster
Top
Manest
Ecrit le : Mercredi 27 Décembre 2006 à 19h43
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


bon et bien c'est bien ce que je te disais.
Un
INSERT INTO membre (id, login, pass_md5) VALUES("", "david", "4b1944f850bb03beb39a87e5a55017f6");

devrait régler l'affaire.


--------------------
PMEmail PosterUsers Website
Top
dadou38
Ecrit le : Mercredi 27 Décembre 2006 à 20h24
Quote Post


Newbie
*

Groupe : Membre
Messages : 7


J'ai modifié mon code j'ai plus d'erreur mais la page d'inscription ne s'affiche pas c'est tout blanc. Est ce que cela peut venir de l'hebergeur ?
PMEmail Poster
Top
Manest
Ecrit le : Mercredi 27 Décembre 2006 à 20h33
Quote Post


Ouf
*

Groupe : Membre
Messages : 503


Je ne pense pas.

L'insertion en base de données à elle eu lieu ou pas?

Ça va être compliqué si tu ne comprends pas ce que tu manipules... Tu vas bloquer systématiquement.
Ça reste du super basique là, je m'inquiète un peu pour la suite unsure.gif


--------------------
PMEmail PosterUsers Website
Top
« Sujets + anciens | Programmer | Sujets + récents »

Reply to this topicStart new topicStart Poll