Prevent Registered user from registering again

Volkof

Well-Known Member
Reaction score
31
Hilo~

If a user has already registered to your website, is there any way to prevent him/her from trying to register to your website again?

I read somewhere that you have to check ip address or something, but im not sure how to do that.
Using PHP by the way
 

Artificial

Without Intelligence
Reaction score
326
TL;DR: You can't (unless it's a very special case). And you shouldn't (unless it's a very special case).

Whilst there are technical solutions for making it more difficult to register several accounts, none of them are both easy and effective. Most of them (such as IP and cookie based solutions) are not only easy to circumvent, but will also prevent some potential users from creating an account - for example people using a shared or public computer someone else has already used to register.

Instead of asking us "How do I prevent multiple registrations?" you should be asking yourself "Why do I need to prevent multiple registrations?" For most sites, such as this one, a user having multiple accounts is not really much of an issue. A secondary account doesn't cause any monetary losses and doesn't make the site an unfair place for anyone. In other words: the gain of implementing measures to prevent multiple registrations is zero for these sites. It isn't worth the development time and potential loss of users.

That said, I can think of two cases where preventing multiple accounts is actually necessary:
  • Games
    Players of some online multiplayer games might benefit from having several accounts. Travian, for example, suffers from this as a player could potentially create several accounts and share resources between them, earning significantly more than their competitors.

    There's no easy way of preventing cheating in this case. The way Travian used to do it was by requiring users using the same IP address to explicitly state so, applying special rules to these people, and then manually monitoring all accounts for possible duplicates. Each of their game worlds included several people whose main job as far as I know was hunting down players with multiple accounts.

    Unless your website really suffers from people using multiple accounts to cheat, hiring people to manually monitor all accounts is probably not worth it. Even if you can automate most of their work (as I believe Travian has nowadays done), the development time spent on those sophisticated algorithms is quite substantial.
  • When signing up gives monetary gains
    Some commercial services, such as online movie rental sites, might give new users monetary gains, such as X free movie rentals. In these cases preventing multiple accounts per user is vital; failing to do so will cause serious monetary losses (assuming people would actually pay for the service).

    Something to note here is that these sites have one common goal: getting money from their users. After the free trial has been used up, the user needs to spend some money on the site or they're just useless. And in order for them to spend money, you need their payment information - i.e. their credit card information.

    This opens up a perfect opportunity for effectively preventing multiple accounts. By requiring people to present their credit card information on registration instead of on the first payment you get a hold of information that's not easy to spoof or get practically infinite amounts of - their credit card number and name. Simply verifying this information isn't already associated to some other user's account will also verify it's not a duplicate account.

    Of course this method alone might allow people with multiple credit cards to register several times. But each registration requires a new valid credit card, which makes creating several accounts and infinitely using your new-user offer to avoid paying you a pain in the ass, so monetary losses are quite minimal.

To sum it up, there is no easy, universal way of preventing multiple registrations. Any effective solution is going to be costly in terms of development time and every situation requires a unique solution. If you still believe you need to implement this block, you'll need to share your use case so we can come up with a fitting solution.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top