简体   繁体   中英

Cannot submit form to database

I am trying to create a simple form that will enable users submit data into my database. But nothing records in the database. I don't know what is wrong with my code. I read through various questions but I don't seem to get any solution.I tried using different methods but it just doesn't work. It connects to the database just fine but nothing appears in the database when I submit the code This is the html

<div id="table">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <form name="register" action="process.php" method="post" role="form">
                <div class="form-group">
                    <input type="text" name="firstName" class="form-control input-text" id="firstName" placeholder="Your First Name" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
                    <div class="validation"></div>
                </div>
                <div class="form-group">
                    <input type="text" name="lastName" class="form-control input-text" id="lastName" placeholder="Your Last Name" data-rule="minlen:4" data-msg="Please enter at least 4 chars" />
                    <div class="validation"></div>
                </div>
                <div class="form-group">
                    <input type="email" class="form-control input-text" name="email" id="email" placeholder="Your Email" data-rule="email" data-msg="Please enter a valid email" />
                    <div class="validation"></div>
                </div>
                <div class="form-group">
                    <input type="text" class="form-control input-text" name="phone" id="phone" placeholder="Your Phone Number" data-msg="Please enter a valid Number" />
                    <div class="validation"></div>
                </div>
                <div class="form-group">
                  <select required class="form-control" name="gender" id="gender">
                    <option value="" disabled selected>Select Gender</option>
                    <option value="male">Male</option>
                    <option value="femal">Female</option>
                  </select>
                </div>
                <div class="form-group">
                  <select required class="form-control" name="course" id="course">
                    <option value="" disabled selected hidden>Select First Course</option>
                    <option value="excel">Microsoft Excel</option>
                    <option value="web">Web Development</option>
                  </select>
                </div>
                <div class="form-group">
                  <select class="form-control" name="courses" id="courses">
                    <option value="" disabled selected hidden>Select Second Course</option>
                    <option value="micro">Microsoft Excel</option>
                    <option value="deve">Web Development</option>
                  </select>
                </div>
                <div class="form-group">
                    <input type="text" class="form-control input-text" name="occupation" id="occupation" placeholder="Occupation" data-rule="minlen:4" data-msg="Please enter at least 8 chars of subject" />
                    <div class="validation"></div>
                </div>
                <div class="form-group">
                    <textarea class="form-control textarea" rows="3" name="message" id="message" placeholder="What are your expectations for the course" data-rule="minlen:20" data-msg="Please enter at least 20 chars of subject"></textarea>
                    <div class="validation"></div>
                </div>
                <div class="form-group">
                    <span>
                        <input type="checkbox" name="checkbox" aria-label="agree" value="check">
                    </span>
                    <p>By clicking on submit, you have agreed to the <a href="terms.html">terms and conditions</a> the program</p>
                    <div class="validation"></div>
                </div>

                <div class="text-center"><button type="submit" class="input-btn" name="submit" onclick="if(!this.form.checkbox.checked){alert('You must agree to the terms first.');return false}"  />Submit</button></div>
                </div>
            </form>
        </div>
    </div>
</div>

This is the php

    <?php
    function Connect() {
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "Kpontsubless12.";
    $dbname = "register";

    $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
    return $conn;
}

// create a variable
if (isset($_POST['submit'])) { 
$firstName=$_POST['firstName'];
$lastName=$_POST['lastName'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$gender=$_POST['gender'];
$course=$_POST['course'];
$courses=$_POST['courses'];
$occupation=$_POST['occupation'];
$message=$_POST['message'];
$checkbox=$_POST['checkbox'];

$querye = ("INSERT INTO students (firstName,lastName,email,phone,gender,course,courses,occupation,message,checkbox)
             VALUES('$firstName','$lastName','$email','$phone','$gender','$course','$courses','$occupation,'$message','checkbox')");
             $sql=mysqli_query($conn,$querye);
    mysqli_close($conn);

}
?>

Do this before your query

$conn = Connect();
$querye = ("INSERT INTO students (firstName,lastName,email,phone,gender,course,courses,occupation,message,checkbox)
         VALUES('$firstName','$lastName','$email','$phone','$gender','$course','$courses','$occupation,'$message','checkbox')");
         $sql=mysqli_query($conn,$querye);

What i have done is called your $conn = Connect(); function before your query.

确保$ conn不为空,您没有调用connect函数

您不会在代码中调用Connect()函数。

you make connect function but forgot to call it when execute the query. try

       <?php
        function Connect() {
        $dbhost = "localhost";
        $dbuser = "root";
        $dbpass = "Kpontsubless12.";
        $dbname = "register";

        $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
        return $conn;
    }

    // create a variable
    if (isset($_POST['submit'])) { 
    $firstName=$_POST['firstName'];
    $lastName=$_POST['lastName'];
    $email=$_POST['email'];
    $phone=$_POST['phone'];
    $gender=$_POST['gender'];
    $course=$_POST['course'];
    $courses=$_POST['courses'];
    $occupation=$_POST['occupation'];
    $message=$_POST['message'];
    $checkbox=$_POST['checkbox'];

 $conn=connect();
    $querye = ("INSERT INTO students (firstName,lastName,email,phone,gender,course,courses,occupation,message,checkbox) VALUES('$firstName','$lastName','$email','$phone','$gender','$course','$courses','$occupation,'$message','checkbox')");
                 $sql=mysqli_query($conn,$querye);
        mysqli_close($conn);

    }
    ?>

就在您的$querye=..........$conn = connect();

In your code there many issues which you need to fix.

First one you're not initiating the connection. To do that you need to do as below.

    <?php
    function Connect() {
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "Kpontsubless12.";
    $dbname = "register";

    $conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
    return $conn;
}

// create a variable
if (isset($_POST['submit'])) { 
$firstName=$_POST['firstName'];
$lastName=$_POST['lastName'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$gender=$_POST['gender'];
$course=$_POST['course'];
$courses=$_POST['courses'];
$occupation=$_POST['occupation'];
$message=$_POST['message'];
$checkbox=$_POST['checkbox'];

$conn = Connect();

$querye = ("INSERT INTO students (firstName,lastName,email,phone,gender,course,courses,occupation,message,checkbox)
             VALUES('$firstName','$lastName','$email','$phone','$gender','$course','$courses','$occupation,'$message','checkbox')");
             $sql=mysqli_query($conn,$querye);
    mysqli_close($conn);

}
?>

Now that's out of the way, you need to drop using variables in side your sql which opens up your code to SQL injection vulnerability. Start using prepared statements with your mysqli_ seems that you're starting in coding so better get in to the habit of using prepared statements to secure your data.

Also have look at PDO quick clean and lovely.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM