From 2c466961a88a709dd3930be73c310168f1f3eee5 Mon Sep 17 00:00:00 2001 From: girvandip <girvandip@gmail.com> Date: Sun, 1 Oct 2017 22:32:19 +0700 Subject: [PATCH] validating username and email done (register) --- controller/register.php | 51 +++++++++++++++++++++++++++++++++++++++++ css/register.css | 3 ++- js/register.js | 48 ++++++++++++++++++++++++++++++++++++++ view/register.php | 21 ++++++++++------- 4 files changed, 114 insertions(+), 9 deletions(-) create mode 100644 controller/register.php create mode 100644 js/register.js diff --git a/controller/register.php b/controller/register.php new file mode 100644 index 00000000..b096b6eb --- /dev/null +++ b/controller/register.php @@ -0,0 +1,51 @@ +<?php +//TODO : Setelah submit redirect ke dashboard, checking user n email + +//model +include "../model/user.php"; + +if(isset($_POST["username2check"])) { + $user = new User; + $username = $_POST["username2check"]; + $sqlcheck = $user->getUsername($username); + $usernameCheck = mysqli_num_rows($sqlcheck); + if($usernameCheck < 1) { + echo 'ok'; + exit(); + } else { + echo 'no'; + exit(); + } +} + +if(isset($_POST["email2check"])) { + $user = new User; + $email = $_POST["email2check"]; + $sqlcheck = $user->getEmail($email); + $usernameCheck = mysqli_num_rows($sqlcheck); + + if($usernameCheck < 1) { + echo 'ok'; + exit(); + } else { + echo 'no'; + exit(); + } +} + +if(isset($_POST["register"])) { + $user = new User; + $name = $_POST['full-name']; + $username = $_POST['username']; + $email = $_POST['email']; + $password = $_POST['password']; + $confirmpass = $_POST['confirm-password']; + $phone = $_POST['phone']; + $isDriver = 0; + if(isset($_POST['is-driver'])) { + if($_POST['is-driver'] == 'on') { + $isDriver = 1; + } + } + $user -> createProfile($name,$username,$email,$password,$phone,$isDriver); +} diff --git a/css/register.css b/css/register.css index a97be556..ce5dc6cd 100644 --- a/css/register.css +++ b/css/register.css @@ -64,11 +64,12 @@ .check-icon { width: 13px; + display : none; } .delete-icon { width: 13px; - display: none; + display: inline-block; } .checkbox { diff --git a/js/register.js b/js/register.js new file mode 100644 index 00000000..aa0109b9 --- /dev/null +++ b/js/register.js @@ -0,0 +1,48 @@ +function checkUsername() { + var u = document.getElementById("username").value; + if(u != "") { + var hr = new XMLHttpRequest(); + hr.open("POST", "../controller/register.php", true); + hr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); + hr.onreadystatechange = function () { + if(hr.readyState == 4 && hr.status == 200) { + var response = hr.responseText; + if(response == 'ok') { + document.getElementById("check-icon-username").style.display = 'inline-block'; + document.getElementById("delete-icon-username").style.display = 'none'; + } + if(response == 'no') { + document.getElementById("check-icon-username").style.display = 'none'; + document.getElementById("delete-icon-username").style.display = 'inline-block'; + } + } + } + var v = "username2check=" + u; + hr.send(v); + } +} + +function checkEmail() { + var email = document.getElementById("email").value; + if(email != "") { + var hr = new XMLHttpRequest(); + hr.open("POST", "../controller/register.php", true); + hr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); + var regex = /^([A-Za-z0-9_\-\.]){1,}\@([A-Za-z0-9_\-\.]){1,}\.([A-Za-z]){2,4}$/; + hr.onreadystatechange = function () { + var response = hr.responseText; + if(response == 'ok' && regex.test(email) != false) { + document.getElementById("check-icon-email").style.display = 'inline-block'; + document.getElementById("delete-icon-email").style.display = 'none'; + } + if(response == 'no' || regex.test(email) == false) { + document.getElementById("check-icon-email").style.display = 'none'; + document.getElementById("delete-icon-email").style.display = 'inline-block'; + } + } + var v = "email2check=" + email; + hr.send(v); + } +} + + diff --git a/view/register.php b/view/register.php index 022d8c5c..5a557b7c 100644 --- a/view/register.php +++ b/view/register.php @@ -19,20 +19,25 @@ <form action="../controller/register.php" method="post"> <div class="user-input"> <div class="label-input">Your Name</label></div> - <div class="text-input"><input type="text" name="full-name"></div> + <div class="text-input"><input type="text" name="full-name" id="full-name"></div> </div> <div class="user-input"> <div class="label-input">Username</label></div> - <div class="text-input-with-check"><input type="text" name="username"></div> - <img id="username-status"></img> - <div><img src="../img/check.png" class="check-icon"></div> - <div><img src="../img/delete.png" class="delete-icon"></div> + <div class="text-input-with-check"><input type="text" name="username" id="username" + onchange="checkUsername()"> + </div> + <span id="username-status"></span> + <div><img src="../img/check.png" class="check-icon" id="check-icon-username"></div> + <div><img src="../img/delete.png" class="delete-icon" id="delete-icon-username"></div> </div> <div class="user-input"> <div class="label-input">Email</label></div> - <div class="text-input-with-check"><input type="text" name="email"></div> - <div><img src="../img/check.png" class="check-icon"></div> - <div><img src="../img/delete.png" class="delete-icon"></div> + <div class="text-input-with-check"><input type="text" name="email" id="email" + onchange="checkEmail()"> + </div> + <span id="email-status"></span> + <div><img src="../img/check.png" class="check-icon" id="check-icon-email"></div> + <div><img src="../img/delete.png" class="delete-icon" id="delete-icon-email"></div> </div> <div class="user-input"> <div class="label-input">Password</label></div> -- GitLab