繁体   English   中英

无法将表单提交到数据库

[英]Cannot submit form to database

我正在尝试创建一个简单的表单,使用户可以将数据提交到我的数据库中。 但是数据库中没有任何记录。 我不知道我的代码有什么问题。 我通读了多个问题,但似乎没有任何解决方案,我尝试使用不同的方法,但这只是行不通。 它可以很好地连接到数据库,但是当我提交代码时数据库中什么也没有出现。这是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>

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

}
?>

在查询之前执行此操作

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

我所做的被称为$conn = Connect(); 在查询之前起作用。

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

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

您创建了connect函数,但是在执行查询时忘记了调用它。 尝试

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

在您的代码中,您需要解决许多问题。

第一个您没有启动连接。 为此,您需要执行以下操作。

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

}
?>

现在已经不复存在了,您需要在sql中删除使用变量,这会向SQL注入漏洞打开代码。 在mysqli_上开始使用预备语句似乎是在开始编码,因此更好地养成使用预备语句保护数据的习惯。

也可以看看PDO快速清洁和可爱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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