User Registration System: Apps Script, HTML, Bootstrap ЁЯФеЁЯУЭ
|рдпрджрд┐ рдЖрдк Apps Script Web API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ User Registration рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ Article рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реА рд╣реИрдВ ред рдЕрднреА рддрдХ рд╣рдордиреЗ рдЬреЛ рднреА Article рд▓рд┐рдЦреЗ рдЙрд╕рдореЗ рд╣рдореЗрдВ Google Sheet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Login Check рдХрд┐рдпрд╛ рдерд╛ рдЗрд╕ Article рдореЗ рд╣рдореЗрдВ рдкрд┐рдЫрд▓реЗ Article рдХреЛ Implement рдХрд░рддреЗ рд╣реБрд╡реЗ рдЗрд╕рдореЗ User рднреА Project рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣реА рдмрдирд╛рдпреЗ рдЬрд╛ рд╕рдХреЗ рдРрд╕рд╛ Plan рдХрд┐рдпрд╛ рд╣реИрдВ, рдЖрдЗрдП Step By Step рд╕рдордЭрддреЗ рд╣реИрдВ ред рдореЗ рдпрд╣ рдорд╛рди рдХрд░ Source Code рджреЗ рд░рд╣рд╛ рд╣реБ рдХреА рдЖрдкрдиреЗ рдкрд╣рд▓реЗ Login System рдмрдирд╛рдпрд╛ рд╣реБрд╡рд╛ рд╣реИрдВ (рдЪрд╛рд╣реЗ рд╡рд╣ Simple Login ) рдореЗ рдЙрд╕рдХреЗ рдЖрдЧреЗ рдХрд╛ Code рдЖрдкрдХреЛ рджреЗ рд░рд╣ рд╣реБред previous Code рдЖрдк рдирд┐рдореНрди Article рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред
CREATING A SIMPLE LOGIN SYSTEM WITH GOOGLE APPS SCRIPT AND GOOGLE SHEETS (HTML, CSS, BOOTSTRAP, JS)
Table of Contents
1. Google Sheet For User Registration
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ Google Sheet рдмрдирд╛ рд▓реАрдЬрд┐рдП, рд╣рдо рдЬреЛ User Registration Page рдмрдирд╛рдПрдВрдЧреЗ рддрдм рд╡рд╣рд╛рдБ рд╕реЗ Entry рдХрд░реЗрдВрдЧреЗ рддреЛ рд╡рд╣ рдЖрдХрд╛рд░ Google Sheet рдкрд░ Store рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдореЗ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ Columns рд╣реА рдмрдирд╛рдирд╛ рд╣реИрдВ , Entry рд╣рдо рдЬрдм Page рдкрд░ рдХрд░реЗрдВрдЧреЗ рддрдм рдпрд╣рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рдЗрд╕ sheet рдХрд╛ рдирд╛рдо login рд░рдЦрдирд╛ рд╣реИрдВ рдЬреЛ рдХреА рд╣рдореЗ Apps Script рд╕реЗ link рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдЖрдПрдЧрд╛ ред
2. HTML Code for User Registration
рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо Apps Script рдореЗ рдПрдХ register.html File рдмрдирд╛ рд▓реЗрдВрдЧреЗред рдЗрд╕рдореЗ рдлрд╛рдЗрд▓ рдореЗ рдЖрдк рдиреАрдЪреЗ CSS рдФрд░ JavaScript рдХрд╛ Code рд▓рд┐рдЦрд╛ рд╣реИрдВ рдЙрд╕реЗ рднреА Add рдХрд░ рд▓реАрдЬрд┐рдПрдЧрд╛ ред
<style></style> <!-- Add CSS -->
<script></script> <!-- Add JS -->
<div class="card shadow rounded-4 rounded ">
<h5 class="card-header bg-secondary- text-white p-3 mycolor">User Registration</h5>
<div class="card-body p-4">
<div id="RegBody">
<div class="input-group mb-3">
<span class="input-group-text" >User Name</span>
<input type="text" class="form-control" id="reg_uname" placeholder="User Name" onchange="ClearText()">
</div>
<div class="input-group mb-3">
<span class="input-group-text" >User ID</span>
<input type="text" class="form-control" id="reg_uid" placeholder="User ID" onchange="ClearText()">
</div>
<div class="input-group mb-3">
<span class="input-group-text" >Password</span>
<input type="password" class="form-control" id="reg_pass" placeholder="Password" onchange="ClearText()" >
</div>
<div class="input-group mb-3">
<span class="input-group-text" >Re-enter</span>
<input type="password" class="form-control" id="reg_repass" placeholder="Re-enter Password" onchange="ClearText()" >
</div>
</div>
<div id="RetMsgReg" class="alert alert-danger " style="display:none" role="alert"> </div>
<button type="button" class="btn btn-primary- mycolor float-end px-5 text-white" onclick="Register()">Register</button>
</div>
</div>
рдЖрдкрдиреЗ рдЬреЛ рднреА Login Page рдмрдирд╛рдпрд╛ рд╣реЛ рдЙрд╕ рдкрд░ рдЖрдк рдпрд╣ Code add рдХрд░ рджреАрдЬрд┐рдПрдЧрд╛ рддрд╛рдХрд┐ Login рд╕реЗ Register Page open рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ ред
<span href="#" onclick="OpenRegisterPage()">Register (New User)</a>
<script>
function OpenRegisterPage() {
google.script.run.withSuccessHandler(ShowRegister).OpenPage("register");
}
</script>
3. CSS for User Registration
рдпрд╣ Css рдХрд╛ Code рднреА рдЖрдкрдХреЛ HTML рдлрд╛рдЗрд▓ рдореЗ рд╣реА рд▓рд┐рдЦрдирд╛ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЕрд▓рдЧ рд╕реЗ рдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдмрдирд╛ рдХрд░ Add рдХрд░ рд▓реАрдЬрд┐рдПрдЧрд╛ред
<style>
body {
background-color: rgba(58, 103, 177, 30%); //rgba(205, 180, 219, 30%);
}
.card {
width: 400px;
margin: auto;
margin-top: 30px;
}
.input-group-text {
width: 100px;
display: inline-block;
}
.mycolor {
background-color: #3a67b1; //#6d3b89;
}
.color {
color: #3a67b1; //#6d3b89;
}
</style>
4. JavaScript Code for User Registration
рдпрд╣ JavaScript рдХрд╛ Code рднреА рдЖрдкрдХреЛ HTML File рдореЗ рд╣реА add рдХрд░рдирд╛ рд╣реИрдВ ред рдЗрд╕рдореЗ рдЬреЛ function рдмрдирд╛рдпреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗ рдиреАрдЪреЗ Detail рдореЗ рд▓рд┐рдЦрд╛ рд╣реИрдВ ред
<script>
function Register() {
var unm = document.getElementById("reg_uname").value.trim();
var uid = document.getElementById("reg_uid").value.trim();
var pass = document.getElementById("reg_pass").value.trim();
var repass = document.getElementById("reg_repass").value.trim();
if (pass != repass) {
RegReturnMsg("danger,Password Not Matched...");
}
else { google.script.run.withSuccessHandler(RegReturnMsg).UserRegister(uid,pass,unm);
}
}
function RegReturnMsg(data) {
let v = data.split(",");
let type=v[0];
$('#RetMsgReg').removeClass("alert-success").removeClass("alert-danger").addClass("alert-"+type);
$('#RetMsgReg').html(v[1]);
$('#RetMsgReg').show();
if (type == 'success') {
setTimeout(function(){
//document.getElementById("myid").click();
}, 3000);
}
}
</script>
- Register() : рдЗрд╕ Function рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╣рдо Screen рд╕реЗ рд╕рднреА рдЬрд░реВрд░реА Columns рдХреА Value рдХреЛ рд▓реЗрдХрд░ рдЙрд╕реЗ Apps Script рдкрд░ рднреЗрдЬ рджреЗрддреЗ рд╣реИрдВ ред рд╕рд╛рде рд╣реА рдореЗ Screen Level рдХреЗ Validation рднреА рд╣рдордиреЗ рдЗрд╕рдореЗ рд▓рдЧрд╛рдП рд╣реИрдВ ред рдЬреЛ рднреА Apps Script рд╕реЗ Return рдЖрддрд╛ рд╣реИрдВ рдЙрд╕рд╕реЗ рдПрдХ рдирдпрд╛ Function Call рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдХреА рдирд┐рдореНрди рд╣реИрдВ ред
- RegReturnMsg(data) : рдЗрд╕ Function рд╕реЗ рдЬреАрддрдиреЗ рднреА Validation рд▓рдЧрд╛рдП рд╣реИрдВ рдЙрдиреНрд╣реЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИрдВред рд╕рд╛рде рдореЗ Success Fully Registerd рд╣реЛрдиреЗ рдХреЗ рдкреЗрдЬ рдХреЛ Login рд╡рд╛рд▓реЗ Page рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИрдВред
5. Apps Script Code for User Registration
let MySheets = SpreadsheetApp.getActiveSpreadsheet();
let LoginSheet = MySheets.getSheetByName("login");
function doGet(e) {
var output = HtmlService.createTemplateFromFile('login');
return output.evaluate();
}
function OpenPage(PageName) {
return HtmlService.createHtmlOutputFromFile(PageName).getContent();
}
function UserRegister(pUID, pPassword, pName) {
let RetMsg = '';
let ReturnData = LoginSheet.getRange("A:A").createTextFinder(pUID).matchEntireCell(true).findAll();
let StartRow = 0;
ReturnData.forEach(function (range) {
StartRow = range.getRow();
});
if (StartRow > 0)
{
RetMsg = 'danger, User Already Exists';
}
else
{
LoginSheet.appendRow([pUID, pPassword, pName]) ;
RetMsg = 'success, User Successfully Registered';
}
return RetMsg;
}
6. Video рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП
7. Execution (User Registration)
рдЗрд╕ Page рд╕реЗ рд╣рдо рдХреЛрдИ рднреА рдирдП User рдХрд╛ Registration рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕рдореЗ Example рдХреЗ рдХреЗрд╡рд▓ рд╡рд╣реА Columns рд▓рд┐рдП рд╣реИрдВ рдЬреЛ рдЬрд░реВрд░реА рд╣реИрдВ рдЖрдк рдЪрд╛рд╣реЗ рддреЛ рдФрд░ рднреА Columns рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ ред рдЗрд╕ Page рдкрд░ рд╣рдордиреЗ рдХреБрдЫ Validation рднреА рд▓рдЧрд╛рдП рд╣реИрдВ ред
рдпрджрд┐ Password рдФрд░ Re-enter Password same рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ Message рдЖрдПрдЧрд╛, рдпрд╣ JavaScript рд╕реЗ рдХрд┐рдпрд╛ рд╣реИрдВ ред
рдпрджрд┐ рдПрдХ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ User Registered рд╣реИрдВ рддрдм User Already Exists рдХрд╛ Message рдЖрдПрдЧрд╛ред
рдЬрдм User рд╕рднреА Validation pass рдХрд░ рд▓реЗрдЧрд╛ рддреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ Message Display рд╣реЛрдЧрд╛ ред
рдЖрд╢рд╛ рд╣реИрдВ рдореБрдЭреЗ рдЖрдкрдХреЛ User Registration System рдмрд╣реБрдд рд╣реА рдЕрдЪреНрдЫреЗ рд╕реЗ рд╕рдордЭ рдореЗ рдЖ рдЧрдпрд╛ рд╣реИрдВ, рдЗрд╕ Article рд╕реЗ related рдХреЛрдИ рднреА Query рд╣реЛ рддреЛ рдЖрдк рдореБрдЭреЗ рдирд┐рдГрд╕рдВрдХреЛрдЪ comment рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ Article рдХреИрд╕рд╛ рд▓рдЧрд╛ Comment рдХрд░рдирд╛ рди рднреВрд▓реЗ ред рдЕрдкрдирд╛ рдХреАрдорддреА рд╕рдордп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ред
рд╣рдорд╛рд░реЗ рдЕрдиреНрдп рдЖрд░реНрдЯрд┐рдХрд▓
- MySQL Function
- MySQL Stored Procedure
- PHP Get /Post Method рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ
- PHP Math Function рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ
- C рд╕реЗ C ++ рд╕реАрдЦреЗ рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ
- PHP Variable рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ
- Arduino Control Structure
- Union in C
- Declaration of Pointer in C
- jQuery Search Filter
- MySQL Create Table | Alter Table | Drop Table
- API Using NODE REACT EXPRESS MYSQL SEQUELIZE (For Backend OR Server Side)
- CPANEL In Hindi