Php 来自表格的数据赢得';不能传入MySQL数据库

Php 来自表格的数据赢得';不能传入MySQL数据库,php,mysql,Php,Mysql,我已经成功地使用各种在线教程创建了一个php登录表单。但现在我希望用户能够添加一个设备到他们的帐户,如果你愿意的话,这将链接到他们的用户ID,这是给他们的网站注册 我创建了第二个表来保存设备上的数据,其中包含该设备的自动增量ID,这是主键。该表还包含另一列作为外键的用户ID。我想显示哪个用户拥有该特定设备。我是PHP和MySQL新手,我似乎无法像以前使用注册表单那样使用这个特定表单将数据提交到MySQL数据库 我将数据库详细信息保存在一个单独的文件夹中,并在需要时引用: <?php $s

我已经成功地使用各种在线教程创建了一个php登录表单。但现在我希望用户能够添加一个设备到他们的帐户,如果你愿意的话,这将链接到他们的用户ID,这是给他们的网站注册

我创建了第二个表来保存设备上的数据,其中包含该设备的自动增量ID,这是主键。该表还包含另一列作为外键的用户ID。我想显示哪个用户拥有该特定设备。我是PHP和MySQL新手,我似乎无法像以前使用注册表单那样使用这个特定表单将数据提交到MySQL数据库

我将数据库详细信息保存在一个单独的文件夹中,并在需要时引用:

<?php

$servername = "xxx";
$dBUsername = "xxx";
$dBPassword = "xxx";
$dBName = "xxx";

$conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBName);

if (!$conn) {
  die("Connection failed: ".mysqli_connect_error());
}

在require header.php中,我保留会话_start():


母鸟
最后在trackerSub.inc.php中,这是我的动作形式:

<?php

if (isset($_POST['tracker-submit'])) {

  require 'dbh.inc.php';

  $trackeruid = $_POST['trackeruid'];
  $trackerType = $_POST['trackerType'];
  $idUser = $_SESSION['userId'];

if (empty($trackeruid) || empty($trackerType)) {
  header("Location: ../dashboard.php?error=emptyfields");
}
else if (!preg_match("/^[a-zA-Z0-9]*$/", $trackeruid)) {
  header("Location: ../dashboard.php?error=invalidtrackeruid");
  exit();
}
else {
  $sql = "INSERT INTO trackers (idUsers, uidTracker, trackerType) VALUES (?, ?, ?)";
  $stmt = mysqli_stmt_init($conn);
  if (!mysqli_stmt_prepare($stmt, $sql)) {
    header("Location: ../dashboard.php?error=sqlerror");
    exit();
  }
  else {
    mysqli_stmt_bind_param($stmt, "iss", $idUser, $trackeruid, $trackerType);
    mysqli_stmt_execute($stmt);
    header("Location: ../dashboard.php?signup=success");
    exit();
  }
}
mysqli_stmt_close($stmt);
mysqli_close($conn);

}
else {
  header("Location: ../dashboard.php");
  exit();
}

试试这个让我知道它是否有效

if(isset($_POST['tracker-submit']))
 {

      require 'dbh.inc.php';

      $trackeruid = $_POST['trackeruid'];
      $trackerType = $_POST['trackerType'];
      $idUser = $_SESSION['userId'];

      if(empty($trackeruid) || empty($trackerType)) 
      {
        header("Location: ../dashboard.php?error=emptyfields");
      }
      else if(!preg_match("/^[a-zA-Z0-9]*$/", $trackeruid))
      {
        header("Location: ../dashboard.php?error=invalidtrackeruid");
        exit();
      }
      else 
      {
                 $sql = "INSERT INTO trackers (idUsers, uidTracker, trackerType) VALUES ('$idUser', '$trackeruid', '$trackerType')";
                 $res = mysqli_query($conn,$sql);
                if(!$res)
                 {
                  header("Location: ../dashboard.php?error=sqlerror");
                   exit();
                 }
              else
                {

                  header("Location: ../dashboard.php?signup=success");
                  exit();
                }
      }

      mysqli_close($conn);

}
else {
 header("Location: ../dashboard.php");
 exit();
   }

头文件中对session_start()的调用在哪里?@SpacePhoenix抱歉,我可能应该包括这一点,我已经编辑了帖子以包含header.php代码。对session_start()的调用就在文档顶部的上方。我不清楚提交表单后当前会发生什么?你登陆“trackerSub.inc.php”了吗?@tim当时什么都没有,我只想让他们提交的数据进入数据库。最后,我希望将经度和纬度数据链接到每个跟踪器,当用户登录时,这些跟踪器将使用谷歌地图API显示在下面。如果他们愿意,他们可以选择在账户中添加更多的追踪者,这就是表单的用途。显然,每个用户都会有不同的跟踪器,所以当他们登录时,我希望他们只能看到他们的跟踪器。我了解您想要什么,但我不知道您当前看到的是什么,根据您的代码,您应该从“trackerSub.inc.php”重定向到带有各种变量的do dashboard.php,你是说我没有发生吗?如果仍然不起作用,那么试着检查这些值是否从表单中成功发布。在同一页面上回显$_POST['trackeruid']、$_POST['trackerType']、$_SESSION['userId']的最佳方式。当您按$_POST['tracker-submit']检查每个值是否成功检索时。不幸的是,您的答案无效。我按照你在评论中的建议做了,POST的值是成功的:
echo$\u SESSION['userId']。“
”;如果(isset($POST['tracker-submit']){if(empty($POST['trackeruid']){echo“它是空的”;}其他{echo$POST['trackeruid']。“
”;}如果(isset($POST['tracker-submit'])){if(empty($POST['trackerType'])){echo“它是空的”;}其他{echo$['trackerType'].“
”;}}
Hmm已磨损。删除所有If条件并简单地在If(isset($\u POST['tracker-submit'])中添加插入查询,然后重试。如果插入不成功,则无法在elseif梯形图中找到值。或者存在数据库连接问题。
If(isset($\u POST['tracker-submit']){echo$_POST['trackeruid']。“
”echo$_POST['trackerType']。“
”echo$_SESSION['userId']。“
”;}
。我不认为存在连接问题,因为注册和登录表单是有效的。不,我说将insert SQL insert查询放在if(isset($POST['tracker-submit']))中,然后点击按钮。
<?php

if (isset($_POST['tracker-submit'])) {

  require 'dbh.inc.php';

  $trackeruid = $_POST['trackeruid'];
  $trackerType = $_POST['trackerType'];
  $idUser = $_SESSION['userId'];

if (empty($trackeruid) || empty($trackerType)) {
  header("Location: ../dashboard.php?error=emptyfields");
}
else if (!preg_match("/^[a-zA-Z0-9]*$/", $trackeruid)) {
  header("Location: ../dashboard.php?error=invalidtrackeruid");
  exit();
}
else {
  $sql = "INSERT INTO trackers (idUsers, uidTracker, trackerType) VALUES (?, ?, ?)";
  $stmt = mysqli_stmt_init($conn);
  if (!mysqli_stmt_prepare($stmt, $sql)) {
    header("Location: ../dashboard.php?error=sqlerror");
    exit();
  }
  else {
    mysqli_stmt_bind_param($stmt, "iss", $idUser, $trackeruid, $trackerType);
    mysqli_stmt_execute($stmt);
    header("Location: ../dashboard.php?signup=success");
    exit();
  }
}
mysqli_stmt_close($stmt);
mysqli_close($conn);

}
else {
  header("Location: ../dashboard.php");
  exit();
}
if(isset($_POST['tracker-submit']))
 {

      require 'dbh.inc.php';

      $trackeruid = $_POST['trackeruid'];
      $trackerType = $_POST['trackerType'];
      $idUser = $_SESSION['userId'];

      if(empty($trackeruid) || empty($trackerType)) 
      {
        header("Location: ../dashboard.php?error=emptyfields");
      }
      else if(!preg_match("/^[a-zA-Z0-9]*$/", $trackeruid))
      {
        header("Location: ../dashboard.php?error=invalidtrackeruid");
        exit();
      }
      else 
      {
                 $sql = "INSERT INTO trackers (idUsers, uidTracker, trackerType) VALUES ('$idUser', '$trackeruid', '$trackerType')";
                 $res = mysqli_query($conn,$sql);
                if(!$res)
                 {
                  header("Location: ../dashboard.php?error=sqlerror");
                   exit();
                 }
              else
                {

                  header("Location: ../dashboard.php?signup=success");
                  exit();
                }
      }

      mysqli_close($conn);

}
else {
 header("Location: ../dashboard.php");
 exit();
   }