簡體   English   中英

如何讓我的注冊表單頁面與 php 一起使用?

[英]How can i get my registration form page to work with php?

請我對網站開發有點陌生。 我嘗試創建一個注冊頁面來使用我的數據庫,但我的注冊表單頁面沒有響應 php 編碼頁面。 我需要你的幫助。 感謝

這是我的注冊。html 頁面我不知道錯誤是否來自我的注冊表單頁面

<form action="student.php" name="register" id="register" method="POST" data-aos="fade">
              <div class="form-group row">
                <div class="col-md-6 mb-3 mb-lg-0">
                  <input type="text" name="firstname" id="firstname" class="form-control" placeholder="First name" required>
                </div>
                <div class="col-md-6">
                  <input type="text" name="lastname" id="lastname" class="form-control" placeholder="Last name" required>
                </div>
              </div>

              <div class="form-group row">
                <div class="col-md-12">
                  <input type="text" name="studentid" id="studentid" class="form-control" placeholder="Student ID" value="" required>
                </div>
              </div>
             <div class="form-group row">
                <div class="col-md-12">
                  <input type="text" name="level" class="form-control" placeholder="Level" required>
                </div>
              </div>
             <div class="form-group row">
                <div class="col-md-12">
                <p class="mb-0">Gender</p>
                     <input name="gender" type="radio"  value="m" required> Male
                     <input name="gender" type="radio"  value="f" required> Female
                    
                </div>
              </div>
             <div class="form-group row">
                <div id="date-picker" class="col-md-12 md-form md-outline input-with-post-icon datepicker" inline="true">
                  <input type="text" name="dob" class="form-control" id="date9" placeholder="DD/MM/YYYY" required>
                  <i class="fas fa-calendar input-prefix"></i>
                </div>
              </div>
                <script>
                    $('.datepicker').datepicker({
                        inline: true;
                    });
                    </script>
                
             <div class="form-group row">
                <div class="col-md-12">
                  <input type="email" name="email" class="form-control" placeholder="Email" value="" required>
                </div>
              </div>
             <div class="form-group row">
                <div class="col-md-12">
                  <input type="phone" name="phonenumber" id="phonenumber" class="form-control" placeholder="+234 8179 5523 71" required>
                </div>
              </div>
             <div class="form-group row">
                <div class="col-md-12">
                  <input type="department" name="department" class="form-control" placeholder="Department" required>
                </div>
              </div>
             <div class="form-group row">
                <div class="col-md-12">
                  <input type="password" name="password" value=""  id="password" class="form-control" placeholder="Password" required>
                </div>
              </div>
             <div class="form-group row">
                <div class="col-md-12">
                  <input type="password" name="confirmpassword" id="confirmpassword" value="" class="form-control" placeholder="Confirm Password" required>
                </div>
              </div>
                
              <div class="form-group row">
                <div class="col-md-6">
                  
                  <input type="submit" name="submit" class="btn btn-primary py-3 px-5 btn-block btn-pill" value="SUBMIT">
                    
                </div>
              </div>

            </form>

這是我的表格 Php 頁面,或者錯誤可能來自我的 php 代碼。 請幫助發現問題的家伙。 謝謝。

<?php
session_start();

// initializing variables
$studentid = "";
$email    = "";
$errors = array(); 

// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'oneschool');

// REGISTER USER
if (isset($_POST['submit'])) {
  // receive all input values from the form
  $firstname = mysqli_real_escape_string($db, $_POST['firstname']);
  $lastname = mysqli_real_escape_string($db, $_POST['lastname']);
  $studentid = mysqli_real_escape_string($db, $_POST['studentid']);
  $level = mysqli_real_escape_string($db, $_POST['level']);
  $gender = mysqli_real_escape_string($db, $_POST['gender']);
  $dob = mysqli_real_escape_string($db, $_POST['dob']);
  $email = mysqli_real_escape_string($db, $_POST['email']);
  $phonenumber = mysqli_real_escape_string($db, $_POST['phonenumber']);
  $department = mysqli_real_escape_string($db, $_POST['department']);
  $password_1 = mysqli_real_escape_string($db, $_POST['password']);
  $password_2 = mysqli_real_escape_string($db, $_POST['confirmpassword']);

  // form validation: ensure that the form is correctly filled ...
  // by adding (array_push()) corresponding error unto $errors array
  if (empty($studentid)) { array_push($errors, "Student ID is required"); }
  if (empty($email)) { array_push($errors, "Email is required"); }
  if (empty($password_1)) { array_push($errors, "Password is required"); }
  if ($password_1 != $password_2) {
    array_push($errors, "The two passwords do not match");
  }

  // first check the database to make sure 
  // a user does not already exist with the same username and/or email
  $user_check_query = "SELECT * FROM student_registra WHERE studentid='$studentid' OR email='$email' LIMIT 1";
  $result = mysqli_query($db, $user_check_query) or die(mysqli_error($db));
  $user = mysqli_fetch_assoc($result);
  
  if ($user) { // if user exists
    if ($user['studentid'] === $studentid & $user['email'] === $email) {
      array_push($errors, "Student Id already taken");
    }

    if ($user['email'] === $email) {
      array_push($errors, "email already exists");
    }
  }

  // Finally, register user if there are no errors in the form
  if (count($errors) == 0) {
    $password = md5($password_1);//encrypt the password before saving in the database

    $query = "INSERT INTO student_registra (firstname, lastname, studentid, level, gender, dob, email, phonenumber, department, password) 
              VALUES('$firstname', '$lastname', '$studentid', '$level', '$gender', '$dob', '$email', '$phonenumber', '$department', '$password')";
    mysqli_query($db, $query);
    $_SESSION['studentid'] = $studentid;
    $_SESSION['success'] = "Registration Sucessful";
    header('location: index.html');
  }
}

我不知道問題出在哪里,因為我第一次運行它時運行它,但是當我關閉筆記本電腦並在午餐后再次打開它時,它停止工作。 與其讀取 .php 代碼,不如顯示整個 .php 代碼,我檢查了代碼,但找不到問題所在。 伙計們,我需要你的幫助來解決這個問題或發現問題。 謝謝

編輯,你有很多無用的代碼讓你的代碼很慢,比如 $_SESSION['success']; 這不是必需的,將您的 index.html 更改為 index.php 並刪除它,因為它什么都不做,您可以檢查 session 學生分配的兩個性別,您如何? 這是第一個錯誤其次,使用准備好的語句來避免 SQLI 攻擊第三個當你在 php 頁面時,你怎么 header 一個 html 頁面? 將 index.html 更改為 index.php

並改用此代碼:

 if (count($errors) == 0) {
    $password = md5($password_1);//encrypt the password before saving in the database
    $prepared = "INSERT INTO student_registra (firstname, lastname, studentid, level, gender, dob, email, phonenumber, department, password) 
              VALUES('$firstname', '$lastname', '$studentid', '$level', '$gender', '$dob', '$email', '$phonenumber', '$department', '$password')";

    $query = $prepared;
    mysqli_query($db, $query);
    $_SESSION['studentid'] = $studentid;
    # Change your files index.html To index.php
    header('location: index.php');
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM