krovn

Untitled

Nov 5th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // add main.go -> http.HandleFunc("/checkusername", <package>.CheckUsername)
  2. func CheckUsername(w http.ResponseWriter, req *http.Request) {
  3.     sampleUsers := map[string]bool{
  4.         "krovn":   true,
  5.         "jkrovnl": true,
  6.         "admin":   true,
  7.     }
  8.     bs, err := ioutil.ReadAll(req.Body)
  9.     if err != nil {
  10.         fmt.Println(err)
  11.     }
  12.     sbs := string(bs)
  13.     fmt.Println("USERNAME: ", sbs)
  14.     fmt.Fprint(w, sampleUsers[sbs])
  15. }
  16. ==============================================================================================
  17. <!DOCTYPE html> <!-- Signup.go -->
  18. <html>
  19. <head>
  20.     <title>Signup5</title>
  21. </head>
  22. <body>
  23.     <h5>Signup5</h5>
  24.     <form method="post" id="form-create-user">
  25.         <input type="text" name="username" id="username" placeholder="Username"><br>
  26.         <p class="form-field-err" id="username-err"></p>
  27.         <input type="password" name="password" id="password" placeholder="Password"><br>
  28.         <input type="password" name="password" id="password2" placeholder="Confirm password"><br>
  29.         <p class="form-field-err" id="password-err"></p>
  30.         Role:<select name="role">
  31.             <option value="user">User</option>
  32.             <option value="admin">Admin</option>
  33.         </select><br>
  34.         <input type="submit" id="submitbutton"><br>
  35.     </form>
  36.     <a href="/">Index</a>
  37.     <br><a href="/login">Login</a>
  38.     <script>
  39.         var formUser = document.querySelector('#form-create-user');
  40.         var username = document.querySelector('#username');
  41.         var p1 = document.querySelector('#password');
  42.         var p2 = document.querySelector('#password2');
  43.         var nameErr = document.querySelector('#username-err');
  44.         var pErr = document.querySelector('#password-err')
  45.         // username must be unique
  46.         username.addEventListener('input', function(){
  47.             console.log(username.value);
  48.             var xhr = new XMLHttpRequest();
  49.             xhr.open('POST','/checkusername', true);
  50.             xhr.addEventListener('readystatechange', function(){
  51.                 if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200){
  52.                     var item = xhr.responseText;
  53.                     console.log(item);
  54.                     if(item == 'true'){
  55.                         nameErr.textContent = 'Username taken - Try another name!';
  56.                         document.querySelector('#submitbutton').disabled = true;
  57.                     } else {
  58.                         nameErr.textContent = '';
  59.                         document.querySelector('#submitbutton').disabled = false;
  60.                     }
  61.                 }
  62.             });
  63.             xhr.send(username.value);
  64.         });
  65.         //validate passwords, listen for submit button click
  66.         formUser.addEventListener('submit',function(e){
  67.             var ok = validatePasswords();
  68.             if (!ok){
  69.                 e.preventDefault();
  70.                 return;
  71.             }
  72.         });
  73.         function validatePasswords(){
  74.             pErr.textContent = '';
  75.             if (p1.value === ''){
  76.                 pErr.textContent = 'Enter a password.';
  77.                 return false
  78.             }
  79.             if (p1.value !== p2.value){
  80.                 pErr.textContent = 'Your passwords did not match. Please re-enter your passwords.';
  81.                 p1.value = '';
  82.                 p2.value = '';
  83.                 return false;
  84.             }
  85.             return true;
  86.         };
  87.     </script>
  88. </body>
  89. </html>
Add Comment
Please, Sign In to add comment