PHP - compte de membre à envoyer dans la BDD

Résolu/Fermé
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 - 7 juin 2009 à 00:21
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 - 7 juin 2009 à 14:09
Bonjour à tout le monde,


J'ai créé un Formulaire d'inscription.
Seulement j'ai un problème, je ne sais pas comment écrire les variables pour qu'elles soient envoyées dans la BDD (Base De Donnée)

Donc pour vous aidez à voire ce que j'ai fais !


1 ) Dans mon formulaire, il y a pleins de "input"
On va prendre celui pour le Prénom du nouveau membre par exemple.
La valeur est : name="prenom"

2) Quand il clique sur "Valider l'incription"
Je récupère les valeurs dans la deuxième page.
J'ai donc son Prénom, ça fait : $_POST['prenom']

3) Voila c'est ici que je bloque.
Pour envoyé dans la BDD, j'utilise la requête suivante :

<?php
mysql_connect("localhost", "USERNAME", "PASSWORD");
mysql_select_db("membres");

// On ajoute une entree avec mysql_query
mysql_query("INSERT INTO membres VALUES(' ', '$_POST['prenom']')");

mysql_close();
?>




Voila, il me semble que c'est faut :
mysql_query("INSERT INTO membres VALUES(' ', '$_POST['prenom']')");



Si quelqu'un peut me renseigner !
Merci d'avance
Lucky =D
A voir également:

18 réponses

Utilisateur anonyme
7 juin 2009 à 00:36
fait plutôt ça :
$prenom = $_POST['prenom'];
mysql_query("INSERT INTO membres VALUES(' ', '$prenom')"); 
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 00:41
Merci d'avoir répondu aussi vite !

Je post "résolu"

Bonne soirée, encore merci ..
0
Utilisateur anonyme
7 juin 2009 à 00:51
de rien, bonne soirée à toi ^^
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 00:52
Salut,
Pense a utiliser un mysql_real_escape_string() pour éviter les injections SQL ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 01:03
Oui j'ai vu cette requête !

Mais sincèrement j'ai rien compris, car elle n'est pas seul !

Donc =S



Merci de vos réponses, et de votre participation !
0
Utilisateur anonyme
7 juin 2009 à 01:28
enfait cela permet d'éviter qu'on puisse se connecter à ton site via une condition SQL, donc tu fait quelque chose comme ça :



$pseudo = mysql_real_escape_string($_POST['pseudo']);
mysql_query("INSERT INTO membres VALUES(' ', '$prenom')"); 


et lors de la connexion, tu refait un mysql_real_escape_string() à la variable du pseudo.

EDIT> pense aussi à md5() pour le mot de passe, c'est toujours utile en cas d'une visite malveillante dans ta bdd...
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 01:48
Concrètement je ne vois pas à quoi sa sert, enfin si c'est utilise et même conseiller, je vais m'y tenir !

Pour le mot de passe c'est pire, donc je pense que je vais le laisser pour plus tard ! =S

Merci de vos conseils et de votre aides !!
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 03:52
C'est une fonction de PHP qui te permet d'empêcher une chaine indésirable d'entrer en collision avec ta requete.
En gros par exemple si l'utilisateur entre ", ta requête deviendra donc invalide puisqu'elle n'ira que jusqu'a mysql_query("INSERT INTO membres VALUES(' ', ' ... Pour éviter cela, la fonction mysql_real_escape_string echappe les caractères pourtant mettre du bordel dans ton code pour qu'ils soient reconnus uniquement comme du texte et non pas comme une instruction.
Plus d'infos : https://www.php.net/mysql_real_escape_string
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 04:00
Ah et j'oubliais

si c'est utilise et même conseiller, je vais m'y tenir !
Ce n'est pas conseillé mais obligatoire :) Si tu ne le fais pas c'est un peu comme donner les clés de chez toi a ton voisin et partir pendant un mois en vacances si tu vois ce que je veux dire...

pour md5, ca fonctionne de la meme manière, il va attendre en parametre une chaine de caractere et va retourner la chaine encodée et c'est celle-ci que tu dois stocker...

exemple:

$password = md5($_POST['passwd']);

Le md5 n'est pas décodable (sauf en cas d'attaque par dictionnaire (d'où l'utilité d'avoir un mot de passe contenant des caracteres speciaux des chiffres des lettres minuscules et majuscules) ou par collision (chose presque impossible... quelques cas de collisions ont été constatés depuis le début de MD5 donc depuis plus de 15ans)).
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 12:00
Merci de ta précieuse aide !

En revanche, est-ce un erreur de ta part que "password" devienne "passwd" ou est-ce normal pour avoir une autre variable ?

CODE :

$password = md5($_POST['passwd']);



Merci beaucoup
Lucky =D
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 12:02
$password = md5($_POST['passwd']);

$password et $_POST['passwd'] sont deux variables différentes, $password contient le hash md5 de $_POST['passwd'] mais bon le nom n'a que peu d'importance c'était pour l'exemple.

0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 12:25
D'accord, mais c'est laquelle des deux variables que j'envoie dans ma BDD ?
Si j'ai bien compris ;


Sur ma page 1 :

<input type="password" name="pass1" />


Sur ma page 2 :

<?php
mysql_connect("localhost", "USERNAME", "PASSWORD");
mysql_select_db("membres");


$prenom = mysql_real_escape_string($_POST['prenom']);
$pass2 = md5($_POST['pass1']);

// On ajoute une entree avec mysql_query
mysql_query("INSERT INTO membres VALUES(' ', '$prenom', '$pass2')");

mysql_close();
?>



Est-ce cela ?
Encore merci !
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 12:28
Tu as tout compris :)
Tu vois c'était pas si compliqué au final ^^
C'est bien ta variable contenant la valeur hashée qui doit être dans la DB
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 12:49
Oui ; enfin je viens de commencer il y a deux jours, j'apprends vite mais certes !
Merci beaucoup ...

D'ailleurs j'aurais une question sur un autre problème, ( et après promis j'arrête avec mes questions ! ).


- Sur ma PAGE 1 :

$daydate = date ('d/m/y')


- Sur ma PAGE 2 :

Je voudrais récupérer cette variable "$daydate" ;
Seulement je ne sais pas, ou plus, comment l'on fait pour la récupérer !

Avec un Formulaire j'aurais pris : $_POST['daydate'] si la valeur : name="daydate"

Mais dans mon cas je ne sais pas ;
Car passer avec l'URL, je trouve que ce n'est pas convainquant !


Merci encore ;
Faut que je pense à arrêter de dire merci, çà fait déjà deux dans le même post !
=D
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 12:53
Ah bah des mercis ça fait quand même toujours plaisir ne t'en prives pas :p

Si tu ne veux pas les passer dans l'adresse, utilise des variables de session par exemple.
pense bien à mettre un session_start(); au début de tes fichiers php

une variable de session s'écrit, pour rappel:

$_SESSION['maVariable']
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 13:15
MERCI INFINIMENT !!

J'aurais une dernière question, mais j'aimerais autant arrêter de vous embêter.

En revanche puis-je avoir votre adresse mail, wlm, etc.
Car si jamais j'ai un petit problème je pourrais avoir une réponse de qualité dans un temps très appréciable.

Merci encore "easycomp"
Lucky =D
0
easycomp Messages postés 86 Date d'inscription samedi 6 juin 2009 Statut Membre Dernière intervention 4 juillet 2009 30
7 juin 2009 à 13:17
Rien de personnel mais je ne donne pas mon adresse mail ^^
En cas tu peux envoyer un mp si tu as un soucis je pourrais essayer de t'aider (dans la limite de mes capacités bien sûr).
Et puis si je réponds c'est que ça ne m'embête pas...
:)
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 juin 2009 à 14:09
C'est gentil de votre part !

J'ai fait un Post pour le problème dont je vous parlai :
- http://www.commentcamarche.net/forum/affich 12770552 php creation compte membre?#2

Merci d'avance..
0