Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php表单插入但没有数据_Php_Html_Mysql_Forms - Fatal编程技术网

Php表单插入但没有数据

Php表单插入但没有数据,php,html,mysql,forms,Php,Html,Mysql,Forms,我的表单正在连接DB并插入,但它没有获取表单数据并插入空白字段 <form method="post" action="add.php"> <input type="text" name="firstname" placeholder="Firstname" id="firstname"><br><br> <input type="text" name="lastname" placeholder="Lastname" i

我的表单正在连接DB并插入,但它没有获取表单数据并插入空白字段

<form method="post" action="add.php">

    <input type="text" name="firstname" placeholder="Firstname" id="firstname"><br><br>

    <input type="text" name="lastname" placeholder="Lastname" id="lastname"><br><br>

    <input type="submit" name="submit" value="Sent">

</form>





下面是add.php脚本:

<?
mysql_connect("localhost","******","******");//database connection
mysql_select_db("testrentals");

//inserting data order
$order = "INSERT INTO customers (firstname, lastname) VALUES ('$firstname', '$lastname')";

//declare in the order variable
$result = mysql_query($order);  //order executes
if($result){
    echo("<br>Input data is workin and adding!");
} else{
    echo("<br>Input data is failing =(");
}
?>

您需要从$\u POST数组提供数据。这就是from数据在提交后的去向


您需要从
$\u POST
获取值,即
$\u POST['firstname']
。如果要直接从$\u POST中获取数据,最好在将任何内容持久化到数据库之前过滤并验证表单中的内容。

让我们将所有这些切换到PDO并正确处理。下面是add.php的外观:

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

define('USER', '*****');
define('PASS', '*****');


function dataQuery($query, $params) {
    // what kind of query is this?
    $queryType = explode(' ', $query);

    // establish database connection
    try {
        $dbh = new PDO('mysql:host=localhost;dbname=testrentals', USER, PASS);
        $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
        echo $e->getMessage();
        $errorCode = $e->getCode();
    }

    // run query
    try {
        $queryResults = $dbh->prepare($query);
        $queryResults->execute($params);
        if($queryResults != null && 'SELECT' == $queryType[0]) {
            $results = $queryResults->fetchAll(PDO::FETCH_ASSOC);
            return $results;
        }
        $queryResults = null; // first of the two steps to properly close
        $dbh = null; // second step tp close the connection
    }
    catch(PDOException $e) {
        $errorMsg = $e->getMessage();
        echo $errorMsg;
    }
}


$order = "INSERT INTO `customers` (`firstname`, `lastname`) VALUES (?,?)";
$params = array($_POST['firstname'], $_POST['lastname']);
$results = dataQuery($order, $params);

?>


详细解释了这方面的技巧。

您应该使用post变量,如

$_POST['firstname'];
$_POST['lastname'];

请它们不再得到维护,而是在使用。而是学习,并使用。在查询/连接中添加一些错误检查,例如
或die(mysql\u error())
您的代码易受SQL注入攻击!就像@JayBlanchard所说的。这纯粹是一个个人项目,不是一个出类拔萃的应用程序。没关系。现在仍然没关系。所有的东西,我是说所有的东西,都可以被黑客入侵。那么,为什么这里还没有一个绿色的黑客呢?
$_POST['firstname'];
$_POST['lastname'];