所以这是我的困境,我一直在审查并试图在过去几天突破。我已经创建了一个基本的登录/注册PHP系统,它工作正常。我已经实现了一个显示帖子的博客系统。我写了一个添加帖子函数,它不会发布到数据库,也不会返回错误函数。
我真的不明白,因为我的注册系统工作并添加新用户,但“添加博客帖子”什么都不做。我可以从数据库添加,它显示正常,但没有在这里。
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
if (isset($_SESSION['id'])) {
$userId = $_SESSION['id'];
$username = $_SESSION['username'];
} else {
header('Location: login.php');
die();
}
if ($_POST['submit']) {
$title = strip_tags($_POST['title']);
$subtitle = strip_tags($_POST['subtitle']);
$content = strip_tags($_POST['content']);
mysqli_query($dbCon, $userREQ3);
$userREQ3 = " INSERT INTO `logindb`.`blog`
(`title`, `subtitle`, `content`) VALUES ('$title','$subtitle','$content')";
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Welcome, <?php echo $username; ?>, You are logged in. Your user id is <?php echo $userId; ?>.
<a href="index.php">Index</a>
<form action="logout.php">
<input type="submit" value="Log me out!">
</form>
<form method="post" action="admin.php">
Title: <input type="text" name="title"/><br>
Subtitle: <input type="text" name="subtitle"/><br>
<br>
<br>
Content: <textarea name="content"></textarea>
<input type="submit" value="Write Post"/>
</form>
</body>
</html>
答案 0 :(得分:3)
您的代码失败有两个原因。
mysqli_query()
)&#34; 位于&#34;值并执行mysqli_query($dbCon, $userREQ3) or die(mysqli_error($dbCon));
旁注:将if ($_POST['submit']) {
改为if (isset($_POST['submit'])) {
它会更好。
和<input type="submit" value="Write Post"/>
到<input type="submit" name="submit" value="Write Post"/>
SQL注入:
您目前的代码向SQL injection开放。使用mysqli
with prepared statements或PDO with prepared statements。
此外,代码正文中有变量,这可能会在初始页面加载时抛出未定义的变量x。
如上所述(在下面的评论中):确保您已连接到数据库并使用mysqli方法而不是其他API。
不同的MySQL API不会相互混合。从连接到查询使用相同的MySQL API。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
是否成功查询:
要查看查询是否确实成功或失败,请检查错误并使用affected_rows
。
参考文献:
PHP不在mySQL数据库中插入内容:文字,图片,任何内容
如果您尝试使用图片,则需要在表单标记中包含有效的enctype。
取决于您想要为图像插入的方式/内容,这可能是一个因素。
如果您想要将图像作为路径插入是一回事,而是使用它&#34;作为图像&#34;,则说BLOB然后在大小上有限制;使用LONGBLOB,您必须在进入数据库之前转义该数据。
请教:
答案 1 :(得分:0)
首先尝试生成查询,然后执行...
$userREQ3 = " INSERT INTO `logindb`.`blog`
(`title`, `subtitle`, `content`) VALUES ('$title', '$subtitle','$content')";
mysqli_query($dbCon, $userREQ3);