Advertisement
Guest User

Untitled

a guest
May 29th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 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(!$stat->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. DB::IsAlive();
  59. $stat = DB::$db->prepare("INSERT INTO ".$t." (".implode( ',', $ka ).") VALUES(".implode(',', $va).")");
  60. if(!stat){
  61. die(DB::$db->errorInfo());
  62. }
  63.  
  64. if(!$st->execute($a)){
  65. die($stat->errorInfo());
  66. }
  67.  
  68. return DB::$db->lastInsertId();
  69.  
  70. }
  71.  
  72. static function QueryRow($str, $a=null){
  73. $result = DB::Query($str,$a);
  74. if($result){
  75. return reset($result);
  76. }
  77. }
  78.  
  79. static function QueryValue($str, $a=null){
  80. $result = DB::Query($str,$a);
  81. if($result){
  82. $resa = reset($result);
  83. if($resa){
  84. return $resa;
  85. }
  86. }
  87. }
  88. }
  89.  
  90.  
  91.  
  92. $dbservername = "localhost";
  93. $dbusername = "smc";
  94. $dbpassword = "vKjggBzd8J";
  95. $dbname = "smc_characters";
  96.  
  97. DB::Connect( 'mysql:host='.$dbservername.';dbname='.$dbname,$dbusername, $dbpassword);
  98.  
  99.  
  100. $salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM); // Creates a random salt
  101. $password = $_POST['password'];
  102. $username = $_POST['username'];
  103. $email = $_POST['email'];
  104.  
  105. if(!isset($username) || !isset($email)){
  106. // TODO: Username or E-Mail not set
  107. die();
  108. }
  109.  
  110. // Check username + email + password length here and that E-Mail is valid
  111.  
  112. $hash = password_hash($password, PASSWORD_BCRYPT, ['salt'=>$salt]);
  113. $result = DB::QueryValue("SELECT id FROM Accounts WHERE username = :username OR email = :email", ['username'=>$username, 'email'=>$email]);
  114.  
  115. if($result){
  116. echo("Username or E-Mail is already in use");
  117. } else{
  118. DB::Insert('Accounts', ['username'=>$username, 'password'=>$hash, 'salt'=>$salt,'email'=>$email]);
  119. echo("New account created successfully");
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement