【问题标题】:Why my form data not insert into my database without using input type="hidden"?为什么不使用 input type="hidden" 我的表单数据不能插入到我的数据库中?
【发布时间】:2018-06-12 20:03:11
【问题描述】:

这是我的数据库连接、表单页面、一致性页面。我将尝试在不使用任何形式的情况下将数据插入数据库。有人请检查我的代码。

db.php

<?php
$connect=mysqli_connect("localhost", "root", "", "test_form");
if(!$connect){
    die('Can not connect:'.mysqli_error());
}
else{
    echo "Connect";
}

?>

index.php

<?php
include_once 'db.php';
?>

<form action="process.php" method="post">
    <input type="text" name="f-name" placeholder="f-name"><br><br>
    <input type="text" name="l-name" placeholder="l-name"><br><br>
    <input type="text" name="bday" placeholder="bday"><br><br>
    <input type="text" name="school" placeholder="school"><br><br>
    <label><input type="radio" name="gender" value="m">Male</label>
    <label><input type="radio" name="gender" value="f">Female</label><br><br>
    <textarea name="hobby"></textarea><br><br>
    <input type="submit" value="Submit">
</form>

所有数据都显示在 process.php 页面中,但在此页面中单击 Save btn,它不会插入到数据库中。

process.php

<?php
include_once 'db.php';
?>

<?php
$fname=$_POST['f-name'];
$lname=$_POST['l-name'];
$bday=$_POST['bday'];
$school=$_POST['school'];
$gender=$_POST['gender'];
$hobby=$_POST['hobby'];

echo "$fname"."<br>";
echo "$lname"."<br>";
echo "$bday"."<br>";
echo "$school"."<br>";
echo "$gender"."<br>";
echo "$hobby"."<br>";
?>
<button name="Sava" type="button" value="Save">Save</button>
<?php
if(isset($_REQUEST['save'])){
    $sql="INSERT INTO test_table(f_name, l_name, b_day, school, gender, hobby) VALUES ('$fname', '$lname', '$bday', '$school', '$gender', '$hobby')";
}

$query=mysqli_query($connect, $sql);
if($query){
    $msg="Successfully Inserted...";
}else{
    $msg="Not Inserted...";
}
?>
<h1><?php echo $msg; ?></h1>

【问题讨论】:

  • 为什么在提交表单后使用按钮。 ?您是否试图让用户查看他们的详细信息?如果不是这种情况,您可以直接使用发布变量来验证数据库值。

标签: php mysql web mysqli


【解决方案1】:

单击“保存”按钮后,您的页面不会重新加载。没有表单或 JavaScript 可以做到这一点。

但是,即使您设法重新加载页面,您表单中以前的 $_POST 对重新加载的页面也不再有效。

另外,你有一个错字:

if(isset($_REQUEST['save'])){ ...

但是

<button name="Sava" type="button" value="Save">Save</button>

save 应该是Sava

【讨论】:

    【解决方案2】:

    您可以通过检查isset($_POST['submit'])插入

    或使用isset($_POST['what_ever_submit_button'])

    <?php
    include_once 'db.php';
    ?>
    
    <?php
    $fname=$_POST['f-name'];
    $lname=$_POST['l-name'];
    //$_POST['submit'];
    
    echo "$fname"."<br>";
    echo "$lname"."<br>";
    if(isset($_POST['submit'])){
        $sql="INSERT INTO test_table(f_name, l_name) VALUES ('$fname', '$lname')";
    }
    
    $query=mysqli_query($connect, $sql);
    if($query){
        $msg="Successfully Inserted...";
    }else{
        $msg="Not Inserted...";
    }
    ?>
    <h1><?php echo $msg; ?></h1>
    

    【讨论】:

      猜你喜欢
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多