Reputation: 170
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
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
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
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
Reputation: 326
make sure $conn is not empty, you are not calling the connect function
Upvotes: 0