Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include 'includes/header.php';
- include 'includes/navbar.php';
- ?>
- <br>
- <style>
- * {
- box-sizing: border-box;
- }
- body {
- background-color: #f1f1f1;
- }
- #regForm {
- background-color: #ffffff;
- margin: 10px auto;
- font-family: Raleway;
- padding: 30px;
- width: 70%;
- min-width: 300px;
- }
- h1 {
- text-align: center;
- }
- input {
- padding: 10px;
- width: 100%;
- font-size: 17px;
- font-family: Raleway;
- border: 1px solid #aaaaaa;
- }
- /* Mark input boxes that gets an error on validation: */
- input.invalid {
- background-color: #ffdddd;
- }
- /* Hide all steps by default: */
- .tab {
- display: none;
- }
- button {
- background-color: #4CAF50;
- color: #ffffff;
- border: none;
- padding: 10px 20px;
- font-size: 17px;
- font-family: Raleway;
- cursor: pointer;
- }
- button:hover {
- opacity: 0.8;
- }
- #prevBtn {
- background-color: #bbbbbb;
- }
- /* Make circles that indicate the steps of the form: */
- .step {
- height: 15px;
- width: 15px;
- margin: 0 2px;
- background-color: #bbbbbb;
- border: none;
- border-radius: 50%;
- display: inline-block;
- opacity: 0.5;
- }
- .step.active {
- opacity: 1;
- }
- /* Mark the steps that are finished and valid: */
- .step.finish {
- background-color: #4CAF50;
- }
- </style>
- <body>
- <form id="regForm" method="post" enctype="multipart/form-data">
- <h1>Member Registration:</h1>
- <!-- One "tab" for each step in the form: -->
- <div class="tab">
- <label for="matric">Matric No:</label>
- <p><input type=text id="matric" placeholder="Enter matric no" oninput="this.className = ''" name="matric"></p>
- <label for="name">Name:</label>
- <p><input type=text id="name" placeholder="Enter name" oninput="this.className = ''" name="name"></p>
- <label for="semester">Semester:</label>
- <p><input type=number id="semester" placeholder="Enter semester" oninput="this.className = ''" name="semester" min="1" max="8"></p>
- </div>
- <div class="tab">
- <label for="email">Email:</label>
- <p><input type=email id="email" placeholder="Enter email" oninput="this.className = ''" name="email"></p>
- <label for="inasis">Inasis:</label>
- <p><input type=text id="inasis" placeholder="Enter inasis" oninput="this.className = ''" name="inasis"></p>
- <label for="phone">Phone:</label>
- <p><input type=text id="phone" placeholder="Enter phone" oninput="this.className = ''" name="phone" minlength="10" maxlength="11"></p>
- </div>
- <div class="tab">
- <label for="username">Username:</label>
- <p><input type=text id="username" placeholder="Enter username" oninput="this.className = ''" name="username"></p>
- <label for="password">Password:</label>
- <p><input type=password id="password" placeholder="Enter password" oninput="this.className = ''" name="password"></p>
- <label for="picture">Picture:</label>
- <div class="custom-file mb-3">
- <input type="file" class="custom-file-input" id="picture" name="image">
- <label style="width: 50%; text-align:center;" class="custom-file-label" for="picture">Choose file</label>
- </div>
- </div>
- <div style="overflow:auto;">
- <div style="float:right;">
- <button type="button" id="prevBtn" onclick="nextPrev(-1)">Previous</button>
- <button type="button" id="nextBtn" onclick="nextPrev(1)">Next</button>
- </div>
- </div>
- <!-- Circles which indicates the steps of the form: -->
- <div style="text-align:center;margin-top:40px;">
- <span class="step"></span>
- <span class="step"></span>
- <span class="step"></span>
- </div>
- </form>
- <script>
- // Add the following code if you want the name of the file appear on select
- $(".custom-file-input").on("change", function() {
- var fileName = $(this).val().split("\\").pop();
- $(this).siblings(".custom-file-label").addClass("selected").html(fileName);
- });
- var currentTab = 0; // Current tab is set to be the first tab (0)
- showTab(currentTab); // Display the current tab
- function showTab(n) {
- // This function will display the specified tab of the form...
- var x = document.getElementsByClassName("tab");
- x[n].style.display = "block";
- //... and fix the Previous/Next buttons:
- if (n == 0) {
- document.getElementById("prevBtn").style.display = "none";
- } else {
- document.getElementById("prevBtn").style.display = "inline";
- }
- if (n == (x.length - 1)) {
- document.getElementById("nextBtn").innerHTML = "Submit";
- } else {
- document.getElementById("nextBtn").innerHTML = "Next";
- }
- //... and run a function that will display the correct step indicator:
- fixStepIndicator(n)
- }
- function nextPrev(n) {
- // This function will figure out which tab to display
- var x = document.getElementsByClassName("tab");
- // Exit the function if any field in the current tab is invalid:
- if (n == 1 && !validateForm()) return false;
- // Hide the current tab:
- x[currentTab].style.display = "none";
- // Increase or decrease the current tab by 1:
- currentTab = currentTab + n;
- // if you have reached the end of the form...
- if (currentTab >= x.length) {
- // ... the form gets submitted:
- document.getElementById("regForm").submit();
- return false;
- }
- // Otherwise, display the correct tab:
- showTab(currentTab);
- }
- function validateForm() {
- // This function deals with validation of the form fields
- var x, y, i, valid = true;
- x = document.getElementsByClassName("tab");
- y = x[currentTab].getElementsByTagName("input");
- // A loop that checks every input field in the current tab:
- for (i = 0; i < y.length; i++) {
- // If a field is empty...
- if (y[i].value == "") {
- // add an "invalid" class to the field:
- y[i].className += " invalid";
- // and set the current valid status to false
- valid = false;
- }
- }
- // If the valid status is true, mark the step as finished and valid:
- if (valid) {
- document.getElementsByClassName("step")[currentTab].className += " finish";
- }
- return valid; // return the valid status
- }
- function fixStepIndicator(n) {
- // This function removes the "active" class of all steps...
- var i, x = document.getElementsByClassName("step");
- for (i = 0; i < x.length; i++) {
- x[i].className = x[i].className.replace(" active", "");
- }
- //... and adds the "active" class on the current step:
- x[n].className += " active";
- }
- </script>
- <?php
- require('includes/db_connect.php');
- if (isset($_POST['submit'])) {
- $matric=$_POST["matric"];
- $name=$_POST["name"];
- $email=$_POST["email"];
- $semester=$_POST["semester"];
- $inasis=$_POST["inasis"];
- $phone=$_POST["phone"];
- $username=$_POST['username'];
- $pass=$_POST["password"];
- $password = password_hash("$pass" , PASSWORD_DEFAULT);
- $regdate=date("Y-m-d h:i:sa");
- $role="member";
- $image = $_FILES['image']['name'];
- $ext = $_FILES['image']['type'];
- $validExt = array ("image/gif", "image/jpeg", "image/pjpeg", "image/png");
- if (empty($image)) {
- echo "<script>alert('Attach an image');</script>";
- }elseif ($_FILES['image']['size'] <= 0 || $_FILES['image']['size'] > 1024000 ){
- echo "<script>alert('Image size is not proper');</script>";
- }elseif (!in_array($ext, $validExt)){
- echo "<script>alert('Not a valid image');</script>";
- }else{
- $folder = 'pictures/';
- $imgext = strtolower(pathinfo($image, PATHINFO_EXTENSION) );
- $picture = rand(1000 , 1000000) .'.'.$imgext;
- if(move_uploaded_file($_FILES['image']['tmp_name'], $folder.$picture)) {
- $sql="INSERT INTO members VALUES ('$matric', '$name', '$email', '$semester', '$inasis', '$phone', '$username', '$password', '$picture', '$role', '$regdate')";
- $result=mysqli_query($conn,$sql);
- if ($result) {
- echo "<script> alert('You are registered successfully.');
- window.location.href='index.php';</script>";
- }
- else {
- echo "<script> alert('Error ..try again');</script>";
- }
- }
- }
- }
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement