Améliorer mon script d'inscription =) [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
15 mai 2005
-
Messages postés
4
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
15 mai 2005
-
Salut à tous !

J'ai fais un joli formulaire d'inscription à un tournoi et il marche
très bien, sauf que j'ai quelques difficultés à le rendre plus "sûr".



Pour le moment il ressemble à ça :



<?php



$db = mysql_connect("localhost", "root", "");

if (!$db) die("la connection au serveur MYSQL a échouée.");

mysql_select_db("formu_db");



$requete = "INSERT INTO joueurs (nick, guilde, faction, classe,
categorie) VALUES ('$nick', '$guilde', '$faction', '$classe',
'$categorie')";

mysql_query($requete);

//verif_mysql();

//echo ("
Votre candidature a bien été enregistrée");



?>



Comme vous le voyez il n'y a pas de système pour :

-empêcher une double inscription (2 fois le même nick)

-empêcher un spam du script (un robot qui inscrirait 90k persos à la minute)

-confirmer ou infirmer que l'inscription a bien été enregistrée

-signaler qu'un champ n'a pas été remplit et par la suite stoper le processus.

-s'identifier et modifier son inscription



Donc si vous avez des idées, conseils sur ces 4 petits points, ça me ferait très plaisir.

6 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,



question securite, je m'inquieterais d'abord des injections sql.

Tu geres les echappements avec mysql_real_escape_string () dans ton formulaire d'inscription...?

Double inscription : bah, tu testes. Sinon tu as la clause DISTINCT, selon comment tu procedes.

Spam : tu peux essayer de recuperer le remote host, l'ip...si quelqu'un
vient s'inscrire plus de 2 ou 3 fois avec les memes valeurs, tu
bloques. Je ne sais pas si ce serait efficace, il y a sans doute plus
efficace.

Confirmer/Infirmer : la je ne vois pas trop le probleme ? Si ta requete
marche, tu fais echo 'Merci, votre inscription a bien ete prise en
compte'; ... ;-)

Signaler... : Ah, je me doutais que ton formulaire avait des
failles...file plutot ton formulaire et son traitement. Je ne vais pas
te faire un tuto ici ce serait un peu long :-( Mais en gros : un
formulaire bien fait comprend un bouton submit. Avant traitement, on
teste ce bouton submit, puis tous les champs du formulaire. (voir
fonctions isset (), empty ()...mysql_real_escape_string () j'insiste
lol)

S'identifier/Modifier : Va voir les sessions http://de3.php.net/session
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



tout d'abord pour tester que le pseudo n'a pas été pris tu fais une requête de type SELECT sur ta table.



Exemple (en supposant que tes variables soient échappées) :





$r=mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM membres WHERE pseudo='$pseudo'"));



if($r[0]==='0')

{

//c'est bon

}

else

{

echo 'Le pseudo existe déjà';

}



Ensuite pour rendre encore plus sur, tu peux via cookie (en plus de
l'IP) empêcher la création d'un autre compte pendant une durée X
déterminée (attention, l'utilisateur peut très bien supprimer ce
cookie).



Pour les robots, je te conseille les scripts générant une image
affichant un code, qui, si il n'est pas tapé, empêche l'inscription.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
4
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
15 mai 2005

Merci à vous 2 =)

Désolé pour le temps de réponse, mais j'ai eu quelques empêchements :/
voici donc le code complet de mon formulaire :

(avec l'ajout de anthomicro qui ne marche pas ^^)







Ajout d'un nouveau participant





Remplissez la fiche d'inscription




Nick :


Guilde:


Faction :



Alliance



Horde






Classe :





Chasseur



Chaman



Démoniste



Druide



Guerrier



Mage



Paladin



Prêtre



Voleur






Catégorie :





56-60



46-55



40-45















Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
MDR



avant de faire un bête copier-coller regarde la requête que j'ai faite,
j'ai nommée la table "membres" il faut adapter à ta table...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
4
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
15 mai 2005

Messages postés
4
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
15 mai 2005

lol chuis con, je sais pas pourquoi, mais j'étais persuadé que j'avais la même table =)

doit être fatigué.



enfin bref, je vais renommer ça ^^