Html/Php:echo-in-value属性仅显示字符串的第一个字符
我检索了数据库中存储在Html/Php:echo-in-value属性仅显示字符串的第一个字符,php,html,Php,Html,我检索了数据库中存储在$tab数组中的特定行的所有字段,$tab[4]对应于数据库中的字段“address”(其类型为varchar(255))。 问题是,当我在输入的“value”属性中“echo”$tab[4]时,我只得到字符串的开头 <!DOCTYPE html> <html lang="en"> <head> <title>Bootstrap Example</title> <meta charset="utf-8
$tab
数组中的特定行的所有字段,$tab[4]
对应于数据库中的字段“address”(其类型为varchar(255))。
问题是,当我在输入的“value”属性中“echo”$tab[4]
时,我只得到字符串的开头
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<?php
try
{
$bdd = new PDO('mysql:host=monsitexfqadmin.mysql.db;dbname=m...min;charset=utf8','m...min', 'mypass',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
}
catch(Exception $e)
{
die('Error : '.$e->getMessage());
}
$req = $bdd -> prepare("SELECT * FROM users2") or die(errorInfo()); //
$req->execute();
$tab=$req->fetch();
$rue=$tab[4];
echo "$ rue = ".$rue."<br>";
echo "type of $rue = ".gettype($rue)."<br>";
echo "size of $rue = ".strlen($rue)."<br>";
?>
<input type="text" value=<?php echo $rue;?>>
</body>
</html>
引导示例
您错过了值
属性周围的引号(“
)
实际上,代码的输出是:
<input type="text" value=St John Street>
…对于HTML解析器来说,这意味着St
是value
属性的值,John
和Street
是布尔属性,代码语法突出显示强调了这一点
顺便说一句,正如@cale_b和@Brad所说:你应该用---来转义你的地址。注意:这句话只有在输出内容来自用户并且没有转义的情况下才有效。你错过了值
属性周围的引号(“
)
实际上,代码的输出是:
<input type="text" value=St John Street>
。。。对于HTML解析器来说,这意味着St
是value
属性的值,John
和Street
是布尔属性,代码语法突出显示强调了这一点
顺便说一句,正如@cale_b和@Brad所说的:你应该用---来转义你的地址。注意:这句话只有在输出内容来自用户并且还没有转义的情况下才有效。请为如下字段的值属性添加双引号
<input type="text" value="<?php echo $rue; ?>" >
请为字段的值属性添加双引号,如下所示
<input type="text" value="<?php echo $rue; ?>" >
在值周围加引号:FYI,您应该注意回显PDO连接错误消息。它们通常可以包含凭据。请在以下值周围加引号:FYI,您应该注意回显PDO连接错误消息。它们通常可以包含凭据。它应该是什么样子的?这是一条评论,被认为是回答的低质量。编辑:这个评论按照他们原来的帖子更好,但显示它应该是什么样子。还有,别忘了引用使用htmlspecialchars,否则它们最终可能会出现类似
,这将打破…@Fred,我发布了几乎相同的答案。发布这类问题的答案不合适吗?@manian-您的答案展示了一个如何正确(几乎)构造标记的示例,因此答案不同。你没有得到提升/关注,因为你的答案比这个晚4分钟。它应该是什么样子?这是一个评论,被认为是一个非常低质量的答案。编辑:这个评论按照他们原来的帖子更好,但显示它应该是什么样子。还有,别忘了引用使用htmlspecialchars,否则它们最终可能会出现类似
,这将打破…@Fred,我发布了几乎相同的答案。发布这类问题的答案不合适吗?@manian-您的答案展示了一个如何正确(几乎)构造标记的示例,因此答案不同。因为你的答案比这个答案晚了4分钟,所以你没有得到提升/关注。这是唯一正确的答案。在呈现给用户之前,必须使用htmlspecialchars,否则HTML可能会中断!这是唯一正确的答案。在呈现给用户之前,必须使用htmlspecialchars,否则HTML可能会中断!这是不完整的。你有机会教,所以一定要教用户htmlspecialchars的重要性。是的@cale_b,我知道了,谢谢。我会考虑你在我以后的职位上的投入。既然Brad发布了正确的答案,我现在编辑我的答案可以吗?当然可以!请随时编辑您的答案,以使其更清晰/更高质量!这是不完整的。你有机会教,所以一定要教用户htmlspecialchars的重要性。是的@cale_b,我知道了,谢谢。我会考虑你在我以后的职位上的投入。既然Brad发布了正确的答案,我现在编辑我的答案可以吗?当然可以!请随时编辑您的答案,以使其更清晰/更高质量!