【问题标题】:Values not being submitted from PHP HTML form [closed]未从 PHP HTML 表单提交的值 [关闭]
【发布时间】:2017-12-06 17:26:56
【问题描述】:

我正在尝试从用户输入的下拉菜单中获取输入并将它们提交到我的数据库中的表中。我正在尝试将值提交到此表中: 我使用 POST 来检查是否从 HTML 表单中提取了值并且它们是,但它们不会提交到我的表中。我已确保所有列名称和 HTML 表单都是正确的,为什么值不会发布到表格中?

<?php

$databaseName = 'pizza_db';
$databaseUser = 'root';
$databasePassword = 'root';
$databaseHost = '127.0.0.1';
$conn = new mysqli($databaseHost, $databaseUser, $databasePassword, $databaseName);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected sucessfully\n";

if(isset($_POST['submit'])){
$value = mysqli_real_escape_string($conn,$_POST['drink']);
$value2 = mysqli_real_escape_string($conn,$_POST['cheese']);
$value3 = mysqli_real_escape_string($conn,$_POST['veggies']);
$value4 = mysqli_real_escape_string($conn,$_POST['meat']);
$value5 = mysqli_real_escape_string($conn,$_POST['sauce']);
$value6 = mysqli_real_escape_string($conn,$_POST['crust']);
$value7 = mysqli_real_escape_string($conn,$_POST['size']);

$sql = "INSERT INTO order_info(drink,cheese,veggies,meat,sauce,crust,size) 
    VALUES('$value','$value2','$value3','$value4','$value5','$value6','$value7')";

//Here I am posting the values to check that they are being submitted 
echo $_POST["size"];
echo "\n";
echo $_POST["sauce"];
echo "\n";
echo $_POST["crust"];
echo "\n";
echo $_POST["cheese"];
echo "\n";
echo $_POST["meat"];
echo "\n";
echo $_POST["veggies"];
echo "\n";
echo $_POST["drink"];
$conn->close();
}
?>

<!DOCTYPE html>
<html>
<body>
<form action='' method='post'>

<p>Choose a size<p>
<select id="size" name="size">
  <option value="small">Small</option>
  <option value="medium">Medium</option>
  <option value="large">Large</option>
  <option value="x-large">X-large</option>
</select>

<p> Choose a sauce <p>
<select id="sauce" name="sauce">
  <option value="none">None</option>
  <option value="marinara">Marinara</option>
  <option value="alfredo">Alfredo</option>
  <option value="ranch">Ranch</option>
  <option value="bbq">BBQ</option>
</select>

<p> Choose a cheese<p>
<select id="cheese" name="cheese">
  <option value="none">None</option>
  <option value="mozzarelaa">Mozarella</option>
  <option value="cheddar">Cheddar</option>
  <option value="parmesan">Parmesan</option>
  <option value="three cheese">Three-Cheese</option>
</select>

<p> Choose a meat <p>
<select id="meat" name="meat">
  <option value="none">None</option>
  <option value="Pepperroni">Pepperroni</option>
  <option value="sausage">Sausage</option>
  <option value="bacon">Bacon</option>
  <option value="canadian bacon">Canadian Bacon</option>
  <option value="chicken">Chicken</option>
  <option value="salami">Beef</option>
  <option value="anchovies">Anchovies</option>
</select>

<p> Choose a veggies <p>
<select id="veggies" name="veggies">
  <option value="none">None</option>
  <option value="onions">Onions</option>
  <option value="green peppers">Green Peppers</option>
  <option value="Red peppers">Red peppers</option>
  <option value="Black olives">Mushrooms</option>
   <option value="jalapenos">Jalapenos</option>
    <option value="tomatoes">Tomatoes</option>
    <option value="pineapple">Pineapple</option>
</select>

<p> Choose a crust <p>
<select id="crust" name="crust">
  <option value="regular">Regular</option>
  <option value="deep-dish">Deep-dish</option>
  <option value="thin-crust">Thin Crust</option>
  <option value="stuffed crust">Stuffed Crust</option>
  <option value="gluten free">Gluten Free</option>
</select>

<p> Choose a drink <p>
<select id="drink" name="drink">
  <option value="none">None</option>
  <option value="rootbeer">Root Beer</option>
  <option value="coke">Coke</option>
  <option value="diet coke">Diet Coke</option>
  <option value="dr pepper">Dr Pepper</option>
</select>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>

【问题讨论】:

  • 你从未执行过你的 SQL 查询。
  • 修复了,忘记添加语句了。谢谢!
  • 还值得注意的是,随着您继续学习和实践,您防止 SQL 注入的尝试已被证明是不够的。我建议你看看这个:stackoverflow.com/questions/60174/…
  • 此外,您不应该在这里检查$_POST['submit'] - 我建议您改为输入隐藏的输入以进行观察。提交表单的方法有多种,您只能通过观察按钮按下来允许其中一种。
  • 会研究一下,谢谢

标签: php html forms mysqli


【解决方案1】:

好像你没有运行查询。

// sql
$sql = "INSERT INTO order_info(drink,cheese,veggies,meat,sauce,crust,size) 
VALUES('$value','$value2','$value3','$value4','$value5','$value6','$value7')";

// run query
mysqli_query($conn, $sql);

// or
$conn->query($sql);

【讨论】:

  • 或$conn-&gt;query($sql); 与其余代码保持一致。
  • 是的!那也是。
【解决方案2】:

你准备了字符串查询,但你没有执行它。

$sql = "INSERT INTO order_info(drink,cheese,veggies,meat,sauce,crust,size) 
VALUES('$value','$value2','$value3','$value4','$value5','$value6','$value7')";

// run query with below mentioned function
mysqli_query($conn, $sql);

然后检查你的桌子。您将看到保存的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2012-03-10
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多