Guest User

Untitled

a guest
May 29th, 2016
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. <?php
  2.  
  3. class DB{
  4. static $db = null;
  5.  
  6.  
  7. static function Connect($str, $username, $password){
  8. try{
  9. DB::$db = @new PDO($str, $username, $password, [PDO::ATTR_PERSISTENT => false]);
  10. DB::$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); // For debugging
  11.  
  12. }
  13. catch(exception $e){
  14. die($e->getMessage());
  15. return false;
  16. }
  17.  
  18. return true;
  19. }
  20.  
  21. static function IsAlive(){
  22. if(!DB::$db){
  23. die('Database connection died');
  24. }
  25. }
  26.  
  27. static function Query($str, $a = null){
  28. DB::IsAlive()
  29. $stat = DB::$db->prepare($str);
  30. if(!stat){
  31. die(DB::$db->errorInfo());
  32. }
  33.  
  34. if(!$st->execute($a)){
  35. die($stat->errorInfo());
  36. }
  37.  
  38. $result = $stat->fetchAll(PDO::FETCH_ASSOC);
  39.  
  40. return $result;
  41.  
  42.  
  43. }
  44.  
  45. static function Insert($t, $a){
  46. $ka = [];
  47. $va = [];
  48. $values = [];
  49.  
  50. foreach($a as $k=>$v){
  51. $st = ':'.$k;
  52.  
  53. $ka[]=$k;
  54. $va[] = $st;
  55. $values[$st] = $v;
  56. }
  57.  
  58. return DB::Query("INSERT INTO ".$t." (".implode( ',', $ka ).") VALUES(".implode(',', $va).")");
  59.  
  60. }
  61.  
  62. static function QueryRow($str, $a=null){
  63. $result = DB::Query($str,$a);
  64. if($result){
  65. return reset($result);
  66. }
  67. }
  68.  
  69. static function QueryValue($str, $a=null){
  70. $result = DB::Query($str,$a);
  71. if($result){
  72. $resa = reset($result);
  73. if($resa){
  74. return $resa;
  75. }
  76. }
  77. }
  78. }
  79.  
  80.  
  81.  
  82. $dbservername = "localhost";
  83. $dbusername = "smc";
  84. $dbpassword = "vKjggBzd8J";
  85. $dbname = "smc_characters";
  86.  
  87. DB::Connect( 'mysql:host='.$dbservername.';dbname='.$dbname.',$dbusername, $dbpassword);
  88.  
  89.  
  90. $salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM); // Creates a random salt
  91. $password = $_POST['password'];
  92. $username = $_POST['username'];
  93. $email = $_POST['email'];
  94.  
  95. if(!isset($username) || !isset($email)){
  96. // TODO: Username or E-Mail not set
  97. die();
  98. }
  99.  
  100. // Check username + email + password length here and that E-Mail is valid
  101.  
  102. $hash = password_hash($password, PASSWORD_BCRYPT, ['salt'=>$salt]);
  103. $result = DB::QueryValue("SELECT id FROM Accounts WHERE username = :username OR email = :email", ['username'=>$username, 'email'=>$email]);
  104.  
  105. if($result){
  106. echo("Username or E-Mail is already in use");
  107. } else{
  108. DB::Insert('accounts', ['username'=>$username, 'password'=>$hash, 'salt'=>$salt,'email'=>$email]);
  109. echo("New account created successfully");
  110. }
Add Comment
Please, Sign In to add comment