Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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/HTML表单和数据库插入_Php_Html_Database_Forms_Mysqli - Fatal编程技术网

PHP/HTML表单和数据库插入

PHP/HTML表单和数据库插入,php,html,database,forms,mysqli,Php,Html,Database,Forms,Mysqli,首先,我要说——是的,我知道还有其他类似的链接和主题,我已经阅读了所有这些链接,并将它们合并到我的代码中。然而,我想不出来,我已经尽了我所能 基本上,我的目标是从名为socialmedia.html的html表单中获取用户输入: <html> <body> <h1> Pulse submission page </h1><br> <form action="action.php" method="post"> Title:

首先,我要说——是的,我知道还有其他类似的链接和主题,我已经阅读了所有这些链接,并将它们合并到我的代码中。然而,我想不出来,我已经尽了我所能

基本上,我的目标是从名为socialmedia.html的html表单中获取用户输入:

<html>
<body>
<h1> Pulse submission page </h1><br>
<form action="action.php" method="post">
Title: <input type="text" name="posttitle"><br><br>
Content: <input type="text" name="content"><br><br>
<input type="submit">
</form>

</body>
</html>

脉冲提交页面
标题:

内容:

然后将其发送到名为action.php的php文件:

<?php
$mysqli = new mysqli("DB HOST IP", "USER", "PASS", "DB NAME");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";



$posttitle = $_POST["posttitle"];
$content = $_POST["content"];

if(isset($_POST['submit'])){
$sql = "INSERT INTO `posts` (posttitle, content) VALUES ('$posttitle', '$content')";
echo 'post added to database';
}
if($sql){
echo 'success';
}
else{
echo 'failure';
}

$sql = "SELECT * FROM `posts`";

$res = $mysqli->query($sql);

if($res->num_rows > 0){
 while($row = $res->fetch_assoc()){
 echo "ID". $row["id"]. "<br/>";
 echo "Title". $row["posttitle"]. "<br/>";
 echo "Content". $row["content"]. "<br/>";
 }
}
else
{
 echo "No Record Found!";
}
?>

让您开始的几件事
1) 传递后缺少报价

 mysqli("DB HOST IP", "USER", "PASS, "DB NAME");
2) 您没有执行插入查询,缺少$mysqli->query($sql)

试试这个

if(isset($_POST['submit'])){
   $sql = "INSERT INTO `posts` (posttitle, content) VALUES ('$posttitle', '$content')";
   $save = $mysqli->query($sql);

    if($save)
        echo 'success';
    else
        echo 'failure';
}

您必须将提交按钮的名称指定为

输入type=“submit”name=“submit”


这就是那行代码:$mysqli=newmysqli(“DB主机IP”、“用户”、“密码”、“DB名称”);
您的代码中是否存在?@AlonEitan不,我只是取出了我的信息,这是一个实际的IP,但不是localhostYes,但是您也忘记关闭代码中的密码字符串了吗?您的脚本有可能看一看使用时发生了什么。@AlonEitan不,对不起,我在更改此处的值时没有将其编辑错误,我只是输入了这个装备$sql=…语句后的ht,但仍然为空,所以$U POST['submit']这是不存在的,因为您的提交按钮没有名称。不客气,这是小事情导致了我们无法看到的大问题。这是正确的答案,但如果OP不想获得他们的网站,则必须进行调查hacked@AlonEitan谢谢。是的,你是对的,必须从sql注入的安全。而这段代码可能会回答该问题提供了关于该代码为什么和/或如何回答该问题的附加上下文,从而提高了其长期价值。
if(isset($_POST['submit'])){
   $sql = "INSERT INTO `posts` (posttitle, content) VALUES ('$posttitle', '$content')";
   $save = $mysqli->query($sql);

    if($save)
        echo 'success';
    else
        echo 'failure';
}
"INSERT INTO  posts (posttitle, content) VALUES ('$posttitle', '$content')"