JezK
Edit File: register.php
<!doctype html> <html lang="en"> <head> <title>Detailing Edition - Register</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="icon" type="image/png" href="./images/fav.png"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@200;400;800&family=Mulish:wght@300;400;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.7/css/all.css"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> <link rel="stylesheet" href="./userstyles/ures.css"> <link rel="stylesheet" href="./userstyles/userstyles.css"> <script src="https://detailingedition.com/js/validations.js"></script> </head> <body class="login-section"> <div class="container-fluid"> <div class="row no-gutters"> <div class="col-md-12"> <img src="./images/logo.png" id="logo" class="mt-3 img-fluid d-block m-auto" width=200 /> <div class="col-md-12"> <form id="register-form"> <div class="register-contents"> <h3 class="reg-heading mb-4">Registration</h3> <div class="row reg-form-style"> <div class="col-lg-6"> <div class="form-group pb-2"> <label for="name" class="form-label">Name </label> <input type="text" class="form-control" id="name" name="name" placeholder="Name" autocomplete="off"> <div class="error name_error"></div> </div> <div class="form-group pb-2"> <label for="phone" class="form-label">Phone number</label> <input type="phone" class="form-control" id="phone" name="phone" placeholder="Phone number" autocomplete="off"> <div class="error phone_error"></div> </div> <div class="form-group pb-2"> <label for="password" class="form-label">Password</label> <input type="password" placeholder="Password" class="form-control" name="password" id="password" autocomplete="off"> <span class="reg-toggle-icon"><i class="fa fa-eye"></i></span> <div class="error passworderror"></div> </div> </div> <div class="col-lg-6"> <div class="form-group pb-2"> <label for="email" class="form-label">Email</label> <input type="email" placeholder="Email" class="form-control" name="email" id="email"> <div class="error emailerror"></div> </div> <div class="form-group pb-2"> <label for="address" class="form-label">Address </label> <textarea class="form-control" rows="12" id="address" name="address" placeholder="Address"></textarea> <div class="error address_error"></div> </div> <div class="form-group pb-2"> <label for="referred_by" class="form-label">Referral Code (Optional)</label> <input type="text" class="form-control" id="referred_by" name="referred_by" placeholder="Have a referral code?"> </div> </div> <div class="col-lg-12 mt-3"> <button type="submit" class="de-btn-fill d-block m-auto" onclick="return validateUserRegister();" name="login">Register</button> </div> </div> <div class="login mt-2">Already have an account? <br> <h5><a href="index.php">Login</a></h5> </div> </div> </form> </div> </div> </div> </div> </body> </html> <?php include "./scripts.php"; ?> <script> $('.reg-toggle-icon').click(function() { var input = $('#password'); if (input.attr('type') === 'password') { input.attr('type', 'text'); $(this).find('i').removeClass('fa-eye').addClass('fa-eye-slash'); } else { input.attr('type', 'password'); $(this).find('i').removeClass('fa-eye-slash').addClass('fa-eye'); } }); function validatePhoneNumber(phoneNumber) { // Regular expression pattern for phone number validation var phonePattern = /^\d{10}$/; // Remove any non-digit characters from the input var cleanedNumber = phoneNumber.replace(/\D/g, ""); // Check if the cleaned number matches the pattern if (phonePattern.test(cleanedNumber)) { // Valid phone number return true; } else { // Invalid phone number return false; } } function checkPassword(str) { var regex_pass = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{8,}$/; return regex_pass.test(str); } function validateVehicleNumber(vehicleNumber) { vehicleNumber = vehicleNumber.trim(); vehicleNumber = vehicleNumber.replace(/\s+/g, ''); const statePatterns = { "AP": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Andhra Pradesh "AR": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Arunachal Pradesh "AS": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Assam "BR": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Bihar "CG": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Chhattisgarh "DL": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Delhi "GA": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Goa "GJ": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Gujarat "HR": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Haryana "HP": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Himachal Pradesh "JK": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Jammu and Kashmir "JH": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Jharkhand "KA": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Karnataka "KL": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Kerala "MP": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Madhya Pradesh "MH": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Maharashtra "MN": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Manipur "ML": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Meghalaya "MZ": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Mizoram "NL": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Nagaland "OD": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Odisha "PB": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Punjab "RJ": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Rajasthan "SK": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Sikkim "TN": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Tamil Nadu "TG": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Telangana "TR": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Tripura "UP": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Uttar Pradesh "UK": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // Uttarakhand "WB": /^[A-Z]{2}\d{2}[A-Z]{2}\d{4}$/, // West Bengal "AN": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Andaman and Nicobar Islands "CH": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Chandigarh "DN": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Dadra and Nagar Haveli "DD": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Daman and Diu "LD": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Lakshadweep "PY": /^[A-Z]{2}\d{2}[A-Z]{1,2}\d{4}$/, // Puducherry }; const stateCode = vehicleNumber.slice(0, 2); if (statePatterns.hasOwnProperty(stateCode)) { const regex = statePatterns[stateCode]; if (regex.test(vehicleNumber)) { return true; } else { return false; } } else { return false; } } function validateUserRegister() { $(".error").html(""); let name = document.getElementById("name").value; let phone = document.getElementById("phone").value; let email = document.getElementById("email").value; let password = document.getElementById("password").value; // let vehicleName = document.getElementById("vehiclename").value; // let vehicleNumber = document.getElementById("vehiclenumber").value; let address = document.getElementById("address").value; if (name == "") { $(".name_error").html("Please Enter Name"); return false; } if (name.length <= 2) { $(".name_error").html("Name Should Be Minimum 3 Letters Long"); return false; } if (phone == "") { $(".phone_error").html("Please enter the Phone Number"); $("#phone").focus(); return false; } var phoneNumber = phone; if (!validatePhoneNumber(phoneNumber)) { $(".phone_error").html("please enter the correct phone number"); $("#phone").focus(); return false; } if (password == "") { $(".passworderror").html("Please enter the Password"); return false; } if (!checkPassword(password)) { $(".passworderror").html( "Password must be at least 8 characters long and contain a combination of letters, numbers, and special characters." ); return false; } if (email == "") { $(".emailerror").html("Please enter Email"); return false; } var regex_email = /^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,}$/; if (!regex_email.test(email)) { $(".emailerror").html("Please enter valid Email"); return false; } // if (vehicleName == "") { // $(".vehiclename_error").html("Please enter a valid vehicle name."); // return false; // } // if (vehicleNumber == "") { // $(".vehiclenumber_error").html("Please enter vehicle number."); // return false; // } // if (!validateVehicleNumber(vehicleNumber)) { // $(".vehiclenumber_error").html("Vehicle number must contain both letters and numbers as in this format 'XXNN XX NNNN'."); // return false; // } if (address == "") { $(".address_error").html("Please enter a valid address."); return false; } // If all fields are valid, the form will be submitted return true; } $('#register-form').submit(function(event) { event.preventDefault(); formData = $('#register-form').serialize(); $.ajax({ url: 'App/registerApp.php', method: 'POST', data: formData, success: function(response) { let data = JSON.parse(response) let token = data.token; if (data.status == 1) { toastr.success('Registerd Successfully...') function redirect() { location.replace('otpverification.php?token=' + token + '&verifyStatus=' + 1); } setTimeout(redirect, 3000); } else if (data.status == 2) { toastr.warning("User Already Existed") } else { toastr.warning("Unable to Register, Please try again") } } }) }) $('#logo').click(function() { location.replace('index.php'); }) </script>