Améliorer mon script d'inscription =)

Résolu
eltronchodiablo Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 15 mai 2005 - 11 mai 2005 à 19:02
eltronchodiablo Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 15 mai 2005 - 15 mai 2005 à 00:27
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
12 mai 2005 à 09:26
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
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 mai 2005 à 18:14
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>
3
eltronchodiablo Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 15 mai 2005
14 mai 2005 à 17:02
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















0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 mai 2005 à 17:32
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>
0

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

Posez votre question
eltronchodiablo Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 15 mai 2005
15 mai 2005 à 00:26
0
eltronchodiablo Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 15 mai 2005
15 mai 2005 à 00:27
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 ^^
0
Rejoignez-nous