MariaDB - PHP - 提交表单时未将数据插入表中

I'm very new to PHP so please bear with me. I have a registration form and I'm submitting the values entered on that form and having them inserted into a Maria Database table, but the data is not being inserted into the table.

I did a select * from profileinformation; on the table and the data isn't there.

Any help is appreciated and points will be awarded!

Here is my HTML Form:

<!DOCTYPE html>
<html>

<head>

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<title>Registration Page</title>

<script>
function validateForm() {
    var x = document.forms["myForm"]["netID"].value;
    if (x == null || x == "") {
    alert("NetID must be filled out");
    return false;
    }

    var y = document.forms["myForm"]["email"].value;
    if (y == null || y == "") {
    alert("Email must be filled out");
    return false;
    }

    var n = document.forms["myForm"]["fname"].value;
    if (n == null || n == "") {
    alert("First Name cannot be blank");
    return false;
    } else if (n.length < 2) {
        alert("First name cannot be less than 2 characters!");
        return false;
    }

    var b = document.forms["myForm"]["lname"].value;
    if (b == null || b == "") {
    alert("Last Name cannot be blank");
    return false;
    } else if (b.length < 2) {
        alert("Last Name cannot b less than 2 characters!");
        return false;

    }

}

</script>



</head>
<body>

<ul>
  <br>
  <br>
  <br>
  <br>

  <center><img src="KSUlogo.PNG" alt="logo" style="width:100px;height:50px;"></center>
  <br>
  <br>
  <br>
  <br>
  <br>
  <li><a class="active" href="Welcome.html">Home</a></li>
  <br>
  <br>
  <br>
  <br>
  <li><a href="CSERegistrationPage.html">Registration</a></li>
  <br>
  <br>
  <br>
  <br>
  <li><a href="#contact">Search</a></li>
  <br>
  <br>
  <br>
  <br>
  <li><a href="#about">About</a></li>
  <br>
  <br>
  <br>
  <br>
</ul>


<h1 style="text-align:center;">CCSE Community Profile Page</h1>

<br>
<br>
<br>
<br>
<br>


<h2 style="text-align:center;">Enter your Registration Information</h2>

<div style="text-align:center">

<form name="myForm" action="RegistrationValues.php" 
onsubmit="return validateForm()" method="post">

<center>NetID: <input type="text" name="netID"></center>
<br>
<center>Email: <input type="text" name="email"></center>
<br>
<center>First Name: <input type="text" name="fname"></center>
<br>
<center>Last Name: <input type="text" name="lname"></center>
<br>
<br>
Services You Can Provide the CSE Community</center><br>
<br>
 <input type="checkbox" name="radio" value="Java"> Java Tutoring<br>
 <input type="checkbox" name="radio" value="Computer" checked> Computer Fixing<br>
 <input type="checkbox" name="radio" value="PHP" checked> PHP Tutoring<br>
<br><br>
<select name="availabilty">
    <option value="blank"></option>
    <option value="Java">Morning</option>
    <option value="Computer">Evening</option>
    <option value="Service">Afternoon</option>
</select>
<br><br>

<center><input type="submit" value="Submit"></center>
</form>

</div>


</body>
</html>

Here is my PHP form:

<!DOCTYPE html>
<html>

<head>

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<title>Registration Page</title>

</head>

<body>

<?php include "header.html";?>
<?php include "navigation.html";?>

<div style="text-align:center">

<p>netID: <?php echo $_POST["netID"]?></p>

<p>Email: <?php echo $_POST["email"]?></p>

<p>First Name <?php echo $_POST["fname"]?></p>

<p>Last Name: <?php echo $_POST["lname"]?></p>

<?php

$netID = $email = $fname = $lname = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $netID = test_input($_POST["netID"]);
  $email = test_input($_POST["email"]);
  $fname = test_input($_POST["fname"]);
  $lname = test_input($_POST["lname"]);
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

$servername = "localhost";
$username = "user";
$password = "newpassword";
$dbname = "project";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

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

$conn->query("insert into ProfileInformation (netID, email, fname, lname, radio, availabilty) 
                values
            ( '{$_POST['netID']}', '{$_POST['email']}', '{$_POST['fname']}', '{$_POST['lname']}', '{$_POST['radio']}', '{$_POST['availabilty']}' )") or die(mysql_error());

            echo "Done!!!!";

$conn->close();
?>


</body>
</html>

Any help is appreciated and thanks in advance!

dongtang5229
dongtang5229 您可以使用json_encode将数组转换为json字符串。比你应该能够将它存储到数据库中。但这仅仅是一个如何处理这个问题的例子。出于安全原因,请勿直接在查询中使用POST变量。使用应用test_input函数后的变量。
接近 4 年之前 回复
dougu5886
dougu5886 你需要把查询放在...
接近 4 年之前 回复
dongxifu5009
dongxifu5009 现在我得到了警告:mysqli::query()期望至少有一个参数,0在第52行的C:\xampp\htdocs\IndividualProject\RegistrationValues.php中给出无效的查询:
接近 4 年之前 回复
dongxibo2095
dongxibo2095 使用if(!$conn->query()){echo“无效查询:”。$conn->error;}
接近 4 年之前 回复
dongwuwu6104
dongwuwu6104 你是对的我改变了我的变量,但数据没有插入数据库
接近 4 年之前 回复
dpc46827
dpc46827 和$conn->查询没有死...
接近 4 年之前 回复
ds2128629
ds2128629 我现在收到通知:未定义的变量:第52行的C:\xampp\htdocs\IndividualProject\RegistrationValues.php中的mysqli注意:尝试在C:\xampp\htdocs\IndividualProject\RegistrationValues.php中获取非对象的属性在52号线上
接近 4 年之前 回复
duanqiao2225
duanqiao2225 什么是收音机和可用性?看看那个输出。也许他们无法在发布时保存在数据库中。
接近 4 年之前 回复
duanpo7282
duanpo7282 你混合过程和OO样式,尝试:if($conn->connect_error){die('ConnectError('。$conn->connect_errno。')'。$conn->connect_error);}ifad(!$conn){die(“Connectionfailed:”。mysqli_connect_error());}
接近 4 年之前 回复
doujiao9866
doujiao9866 谢谢,是的,他们被显示为输出
接近 4 年之前 回复
doukesou4452
doukesou4452 if<p>netID:<?phpecho$_POST[“netID”]?></p>等..显示在输出
接近 4 年之前 回复
dotxxh0998
dotxxh0998 请解释一下印刷后的意思?
接近 4 年之前 回复
drb0901500211
drb0901500211 帖子印的是?
接近 4 年之前 回复
duanhuanzhi6431
duanhuanzhi6431 感谢您的所有帮助,但它没有将数据插入数据库。有什么想法吗?
接近 4 年之前 回复
douxiong5972
douxiong5972 顺便说一句你应该使用mysqli预处理语句,因为现在你很容易受到sql注入,而且与查询中使用post而不是test_input清理变量无关
接近 4 年之前 回复
douce1368
douce1368 我测试了表单,它的工作原理..php收到帖子,因为它shoud..所以问题可能在<?phpinclude“header.html”;?><?phpinclude“navigation.html”;?>隐藏你的回声
接近 4 年之前 回复
drq1257
drq1257 该页面不会回显任何内容。那就是问题所在。我试图添加一个屏幕截图,但我无法
接近 4 年之前 回复
douzhi4830
douzhi4830 完成!我在ValidateForm的末尾添加了returntrue
接近 4 年之前 回复
drxdn40242
drxdn40242 添加返回true;在函数validateForm的末尾
接近 4 年之前 回复
douchi2022
douchi2022 如果您可以编辑您的问题并添加您的php文件回显,除了标题和导航之外,这将会容易得多
接近 4 年之前 回复
dongzhi6146
dongzhi6146 谢谢。请帮我找到这个错误,因为我现在不知所措
接近 4 年之前 回复
doumeikuan6834
doumeikuan6834 如果问题没有解决,请查看它的回音,你会发现你的错误:)
接近 4 年之前 回复
douci2516
douci2516 不,不,谢谢。它也没有显示我从复选框和下拉菜单中选择的值。它确实显示了我在php页面的html页面上的文本框中输入的所有内容
接近 4 年之前 回复
dougan1330
dougan1330 PHP文件回显“完成”了吗?
接近 4 年之前 回复

1个回答

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die('Connect Error (' . $conn->connect_errno . ') ' . $conn->connect_error);
}

if(!$conn->query("insert into ProfileInformation (netID, email, fname, lname, radio, availabilty) 
                values
            ( '{$_POST['netID']}', '{$_POST['email']}', '{$_POST['fname']}', '{$_POST['lname']}', '{$_POST['radio']}', '{$_POST['availabilty']}' )")){
    echo "Invalid query: ".$conn->error;
}else{
    echo "Done!!!!";
}

$conn->close();
duandao2083
duandao2083 非常感谢你! 有用! 你是PHP大师!
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问