Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class DB{
- static $db = null;
- static function Connect($str, $username, $password){
- try{
- DB::$db = @new PDO($str, $username, $password, [PDO::ATTR_PERSISTENT => false]);
- DB::$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); // For debugging
- }
- catch(exception $e){
- die($e->getMessage());
- return false;
- }
- return true;
- }
- static function IsAlive(){
- if(!DB::$db){
- die('Database connection died');
- }
- }
- static function Query($str, $a = null){
- DB::IsAlive();
- $stat = DB::$db->prepare($str);
- if(!stat){
- die(DB::$db->errorInfo());
- }
- if(!$stat->execute($a)){
- die($stat->errorInfo());
- }
- $result = $stat->fetchAll(PDO::FETCH_ASSOC);
- return $result;
- }
- static function Insert($t, $a){
- $ka = [];
- $va = [];
- $values = [];
- foreach($a as $k=>$v){
- $st = ':'.$k;
- $ka[]=$k;
- $va[] = $st;
- $values[$st] = $v;
- }
- DB::IsAlive();
- $stat = DB::$db->prepare("INSERT INTO ".$t." (".implode( ',', $ka ).") VALUES(".implode(',', $va).")");
- if(!stat){
- die(DB::$db->errorInfo());
- }
- if(!$st->execute($a)){
- die($stat->errorInfo());
- }
- return DB::$db->lastInsertId();
- }
- static function QueryRow($str, $a=null){
- $result = DB::Query($str,$a);
- if($result){
- return reset($result);
- }
- }
- static function QueryValue($str, $a=null){
- $result = DB::Query($str,$a);
- if($result){
- $resa = reset($result);
- if($resa){
- return $resa;
- }
- }
- }
- }
- $dbservername = "localhost";
- $dbusername = "smc";
- $dbpassword = "vKjggBzd8J";
- $dbname = "smc_characters";
- DB::Connect( 'mysql:host='.$dbservername.';dbname='.$dbname,$dbusername, $dbpassword);
- $salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM); // Creates a random salt
- $password = $_POST['password'];
- $username = $_POST['username'];
- $email = $_POST['email'];
- if(!isset($username) || !isset($email)){
- // TODO: Username or E-Mail not set
- die();
- }
- // Check username + email + password length here and that E-Mail is valid
- $hash = password_hash($password, PASSWORD_BCRYPT, ['salt'=>$salt]);
- $result = DB::QueryValue("SELECT id FROM Accounts WHERE username = :username OR email = :email", ['username'=>$username, 'email'=>$email]);
- if($result){
- echo("Username or E-Mail is already in use");
- } else{
- DB::Insert('Accounts', ['username'=>$username, 'password'=>$hash, 'salt'=>$salt,'email'=>$email]);
- echo("New account created successfully");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement