Verifier Id

Résolu
bonxp Messages postés 29 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 9 novembre 2008 - 18 nov. 2007 à 19:23
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 19 nov. 2007 à 21:18
Bonsoir,

Alors voila j'ai un problème vous allez certe rigoler mais j'ai chercher partout !

Pour le besoin d'un site lors de l'inscription une personne doit savoir si elle est la 200ième (par exemple) a s'inscrire et la vous me voyer venir lol !

Le site propose diverses services payant et il se trouve que l'ont désire permettre a une personne qui sera la 100ième ou 200ième a s'inscrire a avoir un accès gratuit.

Le truc qui me turlupine c'est qu'il ne faut pas que deux personne qui s'inscrive en même temps puisse bénéficer de cet accès gratuit.

J'ai pensé dabord a une vérification avant d'afficher le formulaire d'inscription qui regarde quel est la valeur la plus élévée dans le champs Id de ma base et qui stipule en haut du formulaire " Bravo vous êtes la ***ième personne a vous inscrire et vous gagner un accès totalement gratuit a l'ensemble du site" ce qui serait a priori une bonne manière de procédé.
Mais le fait est que si deux personne arrive a etre la 200ième a s'inscrire comment les départager.
Vous aller me dire il ya une chance très faible pour que deux personnes clique simultanément sur le fameux bouton d'inscription. Alors m'est venu a l'idée une chose qui pourrait résoudre le problème.

Pourquoi ne pas faire valider leur inscription par email aux gens qui s'inscrivent et lors de cette validation afficher le fameux texte tant convoité.
Pour la simple bonne raison qu'il y a une chance sur mille que deux personnes valide leur inscription par email en même temps ou alors la télépatie marche a fond pour eux lol.

Je vous demande simplement ce que vous en penser ou alors si vous pouvez apporter vos connaisances qui sont a priori supérieurs a la mienne au niveau PHP.

N'hésiter pas a détailler vos remarque avec code a l'appui cela me permettra de mieux comprendre ce beau language qu'est PHP et pourra servir d'exemple a celui ou celle qui souhaiterai mettre ca sur son site.

Merci d'avance..
Bonxp

7 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 nov. 2007 à 20:44
Salut,

Le plus simple serait encore de procéder à l'inscription et de récupérer l'id qui a été inséré alors dans la base de données avec mysql_insert_id().

Tu affiches le texte non pas avant l'inscription, ce qui serait absurde, mais après.
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 nov. 2007 à 08:07
Hello,

je suis d'accord avec neige pour la détection après inscription.
Mais les id ne se suivent pas forcément : suffit de faire quelques tests et de les effacer pour que l'id 200 ne veuille pas dire 200 lignes dans la base. Mais bon, ça reste un moyen simple et peu coûteux.
Sinon il reste le count(*) -après inscription toujours.
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
19 nov. 2007 à 12:24
Héhé... Mais si tu veux le 200ème inscrit, il faut bien te baser sur les id...
Parce que la suppression d'un membre ne l'a pas empêché auparavant de s'enregistrer et de compter pour un.
Si tu comptes les inscrits, il suffit d'en supprimer un juste après le 200ème pour que le 200ème devienne le 199ème... C'est absurde.
3
bonxp Messages postés 29 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 9 novembre 2008
19 nov. 2007 à 15:23
Bonjour,

je viens de lire tout et il y aurait un moyen qui permettrais de ne rien fausser.

Exemple qui pourrait fonctionner :

1* l'utilisateur s'enregistre et un email lui est envoyé avec un lien pour valider son inscription.
2* Il clique donc sur ce lien et atterris sur la page du style "validinscription.php"
3* Cette page regarde ou en sont les Id ou alors un numéro générée automatiquement lors de son inscription  et qui correspond exactement au nombre de personnes ayant réalisé une inscription depuis le tout début ou le service du compte gagnant a été mis en place meme si il  y a eu des désincris le 200ème le sera toujours puisque le numéro est n+1 (n étant le précédant inscrit).
4* lors de l'affichage du texte tant convoité un bouton lui permet d'ajouter une valeur (dans la DB) qui va stipuler que c'est l'heureux gagant du style " J'accepte mon compte gratuit" (qui le refuserais lol! )

voila comment serais-ce possible.

Si vous avez des details a ajouter ou alors si vous voyer des incohérences allez y !

Je vous en serait très reconnaisant !

Bonxp
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 nov. 2007 à 20:21
@neige => bossant dans une boîte qui fait bcp de sites (bcp!!), je peux te dire que tu fais tes tests d'inscription...puis le service commercial de ta boîte les fait...puis le client...avec un peu de chance, tu penses à faire un TRUNCATE avant la mise en prod (sinon, déjà, ton principe est mort)...mais là, manque de bol, le client (sa filiaile péruvienne qui n'avait pas eu le temps avant) fait aussi ses tests!! Après la mise en prod. Alors histoire de pas fausser les stats que tu vas remettre au client chaque semaine, tu DELETE (forcément, tu vas pas TRUNCATEr vu que tu as de vrais inscrits). Du coup...tes ID sont décalés. Je n'eb démords pas ;-) : un COUNT(*) est bien plus sûr. D(autant plus qu'on ne supprime pas des enregistrepments en base parce qu'un mec a décidé d'annuler son inscription! Tu le flagges : user_actif = 0. Mais rien d'autre. On n'efface JAMAIS d'une bdd...JAMAIS (auf en période de test, donc...mais JAMAIS d'entrées qui ont été des entrées valides à un moment) ! ;-)
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
19 nov. 2007 à 20:53
@malalam : Je suis bien d'accord avec toi, mais faut quand même relativiser... Je pense pas qu'il s'agisse dans le cas de bonxp d'une grosse boite comme ça, avec plein de tests de plein de services de plein de boites de plein de pays... Mais j'suis bien d'accord... Dans le cas que tu exposes, il faut tenir compte de tous les acteurs. Dans le cas de bonxp, il me semble comprendre que le webmaster est aussi le big boss et le client, et même l'animateur du site... Donc les décisions qu'il prend ne concernent que lui. Cela dit, j'abonde dans ton sens.
Et sinon ils embauchent pas dans ta boite ? :o) (oups pardon, on s'égare)
L'essentiel, ici, c'est que bonxp soit d'accord avec lui-même... (comment elle était facile celle-là)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 nov. 2007 à 21:18
Ouais, mais j'aime bien les trucs réutilisables dans tous les cas ;-)
Mais tu as raison.

Hmmm...je t'écris un MP.
0
Rejoignez-nous