Saint
Saint

Reputation: 170

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);

}
?>

Upvotes: 2

Views: 94

Answers (6)

S4NDM4N
S4NDM4N

Reputation: 924

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.

Upvotes: 0

Sunil Rajput
Sunil Rajput

Reputation: 980

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);

    }
    ?>

Upvotes: 0

yanguya995
yanguya995

Reputation: 143

just before your $querye=.......... write $conn = connect();

Upvotes: 0

Regolith
Regolith

Reputation: 2971

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.

Upvotes: 3

FRED WILLIAMS ASSAMOI
FRED WILLIAMS ASSAMOI

Reputation: 96

You don't call the Connect() function in your code.

Upvotes: 0

caryarit ferrer
caryarit ferrer

Reputation: 326

make sure $conn is not empty, you are not calling the connect function

Upvotes: 0

Related Questions