Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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 表格won';不要在数据库中保存任何内容_Php_Html - Fatal编程技术网

Php 表格won';不要在数据库中保存任何内容

Php 表格won';不要在数据库中保存任何内容,php,html,Php,Html,我的表单不会保存在数据库中 连接保存为con_mysql.php的代码: <?php DEFINE ('DB_HOST', 'localhost'); DEFINE ('DB_USER', 'root'); DEFINE ('DB_PSWD', '*****'); DEFINE ('DB_NAME', 'lexusdb'); $dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PSWD, DB_NAME); ?> 表格编号: <fo

我的表单不会保存在数据库中 连接保存为con_mysql.php的代码:

<?php
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PSWD', '*****');
DEFINE ('DB_NAME', 'lexusdb');

$dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PSWD, DB_NAME);
?>

表格编号:

<form method="post" action="newep.php">
<input type="hidden" name="submitted" value="true" />
<fieldset>
<legend>New Content:</legend>
<label>Name: <input type="text" name="newcontent" /></label>
</fieldset>
<br />
<input type="submit" value="add new anime" />
</form>
<?php
echo $newrecord
?>

新内容:
姓名:

PHP:


在包含打开连接的文件时,您似乎有输入错误。而不是:

include('con_mysql.php.php');
我想应该是:

include('con_mysql.php');
下一件事是检查你的$u帖子。只有具有名称的字段才会出现,因此您需要从以下位置更改条件:

if (isset($_POST['submit'])) {
致:

最后,在查询中使用未初始化的变量

因此,改变这一行:

$sqlinsert = "INSERT INTO title (title_name) VALUES ('$newcontent')";

编辑:

您的代码缺少的东西很少,但还可以,您仍在学习,而且这是一个很好的开始,从错误中学习是很好的

其中一件事,也是您错过的最重要的一件事,就是您必须防止代码中的SQL注入,即使您的代码是完美的,但是您的查询有这个问题,那么您遇到了麻烦,您如何保护您的查询?通过这种方式:

其次,我看到您正在使用MYSQLI,这是一个很好的关系数据库驱动程序,但我更希望您开始使用PDO。什么是PDO

PDO是PHP数据对象的首字母缩写。PDO是一种精简、一致的方法 访问数据库。这意味着开发人员可以编写可移植代码 容易多了。PDO不像PearDB那样是一个抽象层。PDO是一个 更像是使用统一API(应用程序)的数据访问层 编程接口)

这很简单。PDO和MYSQLI之间有什么不同

第三件事,我将从Fred的一条评论中得出,您需要开始使用错误报告,请阅读以下内容:

现在是代码

在代码中,您试图在从表单接收数据之前(提交之前)从表单回显变量,因此您应该首先发送数据并接收数据,然后对其执行任何操作

在代码中:

<?php
   echo $newrecord
?>
我希望我的回答能帮助你,记住第一部分,因为它非常重要

这是完整的代码

<html>
<head>
</head>
<body>
    <form method="post" action="">
        <input type="hidden" name="submitted" value="true" />
        <fieldset>
            <legend>New Content:</legend>
            <label>Name: 
            <input type="text" name="newcontent" /></label>
        </fieldset>
        <br />
        <input type="submit" name="submit" value="add new anime" />
    </form>
    <?php

    if (isset($_POST['submit'])) 
        {
            include_once('con_mysql.php');

            $nanime = $_POST['newcontent'];
            $sqlinsert = "INSERT INTO title (title_name) VALUES ('$nanime')";

            if (!mysqli_query($dbcon, $sqlinsert)) 
            {
                die('Error inserting new record');      
            }

            else
            {
                $newrecord = "1 anime added";
                echo $newrecord;
            }

        }

    ?>

</body>
</html>

新内容:
姓名:


哦,是的,很抱歉,我键入了新的,我真的不知道它是怎么回事,但它在我的php文件中很好,但仍然没有在数据库中保存任何内容我认为在这种情况下,require_一次或require将是正确的使用方法,而不是include一次。它仍然没有发送,对此我很抱歉,我真的很想了解phptip:对于任何用户提交的值,请使用
mysqli\u real\u escape\u字符串($conn,$userValue)远离db注入。表单是否与php文件位于同一文件中?如果不是,这就是为什么您有一个错误未定义变量的原因。除非您将php文件包含在表单filemmm中,否则“提交”按钮不会工作,如果它没有名称mmm。查询使用的是不存在的
(“$newcontent”)
,您确实创建了一个名为
$nanime=$\u POST['newcontent']的变量就在查询行上方。就像我说的,所有的都是粗心的打字错误,其他的都是错误。2个答案,基本上把大部分的评论都集中到了一个答案中,你能详细说明一下你的“试试这个”吗?这真的很有用,非常感谢。检查并投票1不是我的否决票。顺便说一句@Fred ii-有一位asnwer对此有很好的解释,他想在我添加大量内容之前先检查这个答案是否有效,比如SQL注入和其他一些东西。我会马上编辑它=)
$sqlinsert = "INSERT INTO title (title_name) VALUES ('$nanime')";
<?php
   echo $newrecord
?>
if (isset($_POST['submit'])) 
        {
            include_once('con_mysql.php');

            $nanime = $_POST['newcontent'];
            $sqlinsert = "INSERT INTO title (title_name) VALUES ('$nanime')";

            if (!mysqli_query($dbcon, $sqlinsert)) 
            {
                die('Error inserting new record');      
            }

            else
            {
                $newrecord = "1 anime added";
                echo $newrecord;
            }

        }
<html>
<head>
</head>
<body>
    <form method="post" action="">
        <input type="hidden" name="submitted" value="true" />
        <fieldset>
            <legend>New Content:</legend>
            <label>Name: 
            <input type="text" name="newcontent" /></label>
        </fieldset>
        <br />
        <input type="submit" name="submit" value="add new anime" />
    </form>
    <?php

    if (isset($_POST['submit'])) 
        {
            include_once('con_mysql.php');

            $nanime = $_POST['newcontent'];
            $sqlinsert = "INSERT INTO title (title_name) VALUES ('$nanime')";

            if (!mysqli_query($dbcon, $sqlinsert)) 
            {
                die('Error inserting new record');      
            }

            else
            {
                $newrecord = "1 anime added";
                echo $newrecord;
            }

        }

    ?>

</body>
</html>