gpt4 book ai didi

PHP 不在 mySQL 数据库中插入内容 : Text, 图像,任何东西

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:05 26 4
gpt4 key购买 nike

所以这就是我最近几天一直在回顾并试图突破的困境。我已经创建了一个基本的登录/注册 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>

最佳答案

您的代码失败有两个原因。

  • 您的条件语句正在寻找名为“submit”的命名元素
  • 您正试图在语句之前执行。将您的查询 ( mysqli_query() )“低于”值并执行 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 注入(inject):

您现在的密码是开放给SQL injection .使用 mysqli with prepared statements , 或 PDO with prepared statements .

此外,您的代码主体中有变量,这可能会在初始页面加载时抛出 undefined variable 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 Not Inserting Content in mySQL Database: Text, Images, Anything

如果您尝试使用图像,则需要在表单标签中包含有效的 enctype。

取决于您想为图像插入的方式/内容,这可能是一个因素。

如果您想将图像作为路径插入是一回事,但将其“作为图像”使用,比如 BLOB,那么这在大小上有限制;使用 LONGBLOB 并且您必须在进入数据库之前转义该数据。

咨询:

关于PHP 不在 mySQL 数据库中插入内容 : Text, 图像,任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31088911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com