【问题标题】:forms not passing over the data to the SQL input [closed]表单未将数据传递到 SQL 输入 [关闭]
【发布时间】:2014-09-10 22:27:49
【问题描述】:

在这个输入表单中。输入没有正确转移到 sql 数据库中。 sqlAddUser.php = pastebin.com/W9BH0D3s 形式为:

<form action="sqlAddUser.php" method="post">
<div class="row">
<div class="large-12 columns">
<label>Username:
   <input type="text" placeholder="Insert Username here!" name="user"/>
  </label>
</div>
</div>
<div class="row">
<div class="large-12 columns">
  <label>Password:
    <input type="password" placeholder="Insert Password Here!" name="password" />
  </label>
  </div>
</div>
 <div class="row">
<div class="large-12 columns">
  <label>Email:
    <input type="text" placeholder="user@usermail.com" name="email" />
  </label>
</div>
</div>
<div class="row">
<div class="large-12 columns">
  <label>First Name:
    <input type="text" placeholder="Ben" name="firstName" />
  </label>
</div>
</div>
<div class="row">
<div class="large-12 columns">
  <label>Surname Name:
    <input type="text" placeholder="Brown" name="surname" />
  </label>
 </div>
 </div>
 <input type="submit">
 </form>

然后,当运行我的 INSERT INTO 脚本时,不会将任何内容添加到数据库中。

【问题讨论】:

  • 你是如何得到变量的?显示来自 sqlAddUser.php 的代码
  • 如果你在 sqlAddUser.php 上使用 var_dump($_POST) 你会看到什么?
  • pastebin.com/W9BH0D3s 是代码。并且 var_dump 给出 array(0) {}
  • 所以,问题不在于问题中发布的表单代码;问题出在处理$_POST 数组的代码中,这不在问题中,但可以在作为评论提供的链接中找到。那么,为什么所有这些表单代码都需要出现在问题中?

标签: php html mysql forms


【解决方案1】:

您正在使用 name="user"$_POST['username'] 将其更改为 $_POST['name']
或将name="user" 更改为name="username" - 他们需要匹配。


<input type="text" placeholder="Insert Username here!" name="user"/>
                                                             ^^^^

$username = mysqli_real_escape_string($con, $_POST['username']);
                                                    ^^^^^^^^

根据您的 pastebin 文件 http://pastebin.com/W9BH0D3s 来自 your commment

<?php 

                // Create connection
        $con=mysqli_connect("*****", "******", "*****", "*****");

        // Check connection
        if (mysqli_connect_errno())
        {
                echo "Failed to connect to MySQL: " . mysqli_connect_error();
            }

    $username = mysqli_real_escape_string($con, $_POST['username']);
    $password = mysqli_real_escape_string($con, $_POST['password']);
    $email = mysqli_real_escape_string($con, $_POST['email']);
    $firstName = mysqli_real_escape_string($con, $_POST['firstName']);
    $surname = mysqli_real_escape_string($con, $_POST['surname']);

    mysqli_query($con,"INSERT INTO users (username, password, email, firstName, surname)
    VALUES ('$username', '$password', '$email', '$firstName', '$surname')");    
?>

编辑:

if(isset($_POST['submit'])){
    $con=mysqli_connect("xxx", "xxx", "xxx", "xxx");

    // Check connection
    if (mysqli_connect_errno())
    {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

if(isset($_POST['username'])){ $username = mysqli_real_escape_string($con, $_POST['username']); }
if(isset($_POST['password'])){ $password = mysqli_real_escape_string($con, $_POST['password']); }
if(isset($_POST['email'])){ $email = mysqli_real_escape_string($con, $_POST['email']); }
if(isset($_POST['firstName'])){ $firstName = mysqli_real_escape_string($con, $_POST['firstName']); }
if(isset($_POST['surname'])){ $surname = mysqli_real_escape_string($con, $_POST['surname']); }

$sql="INSERT INTO users (username, password, email, firstName, surname) VALUES ('$username', '$password', '$email', '$firstName', '$surname')"; 
if (!mysqli_query($con,$sql)){
    die('Error:' . mysqli_error($con));
}
var_dump($_POST);
echo "1 record added";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2023-03-23
    • 2019-03-17
    • 2010-11-28
    相关资源
    最近更新 更多