VerifyUser 1.0

easy user verify with a existing PHP-Server

  1. HellBz
    This Plugin helps you to Authenticate Users with your Website and
    garant them Right or What you want.

    2015-03-01_22.17.25.png 2015-03-01_22.17.17.png 2015-03-01_22.17.01.png


    A User Joins the Server and the Server looksup an Register URL

    In my Own Script (with PHP) the User will be registered in my MYSQL Database.

    The Next i send the User a Link to my Website and the user Reads the Rules and then Click Accept.

    In the Next step i Print the User a VerifyCode Out, generated from my MYSQL and my PHP Script.

    And now the User must go back on the Minecraft Server and put the Secret Key in.

    I would like to be considered unclean code
    since this is my first plugin.

    Try that out on my 1.8.1 MC Server: hellbz.de:25565

    And next use the Link: http://dzcp-addons.eu/minecraft/regelwerk/agree/?pl=[YOURUSERNAME]

    PHP Example File and Conig..

    Config:
    Code (configyml (Unknown Language)):

    REGURL: http://host.de/execute.php?reg=new&name=%username%&uuid=%uuid%&id=%ip%
    logUser: false
    LOGURL: http://localhost/loguser/?name=%username%&uuid=%uuid%&ip=%ip%
    VERIFYURL: http://host.de/execute.php?known=verify&name=%username%&code=%code%&uuid=%uuid%
    verifyingMessage: '&bVerifying your code, please wait...'
    results:
      verify_success: '&aDanke, du bist nun freigeschalten!'
      verify_failed: '&4Leider ist bei der Verifikation etwas schief gelaufen, bitte kontaktiere einen Admin.'
      verify_active: '&4Du bist uns bereits verifiziert, bitte kontaktiere einen Admin.'
      verify_nodb: '&4Du bist uns leider nicht in der Datenbank, bitte kontaktiere einen Admin.'
      reg_failed: '&4Du bist uns bereits bekannt, bitte lies dir die Regeln duch und schalte dich frei..'
      reg_success: '&4Hey, du bist ja neu.. Bitte lies die Regeln auf www.hellbz.de/regeln/ und schalte dich frei, Link folgt.!'
      error: '&4We seroiusly have no idea.'
    cmd:
      verify_success: pex user @p group set neuling; money set @p 150; spawn @p; kit tools @p
      verify_failed: tellraw @p { "text":"[Klick] Unsere Serverregeln, bitte lesen und selbst freischalten.","color":"light_purple","bold":"true","underlined":"true" , clickEvent:{ action:open_url, value:"http://dzcp-addons.eu/minecraft/regelwerk/[email protected]" }}
      verify_active: ''
      verify_nodb: ''
      reg_failed: ''
      reg_success: tellraw @p { "text":"[Klick] Unsere Serverregeln, bitte lesen und selbst freischalten.","color":"light_purple","bold":"true","underlined":"true" , clickEvent:{ action:open_url, value:"http://dzcp-addons.eu/minecraft/regelwerk/[email protected]" }}
      error: ''
    checkUpdate: true
     
    Code (PHP):
    <?php

    $verbindung = mysql_connect ("localhost", "DATABASEUSER", "DATABASE PWD") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");

    mysql_select_db("DATABASENAME") or die ("Die Datenbank existiert nicht.");

       if (!empty($_GET['known'])){
      if (!empty($_GET['name']) && !empty($_GET['code'])){

      $query = mysql_query("SELECT * FROM `verify_user` WHERE `uid` = '".$_GET['uuid']."' AND `active` != 1 ORDER by id DESC LIMIT 0,1") or die(mysql_error());
      //Wenn User in Datenbank dann weiter unten
      if ( mysql_num_rows($query) >= 1 ){

      $row = mysql_fetch_array($query);
      //Wenn User in Datenbank ist und Verify Code koorekt ist dann unten weiter
      if ( $row['uniqe'] == $_GET['code'] ){
      //User wird freigeschalten
      mysql_query("UPDATE `verify_user` SET `active` = '1' WHERE `uid` = '".$_GET['uuid']."' ") or die(mysql_error());
      echo "verify_success";
      }else{
      //User benutzte falschen Verify Code Ausgabe Error
      echo "verify_failed";
      }
      //Wenn User nicht eingetragen als nicht aktiv ( aktiv != 0 )  ist
      }else{

      $querya = mysql_query("SELECT * FROM `verify_user` WHERE `uid` = '".$_GET['uuid']."' LIMIT 0,1") or die(mysql_error());
      $rowa = mysql_fetch_array($querya);
      //Wenn User bereits aktiv dann unten weiter
      if ( $rowa['active'] == 1 ){
      //User wurde bereits aktiviert ausgeben
      echo "verify_active";
      }else{
      //Wenn nicht in Datenbank, dann neu eintragen
      echo "verify_nodb";
      $uniq = new uniqID();
      $uniqid = $uniq->makeUniqID(20);
      mysql_query("INSERT INTO `verify_user` (uname, uid, uniqe) VALUES ('".$_GET['name']."', '".$_GET['uuid']."', '".$uniqid."')") or die('error');
      }
      }

      } else {
      //Fehlerausgabe es wurden keine Variabeln übergeben
      echo "Error: No URL Variables.";
      }
      //Dies ist die Reg URL
      }elseif( !empty($_GET['reg']) ){
      $querya = mysql_query("SELECT * FROM `verify_user` WHERE `uid` = '".$_GET['uuid']."' LIMIT 0,1") or die(mysql_error());
      if ( mysql_num_rows($query) >= 1 ){
      //User bereits in Datenbank und Fehlerausgabe
      echo "reg_failed";
      }else{
      //User noch nicht in Datenbank, wird angelegt.
      $uniq = new uniqID();
      $uniqid = $uniq->makeUniqID(20);
      mysql_query("INSERT INTO `verify_user` (uname, uid, uniqe) VALUES ('".$_GET['name']."', '".$_GET['uuid']."', '".$uniqid."')") or die('error');
      echo "reg_success";
      }
      }

    //Eine Klasse aus dem Internet,
    //Leicht modifiziert für eigene Bedürfnisse
    class uniqID
    {
      private function cryptSHA512($hash,$rounds)
      {
      $tmpHash = $hash;
      for($i = 0; $i <= $rounds; $i++)
      {
      $tmpHash = hash('sha512',$tmpHash);
      }
      return $tmpHash;
      }

      public function makeUniqID($rounds)
      {
      $tmp1 = mt_rand(1,1000000000);
      $tmp2 = mt_rand(1,1000000000);
      $tmp1 = $this->cryptSHA512($tmp1,$rounds);
      $tmp2 = $this->cryptSHA512($tmp2,$rounds);

      $tmp  = $tmp1 ^ $tmp2;
      $tmp  = $this->cryptSHA512($tmp,$rounds);
      $tmp  = substr($tmp, 0, 10);
      return $tmp;
      }
    }
    ?>

    Images

    1. verifyuser.png