This is continuation and implementation of feedback found in this post: Basic user registration codeI just began to use the PDO object, I'm not sure if i'm using it efficiently. Are there any security issues? Is the myEncrypt function suitable enough or still a bit lacking?initialise.php:try {    $db = new PDO(mysql:host=$db_hostname;dbname=$db_database, $db_username, $db_password);}catch(PDOException $e){echo Failed to connect to server;}function myEncrypt($password){$i = $password.$salt1;$hash1 = md5($i);$j = $salt2.$hash1;$hash2 = md5($j);return $hash2;}Registration.php:require 'initialise.php';//View - Leaving this as is for now. Haven't learnt css/html in depth yet.echo <<<_REGFORM<form align=center action=registration.php method =post><pre>Register an account:Username          <input type=text name=regusername/>Password          <input type=password name=regpassword/>Retype Password   <input type=password name =checkregpassword/>  <input type=submit value=Register/></pre></form>_REGFORM;//Checks inputs for length requirements, if two passwords are the same, if filter was successfulif ($_SERVER['REQUEST_METHOD'] === POST) {    filter_input(INPUT_POST, $_POST, FILTER_SANITIZE_STRING, FILTER_NULL_ON_FAILURE);    $usernameclean = $_POST['regusername'];    $password = $_POST['regpassword'];    $checkpassword = $_POST['checkregpassword'];    if (isset($username, $password, $checkpassword)) {        if (strlen($username) < 5) {            $errors['username'][] = Usernames must be at least 5 characters in length.;        }        if (strlen($username) > 32) {            $errors['username'][] = Usernames have a maximum limit of 32 characters.;        }        if (strlen($password) < 5) {            $errors['password'][] = Passwords must be at least 5 characters in length.;        }        if ($password <> $checkpassword) {            $errors['password'][] = Your passwords must be the same.;        }    }    if (!count($errors)) {        $hashedpassword = myEncrypt($password);       //function defined in initialise.php        $checkUsername_query = SELECT user_id FROM users WHERE username='$usernameclean';        $checkUsername_result = $db->query($checkUsername_query)->fetch();        if (!$checkUsername_result)             {            //SETS UP USER ACCOUNTS, DEFINES 5 FILE SLOTS                          try {                    $db->beginTransaction();                    $createUser_query = INSERT INTO users(username,password) VALUES('$usernameclean','$hashedpassword');                    $createUser_result = $db->exec($createUser_query);                    $getuserid_query = SELECT user_id FROM users WHERE username='$usernameclean';                    $getuserid = $db->query($getuserid_query);                    $user_id = $getuserid->fetch();                    //ASSIGNS 5 File slots into files (File-information)                    for ($i = 1; $i <= 5; $i++) {                        $assignfileslots = INSERT INTO files(user_id) VALUES('$user_id[0]');                        $db->exec($assignfileslots);                    }                    $db->commit();                    echo Thanks  . htmlspecialchars($usernameclean) . , your account has been created! Please login.<br/>;                    } catch (PDOException $e)                     {                    $db->rollback();                    echo Your account could not be created, please try again later.;                    }            } else             {            echo Username Unavailable, please try another username;            }    }    if (count($errors)) {        echo '<ul>';        foreach ($errors as $elements => $errs) {            foreach ($errs as $err) {                echo '<li>' . htmlspecialchars($err) . '</li>';            }        }        echo '<ul>';    }}?>
Basic user registration code in PHP: Part 2
php;mysql;pdo