PHP表单未发布到MySQL数据库

PHP表单未发布到MySQL数据库,php,mysql,database,forms,Php,Mysql,Database,Forms,我正在为我的雇主创建一个新的预订系统,在这个系统中填写一个表单,数据进入一个预构建的MySQL数据库 我真的不确定我做错了什么。最初,数据不会发布到数据库中,但表单似乎已提交。现在,表单只提交到一个白色页面。我将在下面提交完整的代码,因为那里没有压缩数据,希望有人能够提供帮助 <head> <title>&nbsp;&nbsp;Moat Laptop Bookinge&nbsp;&nbsp;</title> <?php i

我正在为我的雇主创建一个新的预订系统,在这个系统中填写一个表单,数据进入一个预构建的MySQL数据库

我真的不确定我做错了什么。最初,数据不会发布到数据库中,但表单似乎已提交。现在,表单只提交到一个白色页面。我将在下面提交完整的代码,因为那里没有压缩数据,希望有人能够提供帮助

<head>
<title>&nbsp;&nbsp;Moat Laptop Bookinge&nbsp;&nbsp;</title>
<?php
if (isset($_POST['submitted'])) {

    include('booking_db.php');

    $name = $_POST['name'];
    $out = $_POST['out'];
    $in = $_POST['in'];
    $sqlinsert = "INSERT INTO Future (name, out, 'in') VALUES ('$name', '$out', '$in')";

    if (!mysqli_query ($dbcon, $sqlinsert)) {
        die('error inserting new record');
            }
            $newrecord = "Laptop has been successfully Booked!";
}
?>

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

 <script>
  $(document).ready(function() {
    $("#datepicker").datepicker();
  });
  </script>

   <script>
  $(document).ready(function() {
    $("#datepicker2").datepicker();
  });
  </script>
</head>

<body style="background-height: 100%;background-width: 100%;background: #141E30;background: -webkit-linear-gradient(to left, #141E30 , #243B55);background: linear-gradient(to left, #141E30 , #243B55);">
<div id="logo" style="font-family: Tw Cen MT; font-weight: Bold; position: fixed; color: white; left: 650px;top: 35px; font-size: 80px;text-shadow: 3px 3px #c7c7c7;">
Book a Laptop
</div>
<div id="content_box" style="background-color: white;position: fixed; left: 450px;top: 135px; width:60%; height: 70%; border-radius: 3px;">
<center>
<form method="post" action="book.php" style="font-family: Bodoni MT;">
<input type="hidden" name="submitted" value="true" />
         <br />
         <br />
         <b><legend>First Name and First Letter of Surname</legend></b>
         <input type="text" name="name" value="Ex. James T" />
         <br/>
         <br />

         <b><legend>When will you need to collect the device?</legend></b>
         <input id="datepicker2" name="out" />
         <br/>
         <br />

         <b><legend>When will you return the device?</legend></b>
         <input id="datepicker" name="in" />

         <br />
         <input type="submit" value="Confirm Booking" />



</center>
<?php
echo $newrecord
?>

</div>

</body>

护城河笔记本电脑预订

include('booking_db.php')中可能有问题。你应该提到
错误报告(E_ALL)”,然后尝试调试:

error_reporting(E_ALL);

if (isset($_POST['submitted'])) {

    var_dump(file_exists('booking_db.php')); //check if you get true or false

    require 'booking_db.php'; // Change include to required
    echo "Test"; 
    exit;
    $name = $_POST['name'];
    echo $name; // Check
    $out = $_POST['out'];
    $in = $_POST['in'];
    $sqlinsert = "INSERT INTO Future (name, out, 'in') VALUES ('$name', '$out', '$in')";

    var_dump($dbcon); // check

    if (!mysqli_query ($dbcon, $sqlinsert)) {
        die('error inserting new record');
    }
    $newrecord = "Laptop has been successfully Booked!";
}

请检查表单提交后得到的信息。

将插入查询替换为:

    INSERT INTO Future 
(`name`,`out`,`in`) VALUES ('".$name."', '".$out."', '".$in."')
if(isset($\u POST['submitted']))
with
if(isset($\u POST['Confirm Booking'))


因为你必须把提交按钮的值放在POST中,所以我的问题是

if (!mysqli_query ($dbcon, $sqlinsert)) {
        die('error inserting new record');
            }
            $newrecord = "Laptop has been successfully Booked!";
}
我把这个改成了

if (mysqli_query ($link, $sqlinsert)) {
        echo "";

} else{

echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);

}

并改变了一些变量来匹配它,它开始工作并发布到我的数据库中。感谢所有回答的人。

PHP中的“白色页面”通常表示出现错误。检查PHP日志,打开错误报告,等等。还要注意,您的代码对SQL注入非常开放,当出现SQL错误时(这在代码中很可能),您实际上不会检查错误是什么。你真的应该从一些关于使用
mysqli
PDO
的不错的教程开始。如果在web环境中编程php时遇到意外情况,首先要做的绝对是查看http服务器错误日志文件。在这里,你可以简单地阅读实际问题,而不必猜测或寻求帮助。如果不监视该日志文件,则无法在web环境中实现。这就像是蒙着眼睛在狭窄的山洞里飞行。让我困惑的是,我以前使用过这个精确的代码,而且它工作得非常好,我非常幸运,我正在自己的个人开发服务器上开发这个,因为还没有客户可以访问它@arkaschaOne总是在其他人可以访问实现之前在测试环境中开发。其他一切都会再次像闭上眼睛,试图穿过一座没有扶手的狭窄桥梁,声称“我以前也过桥,不是吗?所以我应该是安全的……”。事情不是这样做的。代码在一个系统上工作,但在另一个系统上失败的事实可能有多种原因,但经常发生。显然,总有一个特定的原因。你必须找到它。为此,你测试了一些东西。最好使用自动化测试套件。表示了解的语句。即使是这样也不安全!我被发送到一个页面,其中说明以下数组([submitted]=>true[name]=>James T[out]=>2017年3月31日[in]=>2017年4月7日)在include语句之后似乎没有打印任何内容。这意味着它无法找到文件
booking\u db.php
。您可能需要提及正确的路径。它与表单位于同一目录中,在逻辑上不需要路径。请在退出之前进行更改,如图所示。用所需的
替换
包括
。我只是把数据库连接文件放在顶部的代码中,而不是一个单独的文件,现在它说插入新记录时出错,James TNull数组([submitted]=>true[name]=>James T[out]=>2017年3月16日[in]=>2017年3月31日)James TNull插入新记录时出错