PHP - compte de membre à envoyer dans la BDD

Résolu
LelLex Messages postés 1628 Date d'inscription   Statut Membre Dernière intervention   -  
LelLex Messages postés 1628 Date d'inscription   Statut Membre Dernière intervention   -
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
 
fait plutôt ça :
$prenom = $_POST['prenom'];
mysql_query("INSERT INTO membres VALUES(' ', '$prenom')"); 
0
LelLex Messages postés 1628 Date d'inscription   Statut Membre Dernière intervention   112
 
Merci d'avoir répondu aussi vite !

Je post "résolu"

Bonne soirée, encore merci ..
0
Utilisateur anonyme
 
de rien, bonne soirée à toi ^^
0
easycomp Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   112
 
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
 
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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   30
 
$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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention   30
 
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   Statut Membre Dernière intervention   112
 
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