8791 sujets

Développement web côté serveur, CMS

Bonjour.

Voila, j'ai 3 questions, à propos de l'inscription. Je vais essayer de les détailler le plus possible.

1) Alors, j'aimerais faire une inscription "classique". C'est à dire, on remplis un formulaire avec les champs:
-Pseudo
-Mdp
-Confirm Mdp
-Adresse email
-Confirm adresse email
J'ai bien fait le formulaire. Le problème, c'est que j'aimerais que ça envoit un mail, avec un lien de confirmation. Je suppose qu'il faut utiliser "mail()" pour envoyer un mail, mais je ne sais pas du tout comment faire le lien d'activation Smiley ohwell D'ailleurs, je sais pas quand est ce qu'il faut rentrer les données dans la BDD (quand le monsieur a remplis le formulaire et a validé, ou quand il a validé l'inscription via le lien ?). J'ai pas trouvé de tuto niveau inscription (j'suis nul en recherche, vous m'excuserez Smiley langue )

2) J'aimerais éviter les robots sur mon site. Donc, dans le formulaire, j'ai inséré en même temps, un champ où il faut recopier les 6 lettres d'une image. Je suppose que pour faire ça, on met une image de fond, et par dessus, on insère une fonction qui fait que ça met aléatoirement des lettres. Mais je connais pas cette fonction, et comment la récupérer ? (Pour voir si le monsieur a bien recopier les lettres exactement). Et aussi, si on pouvait faire en sorte que l'image n'est que des lettres en minuscule (pas de chiffre, donc).

3) J'ai lu un peu partout, qu'il fallait crypter les mdp. Alors, j'aimerais savoir comment crypter le mdp du monsieur sur la BDD. Car si je le crypte, la BDD va pas savoir que c'est un mdp crypté ? J'ai pas trouvé de fonction pour que la BDD "comprenne". (Je sais la fonction "crypter" mais je vois pas comment faire en sorte que ça crypte sur la BDD, sans pour autant que la BDD ne comprenne pas que ce soit un mdp).

Merci, si vous avez besoin de réponse plus précise, et bien, demandez moi Smiley cligne

Sbizz.
Merci pour ce lien Smiley cligne

Je peux déjà plus comprendre le fonctionnement de l'inscription. En revanche, je me pose des questions ! Bien que ce tuto soit bien fait, il y a certaines choses qui ne sont pas précisées, et étant nouveau en php, je ne comprends pas tout.

Donc, suite à cette page, j'aurais quelques questions:
- la fonction "empty" sert à dire si la variable est NULL ou pas, c'est bien ça ?
- à quoi sert la fonction "header" ? J'ai un peu de mal à la comprendre Smiley ohwell Elle renvoit sur une page ?
- à quoi sert la fonction "trim" ?
- et pour finir, c'est quoi la fonction "mysql_free_result" ?

Merci bien Smiley smile

Sinon, il reste toujours le lien de confirmation Smiley cligne
salut,

je veux bien repondre a tes dernieres interrogations mais je te conseille ( si tu veux progresser c'est le mieux ) de ne pas hesiter a taper le nom de la fonction suivi de php dans google.

et hop de lire la page du manuel. toutes ces pages sont toujours bien placer dans google.

sinon tu as bien devinez empty verifie bien si une variable est nulle ou pas. empty

la fonction header sert bien souvent a faire une redirection. c'est le cas quand tu vois ecris header("Location:ici_y_a_une_url");

maintenant header sert a redefinir les entetes de la page. donc les informations qui vont permettre au navigateur de savoir quoi faire. donc les possibilitées de header vont bien au dela de la simple redirection/

trim permet de prendre une chaine de caractére et de supprimer au debut et à la fin de celle-ci soit le caractere ' ' (espace) par defaut soit un caractere qu'on precise dans un second parametre.

mysql_free_result permet de dire libere de la memoire vive et ne te souviens plus du result de requete base de données que je viens de faire.

ça a un effet que je n'ai pas encore vraiment quantifié.

sinon pour tes autres questions. tous en sachant que je ne suis pas non plus un super pro...

1) tu fais l'insertion dans la base de données aprés que la personne est validé son formulaire et dans la base y a un champ qui dit invalide au debut . quand il va sur la page du lien a activé cela va updaté le champ a valide.

2) hum j'avais déjà vu mais j'ai un trou....pour du aléatoire voir du coté des fonctions rand() ou srand() . tu dois pouvoir tiré un chiffre aléatoire. et tu peux avoir une table de correspondance avec des caractéres alphabétique uniquement.

3) la base de données tu n'as vraiment pas besoin de lui dire si c'est crypté ou pas. oublie le type password dans mysql. crypte avec un algo.

et ensuite soit cet algo est reversible auquel cas tu decryptes a la lecture

soit si c'est irreversible genre un md5. tu testes le contenu de ton champ crypté avec ce que viens de rentrer l'utilisateur crypté de la même façon.

avec un xor avec une clé par exemple pour que quelqu'un qui connait bien le comportement du md5 ne reconnaisse pas un mdp trop "classique".
Modifié par CPascal (22 Dec 2007 - 21:22)
mitnick: C'est de la que je viens, mais je n'ai rien trouvé ! Sauf un tuto fait par quelqu'un d'autre (que Mat), mais ça n'était pas trop ce que je voulais Smiley cligne

CPascal: Merci pour le conseil, effectivement, ce site me sera fort utile !

La fonction header est pas mal alors. Merci, je me coucherais moins con ce soir ! Smiley biggol

Ah ouai, donc si je fais par exemple trim(Sbizz, z) ça enlève tous les "z" de "Sbizz", donc "Sbi" ?

1) Ah effectivement, je n'y avais pas pensé ! Suis-je bête Smiley decu Je vais donc faire ça, merci Smiley smile

2) J'ai vu cette fonction je sais plus quand. Je vais voir avec google et ton site si je peux me renseigner plus précisément sur cette fonction !

3) Je viens justement de voir un petit code, qui utilisé md5. Donc enfaite, tout ce que j'ai a faire pour rentrer un mdp dans ma base de données, c'est de rajouter "md5" avant le mdp, comme : md5($_POST['mot_de_passe']); ?

Par contre (désolé de mes questions), comment je crée le lien de validation ? Je suppose que c'est encore un truc con, mais sur le coup, je vois pas Smiley murf Ah moins de renvoyer la page sur par exemple : validation.php et rajouter des trucs du genre validation.php?pseudo=Sbizz&mdp=md5(mdp) ... ?

Merci
re,

regarde bien la syntaxe de trim tu oublies des " ou des ' car les param sont des chaines.

pour le 3) dans l'absolu oui. maintenant deux petites remarques.

1/ n'oublie pas de mettre au type du mdp suffisemment de charactères.

même toto a un md5 plutôt long : f71dbe52628a3f83a77ab494817525c6

2/ remarque que toto aura tjs ce md5 sur ta machine comme sur la mienne. c'est pour ça que l'on se sert de md5 pour verifier l'integrité d'un téléchargement.

d'où mon histoire de faire un xor avec une clé en plus.

pour le lien d'activation il me semble que c'est un peu cette trombine qu'ils ont habituellement.

ensuite mettre mdp=md5($password) brrr quelle tentation pour un pirate.

lol ne mets pas mdp et mets de faux arguments pour tromper l'enemi.

sans plaisanter il faudrait voir si tu ne peux pas identifier la personne sans mettre le mdp en get.

apres tous ( excuse moi j'y reflechi Smiley langue j'en ai jamais mis en place car pas besoin jusqu'ici ) le but est surtout d'eviter les robots non? donc la validation n'est pas obligé d'utiliser le mdp. peut être juste le login en md5? avec un id ou un truc session.

edit: ou un deuxieme mdp juste pour la confirmation? ça fait quand même un peu gaspillage comme solution.

bon a faire confimer par un croyant pratiquant.. Smiley ravi
Modifié par CPascal (22 Dec 2007 - 23:57)
Okay pour le trim.

Pour le 1/ j'ai pas compris. Je dois faire en sorte que l'utilisateur est un mdp assez long ? Ou tu parles dans la BDD ? Si c'est dans la BDD, j'ai mit "text" c'était marqué ça dans le lien plus haut, qu'on m'a filé.

Pour le 2/ je comprends pas l'utilité de "xor". Je vois pas du tout c'est quoi, et en recherche, j'ai pas trouvé grand chose.

Pour le lien... mettre par exemple login=md5($login) ? Ouai, pas faux, et rajouter quelques trucs, ça peut peut être le faire Smiley langue
Bah, le lien permet aussi d'empecher certains bots, vrai. Mais c'est aussi pour éviter que des intrus se connectent en deux secondes sur mon site. Si je vois un truc louche, dès le départ, je pourrais intervenir plus tôt. Puis c'est surtout histoire de m'entrainer au PHP Smiley cligne
Salut,

a écrit :
Pour le 1/ j'ai pas compris. Je dois faire en sorte que l'utilisateur est un mdp assez long ? Ou tu parles dans la BDD ? Si c'est dans la BDD, j'ai mit "text" c'était marqué ça dans le lien plus haut, qu'on m'a filé.
Je pense que CPascal parle de la base de données. Il faut donner une longueur suffisante au champ "mot de passe" pour qu'il puisse contenir les mots de passe hashés. Mais utiliser un champ "text", c'est un peu exagéré. Si tu utilises la fonction md5, le résultat sera toujours une chaîne de 32 caractères, tu devrais donc utiliser VARCHAR(32) ...

a écrit :
Pour le 2/ je comprends pas l'utilité de "xor". Je vois pas du tout c'est quoi, et en recherche, j'ai pas trouvé grand chose.

Utiliser la fonction md5() seule n'est pas très sûr (on peut retrouver assez facilement les mots les plus courants {en}), on recommande en général d'utiliser un "salt", i.e. de concaténer le mot de passe de l'utilisateur avec une chaîne personnalisée au cours de ta fonction de cryptage, pour éviter qu'un pirate ne puise retrouver le mot de passe s'il met la main sur la chaîne hashée ...

Pas sûr que ce soit limpide Smiley smile
Ok pour la base de données.

Par contre, vous m'excuserez, mais j'arrive toujours pas à voir comment marche la fonction "xor" (ton lien est en anglais, et je parle très peu anglais enfaite Smiley langue )

On peut me faire un petit exemple ou pas ?

Sinon, j'ai réussit à faire tout le reste, ça marche impec ! Smiley smile Manque plus que le mail Smiley biggrin
Salut,

oui on peut aussi rajouter un element aléatoire, le tous c'est de ne pas se contenter du simple md5.

même si ça implique un peu de boulot au décryptage.

en théorie, car en pratique il suffit de trouver 2 ou 3 fonctions toute faite (mais que l'on comprends...enfin vaut mieux si la sécurité de son site repose dessus..

enfin pour une explication du xor je te propose ce lien.

on y explique divers technique de cryptage dont le xor d'une façon qui me semble claire.

Enfin je ne peux pas m'empecher de cette petite mauvaise Smiley machia reflexion.....

Bon crypter ces mots de passe dans sa base de données c'est bien.
Mais si un gus est capable de hacker ton site de façon a avoir acces a la base et a lire ces informations. ben y a déjà comme un problème. s'il est admin dessus il peu même remplacer tous les mots de passe par toto s'il y veut.

moralité faut surtout verrouiller tes champs de formulaire. faire attention a ce que quand tu inseres des " des ' des trucs en balise ça soit gérer et que quelqu'un aille pas glisser une requete sql dedans.
Modifié par CPascal (23 Dec 2007 - 15:38)
Heu, je dois être bête. J'ai du mal à comprendre Smiley sweatdrop

Le problème, c'est que le binaire, je le comprends pas (encore). Tout ce que je comprends, c'est que il faut 2 "string" à mettre avec le xor, pour que celui-ci donne quelque chose de crypter. Mais... j'ai du mal à voir comment faire enfaite Smiley ohwell

On peut pas faire un p'tit exemple que je comprenne quelque chose ? Smiley confused