begin process at 2012 05 28 16:02:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Améliorer mon script d'inscription =)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Améliorer mon script d'inscription =)

mercredi 11 mai 2005 à 19:02:59 | Améliorer mon script d'inscription =)

eltronchodiablo

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 ("<br> 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.



jeudi 12 mai 2005 à 09:26:41 | Re : Améliorer mon script d'inscription =)

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
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

jeudi 12 mai 2005 à 18:14:40 | Re : Améliorer mon script d'inscription =)

Anthomicro

Réponse acceptée !
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 del'IP) empêcher la création d'un autre compte pendant une durée Xdéterminée (attention, l'utilisateur peut très bien supprimer cecookie).

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

a +


    samedi 14 mai 2005 à 17:02:55 | Re : Améliorer mon script d'inscription =)

    eltronchodiablo

    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 ^^)

    <html>
      <head>
        <title>Ajout d'un nouveau participant</title>
      </head>
      <body>
        <h1>Remplissez la fiche d'inscription</h1>
        <form method="POST" action="formu.php">
          Nick :    <input type="text"   name  ="nick" > <br>
          Guilde:    <input type="text"   name  ="guilde" > <br>
          Faction : <select size="1"  name="faction">
                            <option selected>Alliance</option>
                            <option>Horde</option>
                    </select>
          <br>
          Classe : 
            <select size="1"  name="classe">
                              <option selected>Chasseur</option>
                              <option>Chaman</option>
                              <option>Démoniste</option>
                              <option>Druide</option>
                              <option>Guerrier</option>
                              <option>Mage</option>
                              <option>Paladin</option>
                              <option>Prêtre</option>
                              <option>Voleur</option>
            </select>
            <br>
            Catégorie :
            <select size="1"  name="categorie">
                              <option>56-60</option>
                              <option>46-55</option>
                              <option>40-45</option>                   
            </select> 
            <br>
                     
                  <input type="submit" value = "Ajoutez moi" >

    <?php

    $db = mysql_connect("localhost", "root", "");
    if (!$db)  die("la connection au serveur MYSQL a échouée.");
    mysql_select_db("formu_db");

    $r=mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM membres WHERE pseudo='$pseudo'"));
    if($r[0]==='0') {}
    else {echo 'Le pseudo existe déjà';}

    $requete = "INSERT INTO joueurs (nick, guilde, faction, classe,categorie) VALUES ('$nick', '$guilde', '$faction', '$classe','$categorie')";
    mysql_query($requete);
    //verif_mysql();
    //echo ("<br> Votre candidature a bien été enregistrée");

    ?>


              </form>
    </p>
          <p>&nbsp;      </p>
         
         
         
      </body>
    </html>



    samedi 14 mai 2005 à 17:32:56 | Re : Améliorer mon script d'inscription =)

    Anthomicro

    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...


      dimanche 15 mai 2005 à 00:26:07 | Re : Améliorer mon script d'inscription =)
      dimanche 15 mai 2005 à 00:27:02 | Re : Améliorer mon script d'inscription =)

      eltronchodiablo

      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 ^^




      Cette discussion est classée dans : script, mysql, db, nick, inscription


      Répondre à ce message

      Sujets en rapport avec ce message

      Authentification [ par gabsia ] Salut J'ai un problème d'autentification: Je suis entrain de créer un site comme étant projet, Ce site dynamique : l'utilisateur doit s'y inscrire Problème Mysql / while / do [ par OmbreNoir ] Bonjour,Je m'explique,j'aimerais pouvoir avoir la position d'une table sans while ou do. En faite ma commande se fait comme ceci:[code]$db = mysql_con Importation BDD MySQL [ par Thienou ] Bonjour à tous,J'aimerais savoir comment importer une base de donnée enregistrée en .sql par un script php (donc pas de phpMyAdmin)Je n'ai pas trouvé Problème connection BBD [ par Sniark ] Bonjour,J'ai une bbd chez free, J'essaie de créer une page de création de compte, et j'ai toujours la même erreur qui revient...Warning: main() [funct Prob classe SQL. [ par Aaron ] Bonjour,Je viens de coder ce qui suit :class DB{var $NUM_ROW;var $RESULTS;         function __construct($server, $db, $login, $pwd){     $this->CNX = Verification pseudo MYSQL [ par poitierjohan ] Bonjour,Voici un code que j'ai testé (pour un page web), mais celui-ci ne foncionne pas...En quoi consiste-t-il? Il devrait me vérifié si un pseudo es Comment appeler une procedure stockees en PHP et retourner un parametre? [ par ed1982 ] Bonjour a tous, Je voudrai savoir comment appeler une procedure stockee (Mysql) dans ma fonction php. J aimerai savoir comment retourner le parametr Comment recuperer les informations generees par la procedure stockee (Mysql) dans un prog PHP [ par ed1982 ] Bonjour,J ai un autre probleme qui ressemble au precedent. Comment recuperer les informations generees par la procedure stockee (Mysql) dans un prog P comment faire une requete mysql ? [ par saibe ] hello tout le monde !débutant en php et mysql je ne comprend po l'erreur de mon code :$mysql_host="localhost"; // le serveur$mysql_login=""; // le log


      Nos sponsors


      Sondage...

      Comparez les prix

      CalendriCode

      Mai 2012
      LMMJVSD
       123456
      78910111213
      14151617181920
      21222324252627
      28293031   

      Consulter la suite du CalendriCode

      Photothèque

      A découvrir



       
      Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
      CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
      CodeS-SourceS.com© est une marque déposée tous droits réservés

      Google Coop CodeS-SourceS Google Coop CodeS-SourceS
      Temps d'éxécution de la page : 0,530 sec (3)

      Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales