【发布时间】:2017-03-19 20:50:40
【问题描述】:
我有一个带有五个输入的 html 表单,命名为标题、发布日期、内容、标签和提交。我想将输入存储在 php 文件中的变量中,然后将它们发布到 mysql 数据库。我正在使用 PHPstorm,当我将鼠标悬停在 $_POST 上时,它说参考错误: $_POST 未定义。如何修复此参考错误?这就是它不提交到数据库的原因吗?
我的html表单:
<div class="section" id="home">
<form action="insert.php" method="post">
<fieldset>
<legend>Title</legend>
<input id="title" name="title" placeholder="Title" type="text"/>
<input id="dateposted" type="text" placeholder="mm-dd-yyyy" name="dateposted"/>
</fieldset>
<fieldset>
<label>Content</label>
<textarea id="content" placeholder="content" name="content"> </textarea>
</fieldset>
<fieldset>
<label>Tags</label>
<input id="tags" type="text" placeholder="tags" name="tags"/>
</fieldset>
<fieldset>
<input id="submit" type="submit" value="Submit" name="Submit"/>
</fieldset>
</form>
</div>
PHP 代码:
<?php
error_reporting(E_ALL);ini_set("display_error",true);
define('DB_NAME', 'blog_posts');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
$db_selected = mysqli_select_db($link, DB_NAME);
if (!$db_selected) {
die('Can\'t use ' . DB_NAME . ': ' . mysqli_error($link));
}
//echo 'Connected successfully';
if(isset($_POST['Submit'])) {
$title = $_POST['title'];
$dateposted = $_POST['dateposted'];
$content = $_POST['content'];
$tags = $_POST['tags'];
$sqli = "INSERT INTO posts
("title", "dateposted", "content", "tags")
VALUES
('$title','$dateposted', '$content', '$tags')";
if (!mysqli_query($link, $sqli)) {
die('Error: ' . mysqli_error($link));
}
}
mysqli_close($link);
【问题讨论】:
-
通知在
insert.php,这里的代码是insert.php?您对使用此代码的 SQL 注入持开放态度,并且在列上使用了错误的封装,它应该是反引号。 -
好的,所以我添加了反引号。 $_POST 仍然显示 ReferenceError
-
ReferenceError听起来像是浏览器/控制台通知。您可以发布文字错误吗?我以为你收到了关于索引的 PHP 通知。 -
当您将鼠标悬停在“$_POST”上时,它在 phpstorm 中。不过,我似乎无法获得它的屏幕截图。
-
这里是关于勾号和反勾号superuser.com/questions/254076/…