PHP不会将html标记插入数据库

PHP不会将html标记插入数据库,php,Php,PHP不允许我将用户名字段插入数据库,原因如下: $username = "<a href='user.php?user=".$_SESSION['username']."'>@".$_SESSION['username']."<a>"; /* Query database to save user's post */ /* If field "repostid==0", then the post is not a repost; if the field "repo

PHP不允许我将用户名字段插入数据库,原因如下:

$username = "<a href='user.php?user=".$_SESSION['username']."'>@".$_SESSION['username']."<a>";

/* Query database to save user's post */
/* If field "repostid==0", then the post is not a repost; if the field "repostid>0", then the post is a repost with the field "repostid" linking to the id of the post to be reposted */ 
$result = mysqli_query($connection, "INSERT INTO posts (user, content, repostid, date) VALUES ('$username', '$final_repostinfo', '$_GET[postid]', '$date_string')");
if (!$result)
{
    die('Cannot query. Error: ' . mysqli_error($connection));
}

这是因为单引号。尝试:

$result = mysqli_query($connection, "INSERT INTO posts (user, content, repostid, date) VALUES ('".mysql_real_escape_string($username)."', '$final_repostinfo', '$_GET[postid]', '$date_string')");


您可以通过分离html标记来解决此问题。 我在尝试将html标记插入数据库时遇到了类似的问题。 将$username保留为$\u会话['username'],然后在需要从数据库检索值时添加html标记。 例如,我试图通过将标记输入到数据库中,而不是将其放在需要使用的地方来节省开支

我有以下PHP代码:

$image = "<img src='".$_FILES['image']['name']."' />";
$query = mysql_query("INSERT INTO news VALUES (CURRENT_DATE,'$image')");
$image = $_FILES['image']['name'];
$query = mysql_query("INSERT INTO news VALUES (CURRENT_DATE,'$image')");
我发现我应该做的是PHP代码:

$image = "<img src='".$_FILES['image']['name']."' />";
$query = mysql_query("INSERT INTO news VALUES (CURRENT_DATE,'$image')");
$image = $_FILES['image']['name'];
$query = mysql_query("INSERT INTO news VALUES (CURRENT_DATE,'$image')");
并将标记放在适当的位置:

echo "<img src='";
echo $row['images'];
echo "' />";
echo”“;
我认为您可以对代码实施类似的策略来解决问题。

注意:mySQL现在已经贬值,但您可以将此技术与它的后继者mySQLi和PDO一起使用。

不可能,伙计,您将跳过一个变量,但将
$\u GET['postid']
留在那里?逃离一切@布拉德·勒芒,这不是问题所在。我只回答了这个问题。所以你投了反对票?很好,我绝对不赞成你这么做。你的密码坏了。你知道有多少人盲目地复制/粘贴他们在堆栈溢出上看到的东西吗?他们在学校工作,教授其他人糟糕的代码,这些人继续为银行工作,这些银行出资雇佣数千名糟糕的程序员,以获得国防合同。如果发现问题,请引起注意并解决。否则,我认为你的答案是不完整的。@Brad我同意人们总是复制/粘贴坏代码。然而,这个问题专门讨论了HTML代码。我回答了这个问题。事实上,我并不担心通知他们需要正确地避开所有用户输入,这可能值得一提,但不应该投反对票。我没有提供虚假信息,正确回答了问题。这对我来说就像是在耍花招。耍花招是为了什么?你的答案是错误的,不仅仅是出于安全原因。如果有人在此处发布了错误代码,我们会否决或编辑以改进它。使用准备好的/参数化的查询来解决此问题,以及您目前可能遇到的许多其他问题。这是一项作业,因此我不能使用准备好的语句您被错误地教导。准备/参数化查询是在DB查询中使用任意数据的唯一方法。
echo "<img src='";
echo $row['images'];
echo "' />";