我想将HTML代码保存到MySQL数据库中。我保存它没有问题,但我有一个字段,我想在其中加入一个值。
<input type="text" size="18" value="$user" />
当我从数据库中检索它并将其发送到浏览器时,文本字段的值不是$user
变量的值。
这是我保存的PHP代码:
function SaveHTML(){
global $cn;
$content=mysql_real_escape_string( $_POST["html"],$cn);
$url=mysql_real_escape_string("http://www.google.com/",$cn);
mysql_query("Insert into HTML(content,URL) values('$content','$url')");
}
答案 0 :(得分:3)
您必须回显该值才能显示它:
<input type="text" size="18" value="<?php echo htmlspecialchars($user, ENT_QUOTES, 'UTF-8'); ?>" />
如您所见,我还使用htmlspecialchars()
来防止XSS attacks。
另外,请不要将mysql_*
函数用于新代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法决定,this article将有助于选择。如果您想学习,here is a good PDO tutorial。
我注意到的另一件事是您使用的是global
关键字。最好将连接作为参数注入函数中:
function SaveHTML($cn){
$content=mysql_real_escape_string( $_POST["html"],$cn);
$url=mysql_real_escape_string("http://www.google.com/",$cn);
mysql_query("Insert into HTML(content,URL) values('$content','$url')");
}
编辑(死亡):
我想要的是以下内容:
假设您有一个varivle $user
和一段HTML代码,如下所示:
$html = <<<'Death'
<input type="text" size="18" value="$user" />
Death;
现在,如果我将此变量($html
)保存到数据库并在另一个页面中将此html发送给用户,我应该如何对html代码中的$user
赋值为{{ 1}}在第二页?
答案:
我将字符串(实际上)保存到数据库,然后使用$user
函数将eval()
替换为它的值!
编辑PeeHaa
请注意,在大多数案例中,在您的数据库中使用HTML被认为是不好的做法(除非您)。我对$user
的东西也不高兴(这总是不好的做法)。
答案 1 :(得分:1)
您可以使用个人标签,并在从数据库读取后用PHP变量替换该标签 像这样:
$html = '<input type="text" class="class" value="{user}">';
save $html to database
$gethtml = get $html from database ;
$last_html = str_replace('{user}',$user,$gethtml);
答案 2 :(得分:0)
您需要指定它是PHP代码。
<input type="text" size="18" value="<?php echo $user ?>" />
答案 3 :(得分:0)
如果要保存输入值,首先需要为其命名:
<input name="user" type="text" value="<?php echo $user?>" />
现在要检索它并将其保存在您的数据库中,您必须从POST变量中获取它
$content = mysql_real_escape_string($_POST['user']);
这将为您提供所需的价值。