繁体   English   中英

表单中的数据不会传递到MySQL数据库中

[英]Data from a form won't pass into MySQL database

我已经成功地使用各种在线教程创建了一个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());
}

然后这是用户的表单,一旦登录,就可以向他们的帐户添加新设备(跟踪器):

<?php
  require "header.php";
 ?>

<main>
  <?php
    if (isset($_SESSION['userId'])) {
      echo '<form action="includes/logout.inc.php" method="post">
        <button type="submit" name="logout-submit">Log Out</button>
      </form>';

      echo '<form action="includes/trackerSub.inc.php" method="post">
              <input type="text" name="trackeruid" placeholder="Tracker Name...">
              <input type="text" name="trackerType" placeholder="Tracker Type...">
              <button type="submit" name="tracker-submit">Submit</button>
            </form>';
    }
    else {
      echo '<form action="includes/login.inc.php" method="post">
        <input type="text" name="mailuid" placeholder="Username/E-mail...">
        <input type="password" name="pwd" placeholder="Password...">
        <button type="submit" name="login-submit">Login</button>
      </form>
      <a href="signup.php">Sign Up</a>';
    }
   ?>
</main>


 <?php
   require "footer.php"
  ?>

在require header.php中,我保留了session_start():

<?php
  session_start();
 ?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Mother Bird</title>
  <link rel="stylesheet" href="master.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>

最后在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();
}

phpMyAdmin中的跟踪器表看起来像这样

用户表

任何帮助都会非常感激,正如我之前所说,我是PHP和MySQL的新手,我花了两天时间试图解决这些问题并进行研究,但我不知道哪里出错了。

非常感谢,Madamot

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

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

暂无
暂无

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

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