JeuWeb - Crée ton jeu par navigateur
[Résolu] Formulaire espace membre - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Formulaire espace membre (/showthread.php?tid=3709)

Pages : 1 2


[Résolu] Formulaire espace membre - Cloudi - 21-02-2009

Bonjour Smile
J'ai essayé de voir le mécanisme qui permet de gagner des choses en cliquant sur une bannière, mais j'ai cru comprendre que c'était impossible à réaliser si y avait pas déjà un membre.

Donc pour créer l'espace membre, je me suis aidé du tutoriel proposé dans le wiki. Le problème, c'est que en recopiant mot pour mot et en créant une base de donnée appelée JEUWEB avec une table membres bien comme c'est fait dans le tuto, je tombe toujours sur un 404 error.
Dans ma table, j'ai mis les champs : id, pseudo, pass et mail.

Voilà le code :

Code :
<?php
//on initialise les variables
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];

mysql_connect("localhost", "root", "");
mysql_select_db("JEUWEB");

// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO membres VALUES('', ".$pseudo.", ".$pass.", '" .md5(mysql_escape_string($_POST['pass']))."')");

mysql_close();

?>


<p>Inscription à mon jeu:</p>
<form id="form1" name="form1" method="post" action="inscription.php">
  <label>Nom d'utilisateur
  <input type="text" name="login" id="login" />
  </label>
  <br />
  <label>Mot de passe
  <input type="text" name="pass" id="pass" />
  </label>
  <br />
  <label>Adresse E-mail
  <input type="text" name="mail" id="mail" />
  </label>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Envoyer" />
    </label>
    <label>
    <input type="reset" name="button2" id="button2" value="Réinitialiser" />
    </label>
  </p>
</form>
<p>&nbsp; </p>

Sur ce code là, j'ai fait les adaptations nécessaires (avec la connexion à mysql), mais sinon j'en avais créée une que j'ai essayé de manipuler comme j'ai pu mais sans résultat, j'ai donc juste recopié ce code (y avait même des erreurs avec les . et les " en trop) et essayé de faire comme proposé sur le tutoriel.

En bref j'arrive pas à avoir d'entrées dans la base de donnée alors je pense même pas encore à me connecter.

Voilà, j'attend vos réponses avec impatience Smile

Cloudi


RE: Formulaire espace membre - Clover18 - 21-02-2009

une erreur 404...?

par curiosité tu as bien appelé ton fichier "inscription.php"?


RE: Formulaire espace membre - Cloudi - 21-02-2009

Oh?
Oh!
Oh...

Effet nouveau membre en détresse faisant attention à tout raté :/
Ca fait un problème de résolu n'empêche. Mais j'ai toujours rien dans ma base de donnée...

J'ai jugé utile de dire que $pass = $_POST['pass'], et je suis passé de


mysql_query("INSERT INTO membres VALUES('', ".$pseudo.", ".$pass.", '" .md5(mysql_escape_string($_POST['pass']))."')");

à

mysql_query("INSERT INTO membres VALUES('', ".$pseudo.", '".$pass."', '" .md5(mysql_escape_string($_POST['pass']))."', '".$mail."')");

Ca me semblait plus logique. Pas d'erreur d'écriture dans le code en tout cas, la page s'affiche toujours aussi bien...
Mais toujours rien dans la bdd


RE: Formulaire espace membre - Juka - 21-02-2009

Bonsoir,

est-ce normal que la variable pseudo ne soit entouré que de guillemet et pas d'apostrophes ? ^^


RE: Formulaire espace membre - titfiance - 21-02-2009

Plusieurs erreurs.

1. D'abord : tu n'appelle aucun champs donc c'est logique il faut préciser ou tu met quoi. Le serveur le devine pas.

2. Tu ne vérifies même pas les injections SQL. N'importe qui qui si connait un peu peu traficoter tt ca et se connecter avec n'importe quel pseudo.

3. Comme le dit Juka. il manque des apostrophes quelque part autour du pseudo. donc forcément. Après correction de tout cela tu devrait obtenir :
Code :
<?php
//on initialise les variables
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];
$pass = $_POST['pass'];
$pass_crypte = md5($pass);

// Connection à la BDD
mysql_connect("localhost", "root", "");
mysql_select_db("JEUWEB");

// On ajoute une entrée avec mysql_query
$preparation_ajout = sprintf("INSERT INTO `tatable` (`Pseudo`,`password`,`Mail`) VALUEs ('%s','%s','%s')",
                mysql_real_escape_string($pseudo),
                mysql_real_escape_string($pass_crypte),
                mysql_real_escape_string($mail));
$ajout   = @mysql_query($preparation_ajout);

mysql_close();

?>


<p>Inscription à mon jeu:</p>
<form id="form1" name="form1" method="post" action="inscription.php">
  <label>Nom d'utilisateur
  <input type="text" name="login" id="login" />
  </label>
  <br />
  <label>Mot de passe
  <input type="text" name="pass" id="pass" />
  </label>
  <br />
  <label>Adresse E-mail
  <input type="text" name="mail" id="mail" />
  </label>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Envoyer" />
    </label>
    <label>
    <input type="reset" name="button2" id="button2" value="Réinitialiser" />
    </label>
  </p>
</form>
<p>&nbsp; </p>

Plutot que de copier collé analyse un peu tout ca et refait le quand tu aura compris!

Tu remplace les quelques renseignements incorrecte dans ma ligne d'insertion et tu test!

C'est le script que j'utilise moi personnellement.


RE: Formulaire espace membre - Cloudi - 21-02-2009

Ouaaais, ça marche!

Eh bah ça alors... je suis passé par quelques manipulations (notamment sur la ligne <input type="text" name="login" id="login" /> qui m'a value quelques incompréhensions), j'ai bien analysé les choses, et j'ai compris le principe (ô joie). Cependant, y a quelques choses qui me turlupinent dans ce nouveau bout de code mysql_query :
-Qu'est ce qu'on désigne par '%s'? Les variables correspondantes?
-Pourquoi ne pas avoir directement mis
mysql_query("INSERT INTO membres (`pseudo`,`pass`,`mail`) VALUES ('%s','%s','%s')",
mysql_real_escape_string($pseudo),
mysql_real_escape_string($pass_crypte),
mysql_real_escape_string($mail));
?

Voilà, sinon je ne sais pas à quoi sert md5

Merci pour toutes les réponses, je vais pouvoir attaquer autre chose Smile


RE: Formulaire espace membre - titfiance - 21-02-2009

Alors d'abord le plus simple :

la fonction md5 sert a crypter le mot de passe et seuls ceux qui connaissent l'algorithme de la fonction vont pouvoir le déchiffrer (en gros 0.00000001% de tes navigateurs on peu même dire 0 car le PHP est développé par une société amériquaine). Pour le récupérer lors de la connexion n'oublie pas de crypter la variable $_POST['pass'] pour faire ta requête.

Pour le %s en faite le programme renvoi a la variable correspondante. Si le %s est le premier ça sera pour la première variable, si c'est le seconde ça sera pour la seconde variable, etc.

si tu enlève `membres` il faut alors l'enlever pour tous les champs de ta base de données et au niveau du résultat ... je ne suis pas sur que ça marche réellement?

Si tu ne connais pas le principe de fonction d base je n'imagine pas avec les grosses fonctions!

BONNE CONTINUATION! Ce fut un plaisir!


RE: Formulaire espace membre - Anthor - 22-02-2009

Pensez quand même un jour à vérifier que les données soient envoyés...


RE: Formulaire espace membre - titfiance - 22-02-2009

Il y a bien une méthode pour le craquer mais c'est des heures et des heures de travail et d'étude sur la fonction.

C'est clair que la méthode des collisions est limite plus pratique et qu'il est beaucoup mieux de le crypté à deux ou trois reprise avec les quelques fonctions qu'il existe pour ça. C'est plus dur à craqué. Mais avec en plus la vérifications des injections SQL la tache devient alors très dure.


RE: Formulaire espace membre - Cloudi - 22-02-2009

Merci à tous pour vos réponses (et votre gentillesse, cela va de soi) Smile

J'ai réussi à créer la connexion et la déconnexion (au bout d'un certain temps mais quelle satisfaction d'y arriver seul... même si j'y serais pas arrivé sans le coup de pouce des précédents posts)

Encore merci et euh... vive vous?