{"id":543,"date":"2021-05-10T03:58:14","date_gmt":"2021-05-10T02:58:14","guid":{"rendered":"https:\/\/codeflarelimited.com\/blog\/?p=543"},"modified":"2021-09-18T04:21:58","modified_gmt":"2021-09-18T03:21:58","slug":"create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique","status":"publish","type":"post","link":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/","title":{"rendered":"Create a PHP Login and Register Form Using PDO And Password Encryption Technique"},"content":{"rendered":"\n<p>PDO is an acronym for<strong> <a href=\"https:\/\/www.php.net\/manual\/en\/book.pdo.php\" target=\"_blank\" rel=\"noreferrer noopener\">PHP Data Objects<\/a><\/strong> and is a useful alternative to <strong>MYSQLI.<\/strong> PHP introduced PHP Data Objects (<strong>PDO<\/strong>) in PHP 5.1 to help standardize and smoothen the development process.<\/p>\n\n\n\n<p>PDO comprises the use of objects and abstraction layers to setup&nbsp;<strong>PDO<\/strong>&nbsp;database&nbsp;<strong>connections<\/strong> and queries.&nbsp;<strong>PDO<\/strong>&nbsp;is a database access layer provides a fast and consistent interface for accessing and managing databases in PHP applications.<\/p>\n\n\n\n<p>So let us create a simple Login and Register form using this PDO principle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-1-database-setup\">Step 1: Database setup<\/h3>\n\n\n\n<p>First, we need to setup a script that will handle our database connections. Let us create a file called <strong><em>db.php<\/em><\/strong> and add the following code:<\/p>\n\n\n\n<pre title=\"db.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\ndefined('BASEPATH') OR exit('No direct script access allowed'); \/\/prevent direct script access\n$host = 'localhost';\n$user = 'root'; \/\/replace with your database username\n$password = ''; \/\/replace with your database password\n$dbname = 'test'; \/\/replace with your database name\n$dsn = '';\n\ntry{\n    $dsn = 'mysql:host='.$host. ';dbname='.$dbname;\n\n    $pdo = new PDO($dsn, $user, $password);\n    $pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n}catch(PDOException $e){\n    echo 'connection failed: '.$e-&gt;getMessage();\n}\n?&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-2-setup-table\">Step 2: Setup Table<\/h3>\n\n\n\n<p>Next, we need to create table as follows:<\/p>\n\n\n\n<pre title=\"Create table\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">CREATE TABLE `admin` (\n  `id` int(11) NOT NULL,\n  `username` varchar(100) NOT NULL,\n  `email` varchar(100) NOT NULL,\n  `password` text NOT NULL,\n  `date_time` datetime NOT NULL DEFAULT current_timestamp()\n) ENGINE=MyISAM DEFAULT CHARSET=latin1;\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"956\" height=\"136\" src=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-10-at-02.59.09.png\" alt=\"\" class=\"wp-image-546\" srcset=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-10-at-02.59.09.png 956w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-10-at-02.59.09-300x43.png 300w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Screenshot-2021-05-10-at-02.59.09-768x109.png 768w\" sizes=\"auto, (max-width: 956px) 100vw, 956px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-3-create-register-page\">Step 3: Create Register page<\/h3>\n\n\n\n<p>Since this tutorial is not about design and styling, we are just going to create a basic html form. <\/p>\n\n\n\n<p>Let us call that file <strong>register.php<\/strong> and put the following contents:<\/p>\n\n\n\n<pre title=\"register.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\"> &lt;form action=\"register.php\" method=\"post\"&gt;\n  &lt;input type=\"text\" required=\"required\" name=\"username\" placeholder=\"Username\"&gt;\n  &lt;input required=\"required\" type=\"email\" name=\"email\" placeholder=\"Email\"&gt;\n  &lt;input required=\"required\" type=\"password\" name=\"password\" placeholder=\"Password\"&gt;                  \n  &lt;button name=\"submit\" type=\"submit\"&gt;register&lt;\/button&gt;\n  &lt;\/form&gt;<\/code><\/pre>\n\n\n\n<p>Next, we will write the PHP logic to handle the registration as seen below:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\ndefine('BASEPATH', true); \/\/access connection script if you omit this line file will be blank\nrequire 'db.php'; \/\/require connection script\n\n if(isset($_POST['submit'])){  \n        try {\n            $dsn = new PDO(\"mysql:host=$host;dbname=$dbname\", $user, $password);\n            $dsn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n\n  \n         $user = $_POST['username'];\n         $email = $_POST['email'];\n         $pass = $_POST['password'];\n\n         $pass = password_hash($pass, PASSWORD_BCRYPT, array(\"cost\" =&gt; 12));\n          \n         \/\/Check if username exists\n         $sql = \"SELECT COUNT(username) AS num FROM admin WHERE username =      :username\";\n         $stmt = $pdo-&gt;prepare($sql);\n\n         $stmt-&gt;bindValue(':username', $user);\n         $stmt-&gt;execute();\n         $row = $stmt-&gt;fetch(PDO::FETCH_ASSOC);\n\n         if($row['num'] &gt; 0){\n             echo '&lt;script&gt;alert(\"Username already exists\")&lt;\/script&gt;';\n        }\n        \n       else{\n\n    $stmt = $dsn-&gt;prepare(\"INSERT INTO admin (username, email, password) \n    VALUES (:username,:email, :password)\");\n    $stmt-&gt;bindParam(':username', $user);\n    $stmt-&gt;bindParam(':email', $email);\n    $stmt-&gt;bindParam(':password', $pass);\n    \n    \n\n   if($stmt-&gt;execute()){\n    echo '&lt;script&gt;alert(\"New account created.\")&lt;\/script&gt;';\n    \/\/redirect to another page\n    echo '&lt;script&gt;window.location.replace(\"index.php\")&lt;\/script&gt;';\n     \n   }else{\n       echo '&lt;script&gt;alert(\"An error occurred\")&lt;\/script&gt;';\n   }\n}\n}catch(PDOException $e){\n    $error = \"Error: \" . $e-&gt;getMessage();\n    echo '&lt;script type=\"text\/javascript\"&gt;alert(\"'.$error.'\");&lt;\/script&gt;';\n}\n     }\n\n?&gt;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.codeflare\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/09\/origami-banner.png\" alt=\"build mobile apps in abuja\" class=\"wp-image-767\" srcset=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/09\/origami-banner.png 1024w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/09\/origami-banner-300x146.png 300w, https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/09\/origami-banner-768x375.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Don&#8217;t build mobile apps from scratch<\/figcaption><\/figure>\n\n\n\n<pre title=\"Complete code for register.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\ndefine('BASEPATH', true); \/\/access connection script if you omit this line file will be blank\nrequire 'db.php'; \/\/require connection script\n\n if(isset($_POST['submit'])){  \n        try {\n            $dsn = new PDO(\"mysql:host=$host;dbname=$dbname\", $user, $password);\n            $dsn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n\n  \n         $user = $_POST['username'];\n         $email = $_POST['email'];\n         $pass = $_POST['password'];\n         \n         \/\/encrypt password\n         $pass = password_hash($pass, PASSWORD_BCRYPT, array(\"cost\" =&gt; 12));\n          \n         \/\/Check if username exists\n         $sql = \"SELECT COUNT(username) AS num FROM admin WHERE username =      :username\";\n         $stmt = $pdo-&gt;prepare($sql);\n\n         $stmt-&gt;bindValue(':username', $user);\n         $stmt-&gt;execute();\n         $row = $stmt-&gt;fetch(PDO::FETCH_ASSOC);\n\n         if($row['num'] &gt; 0){\n             echo '&lt;script&gt;alert(\"Username already exists\")&lt;\/script&gt;';\n        }\n        \n       else{\n\n    $stmt = $dsn-&gt;prepare(\"INSERT INTO admin (username, email, password) \n    VALUES (:username,:email, :password)\");\n    $stmt-&gt;bindParam(':username', $user);\n    $stmt-&gt;bindParam(':email', $email);\n    $stmt-&gt;bindParam(':password', $pass);\n    \n    \n\n   if($stmt-&gt;execute()){\n    echo '&lt;script&gt;alert(\"New account created.\")&lt;\/script&gt;';\n    \/\/redirect to another page\n    echo '&lt;script&gt;window.location.replace(\"index.php\")&lt;\/script&gt;';\n     \n   }else{\n       echo '&lt;script&gt;alert(\"An error occurred\")&lt;\/script&gt;';\n   }\n}\n}catch(PDOException $e){\n    $error = \"Error: \" . $e-&gt;getMessage();\n    echo '&lt;script type=\"text\/javascript\"&gt;alert(\"'.$error.'\");&lt;\/script&gt;';\n}\n     }\n\n?&gt;\n\n&lt;form action=\"register.php\" method=\"post\"&gt;\n  &lt;input type=\"text\" required=\"required\" name=\"username\" placeholder=\"Username\"&gt;\n  &lt;input required=\"required\" type=\"email\" name=\"email\" placeholder=\"Email\"&gt;\n  &lt;input required=\"required\" type=\"password\" name=\"password\" placeholder=\"Password\"&gt;                  \n  &lt;button name=\"submit\" type=\"submit\"&gt;register&lt;\/button&gt;\n  &lt;\/form&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-step-4-create-login-page\">Step 4: Create Login page<\/h3>\n\n\n\n<p>Let us also create a form for the login page as follows:<\/p>\n\n\n\n<pre title=\"login.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;form action=\"login.php\" method=\"post\"&gt;                          \n &lt;input type=\"text\" name=\"username\" placeholder=\"Username\"&gt;\n &lt;input type=\"password\" name=\"password\" placeholder=\"Password\"&gt;    \n &lt;button name=\"submit\" type=\"submit\"&gt;sign in&lt;\/button&gt;\n &lt;\/form&gt;<\/code><\/pre>\n\n\n\n<p>Next we will write the PHP logic that will handle the login process<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\ndefine('BASEPATH', true); \/\/access connection script if you omit this line file will be blank\nrequire 'db.php'; \/\/require connection script\n\nif(isset($_POST['submit'])){  \n        \/\/ try {\n            $dsn = new PDO(\"mysql:host=$host;dbname=$dbname\", $user, $password);\n            $dsn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n    \/\/ensure fields are not empty\n    $username = !empty($_POST['username']) ? trim($_POST['username']) : null;\n    $passwordAttempt = !empty($_POST['password']) ? trim($_POST['password']) : null;\n    \n    \/\/Retrieve the user account information for the given username.\n    $sql = \"SELECT id, username, password FROM admin WHERE username = :username\";\n    $stmt = $pdo-&gt;prepare($sql);\n    \n    \/\/Bind value.\n    $stmt-&gt;bindValue(':username', $username);\n    \n    \/\/Execute.\n    $stmt-&gt;execute();\n    \n    \/\/Fetch row.\n    $user = $stmt-&gt;fetch(PDO::FETCH_ASSOC);\n    \n    \/\/If $row is FALSE.\n    if($user === false){\n       echo '&lt;script&gt;alert(\"invalid username or password\")&lt;\/script&gt;';\n    } else{\n         \n        \/\/Compare and decrypt passwords.\n        $validPassword = password_verify($passwordAttempt, $user['password']);\n        \n        \/\/If $validPassword is TRUE, the login has been successful.\n        if($validPassword){\n            \n            \/\/Provide the user with a login session.\n             \n            $_SESSION['admin'] = $username;\n           echo '&lt;script&gt;window.location.replace(\"dashboard.php\");&lt;\/script&gt;';\n            exit;\n            \n        } else{\n            \/\/$validPassword was FALSE. Passwords do not match.\n            echo '&lt;script&gt;alert(\"invalid username or password\")&lt;\/script&gt;';\n        }\n    }\n    }\n?&gt;<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<pre title=\"Complete code for login.php\" class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">&lt;?php\ndefine('BASEPATH', true); \/\/access connection script if you omit this line file will be blank\nrequire 'db.php'; \/\/require connection script\n\nif(isset($_POST['submit'])){  \n        \/\/ try {\n            $dsn = new PDO(\"mysql:host=$host;dbname=$dbname\", $user, $password);\n            $dsn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n    \/\/ensure fields are not empty\n    $username = !empty($_POST['username']) ? trim($_POST['username']) : null;\n    $passwordAttempt = !empty($_POST['password']) ? trim($_POST['password']) : null;\n    \n    \/\/Retrieve the user account information for the given username.\n    $sql = \"SELECT id, username, password FROM admin WHERE username = :username\";\n    $stmt = $pdo-&gt;prepare($sql);\n    \n    \/\/Bind value.\n    $stmt-&gt;bindValue(':username', $username);\n    \n    \/\/Execute.\n    $stmt-&gt;execute();\n    \n    \/\/Fetch row.\n    $user = $stmt-&gt;fetch(PDO::FETCH_ASSOC);\n    \n    \/\/If $row is FALSE.\n    if($user === false){\n       echo '&lt;script&gt;alert(\"invalid username or password\")&lt;\/script&gt;';\n    } else{\n         \n        \/\/Compare and decrypt passwords.\n        $validPassword = password_verify($passwordAttempt, $user['password']);\n        \n        \/\/If $validPassword is TRUE, the login has been successful.\n        if($validPassword){\n            \n            \/\/Provide the user with a login session.\n             \n            $_SESSION['admin'] = $username;\n           echo '&lt;script&gt;window.location.replace(\"dashboard.php\");&lt;\/script&gt;';\n            exit;\n            \n        } else{\n            \/\/$validPassword was FALSE. Passwords do not match.\n            echo '&lt;script&gt;alert(\"invalid username or password\")&lt;\/script&gt;';\n        }\n    }\n    }\n?&gt;\n\n&lt;form action=\"login.php\" method=\"post\"&gt;                          \n &lt;input type=\"text\" name=\"username\" placeholder=\"Username\"&gt;\n &lt;input type=\"password\" name=\"password\" placeholder=\"Password\"&gt;    \n &lt;button name=\"submit\" type=\"submit\"&gt;sign in&lt;\/button&gt;\n &lt;\/form&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h3>\n\n\n\n<p>There we have it. This is how you can create a Login and Register form using PDO with password hash and secure script access. Have any questions? Feel free to leave them in comments.<\/p>\n\n\n\n<p><a href=\"https:\/\/codeflarelimited.com\/blog\/create-a-login-form-with-node-js-mysql\/\" target=\"_blank\" rel=\"noreferrer noopener\">Create Register and Login Form using Node.js<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP<\/p>\n","protected":false},"author":1,"featured_media":548,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[87],"tags":[],"class_list":["post-543","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create a PHP Login and Register Form Using PDO And Password Encryption Technique<\/title>\n<meta name=\"description\" content=\"PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP Data Objects (PDO) in PHP 5.1\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a PHP Login and Register Form Using PDO And Password Encryption Technique\" \/>\n<meta property=\"og:description\" content=\"PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP Data Objects (PDO) in PHP 5.1\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/facebook.com\/codeflretech\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-10T02:58:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-18T03:21:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"753\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"codeflare\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codeflaretech\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/\"},\"author\":{\"name\":\"codeflare\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/person\\\/7e65653d49add95629f8c1053c5cd76a\"},\"headline\":\"Create a PHP Login and Register Form Using PDO And Password Encryption Technique\",\"datePublished\":\"2021-05-10T02:58:14+00:00\",\"dateModified\":\"2021-09-18T03:21:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/\"},\"wordCount\":266,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Untitled-Design-2.png\",\"articleSection\":[\"php\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/\",\"name\":\"Create a PHP Login and Register Form Using PDO And Password Encryption Technique\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Untitled-Design-2.png\",\"datePublished\":\"2021-05-10T02:58:14+00:00\",\"dateModified\":\"2021-09-18T03:21:58+00:00\",\"description\":\"PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP Data Objects (PDO) in PHP 5.1\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#primaryimage\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Untitled-Design-2.png\",\"contentUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/Untitled-Design-2.png\",\"width\":1200,\"height\":753,\"caption\":\"PHP PDO\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"php\",\"item\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/php\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a PHP Login and Register Form Using PDO And Password Encryption Technique\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\",\"name\":\"\",\"description\":\"Sustainable solutions\",\"publisher\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#organization\",\"name\":\"Codeflare Limited\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/codeflare.png\",\"contentUrl\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/codeflare.png\",\"width\":1040,\"height\":263,\"caption\":\"Codeflare Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/#\\\/schema\\\/person\\\/7e65653d49add95629f8c1053c5cd76a\",\"name\":\"codeflare\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g\",\"caption\":\"codeflare\"},\"description\":\"Latest tech news and coding tips.\",\"sameAs\":[\"https:\\\/\\\/codeflarelimited.com\\\/blog\",\"https:\\\/\\\/facebook.com\\\/codeflretech\",\"https:\\\/\\\/instagram.com\\\/codeflaretech\",\"https:\\\/\\\/x.com\\\/codeflaretech\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCuBLtiYqsajHdqw0uyt7Ofw?sub_confirmation=1\"],\"url\":\"https:\\\/\\\/codeflarelimited.com\\\/blog\\\/author\\\/watcher\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a PHP Login and Register Form Using PDO And Password Encryption Technique","description":"PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP Data Objects (PDO) in PHP 5.1","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/","og_locale":"en_US","og_type":"article","og_title":"Create a PHP Login and Register Form Using PDO And Password Encryption Technique","og_description":"PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP Data Objects (PDO) in PHP 5.1","og_url":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/","article_author":"https:\/\/facebook.com\/codeflretech","article_published_time":"2021-05-10T02:58:14+00:00","article_modified_time":"2021-09-18T03:21:58+00:00","og_image":[{"width":1200,"height":753,"url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png","type":"image\/png"}],"author":"codeflare","twitter_card":"summary_large_image","twitter_creator":"@codeflaretech","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#article","isPartOf":{"@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/"},"author":{"name":"codeflare","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/person\/7e65653d49add95629f8c1053c5cd76a"},"headline":"Create a PHP Login and Register Form Using PDO And Password Encryption Technique","datePublished":"2021-05-10T02:58:14+00:00","dateModified":"2021-09-18T03:21:58+00:00","mainEntityOfPage":{"@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/"},"wordCount":266,"commentCount":2,"publisher":{"@id":"https:\/\/codeflarelimited.com\/blog\/#organization"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#primaryimage"},"thumbnailUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png","articleSection":["php"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/","url":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/","name":"Create a PHP Login and Register Form Using PDO And Password Encryption Technique","isPartOf":{"@id":"https:\/\/codeflarelimited.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#primaryimage"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#primaryimage"},"thumbnailUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png","datePublished":"2021-05-10T02:58:14+00:00","dateModified":"2021-09-18T03:21:58+00:00","description":"PDO is an acronym for PHP Data Objects and is a useful alternative to MYSQLI. PHP introduced PHP Data Objects (PDO) in PHP 5.1","breadcrumb":{"@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#primaryimage","url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png","contentUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png","width":1200,"height":753,"caption":"PHP PDO"},{"@type":"BreadcrumbList","@id":"https:\/\/codeflarelimited.com\/blog\/create-a-php-login-and-register-form-using-pdo-and-password-encryption-technique\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codeflarelimited.com\/blog\/"},{"@type":"ListItem","position":2,"name":"php","item":"https:\/\/codeflarelimited.com\/blog\/php\/"},{"@type":"ListItem","position":3,"name":"Create a PHP Login and Register Form Using PDO And Password Encryption Technique"}]},{"@type":"WebSite","@id":"https:\/\/codeflarelimited.com\/blog\/#website","url":"https:\/\/codeflarelimited.com\/blog\/","name":"","description":"Sustainable solutions","publisher":{"@id":"https:\/\/codeflarelimited.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codeflarelimited.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/codeflarelimited.com\/blog\/#organization","name":"Codeflare Limited","url":"https:\/\/codeflarelimited.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2020\/11\/codeflare.png","contentUrl":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2020\/11\/codeflare.png","width":1040,"height":263,"caption":"Codeflare Limited"},"image":{"@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/codeflarelimited.com\/blog\/#\/schema\/person\/7e65653d49add95629f8c1053c5cd76a","name":"codeflare","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/59cef917c86d965eea581d2747f51bd6382003a68bfce7c8a4dfec98b4cd838d?s=96&d=mm&r=g","caption":"codeflare"},"description":"Latest tech news and coding tips.","sameAs":["https:\/\/codeflarelimited.com\/blog","https:\/\/facebook.com\/codeflretech","https:\/\/instagram.com\/codeflaretech","https:\/\/x.com\/codeflaretech","https:\/\/www.youtube.com\/channel\/UCuBLtiYqsajHdqw0uyt7Ofw?sub_confirmation=1"],"url":"https:\/\/codeflarelimited.com\/blog\/author\/watcher\/"}]}},"jetpack_featured_media_url":"https:\/\/codeflarelimited.com\/blog\/wp-content\/uploads\/2021\/05\/Untitled-Design-2.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/comments?post=543"}],"version-history":[{"count":6,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/543\/revisions"}],"predecessor-version":[{"id":771,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/posts\/543\/revisions\/771"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/media\/548"}],"wp:attachment":[{"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/media?parent=543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/categories?post=543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeflarelimited.com\/blog\/wp-json\/wp\/v2\/tags?post=543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}