php - PHP echo 中的引号有问题
问题描述
我在 PHP 上的报价有问题echo
。我不确定是否是因为我使用了错误的引号/将它们放在错误的位置,或者是因为我无法将按钮值设置为我拥有的值(参见代码)。
$sql = "SELECT * FROM calender WHERE userid=?;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header ('Location: ../personalcalender.php?error=sqlerror');
exit();
}
else {
mysqli_stmt_bind_param($stmt, "s", $_SESSION['Id']);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_assoc($result)) {
echo "<center>" . $row['type'] ." ". $row['subject'] ." ". $row['message'] ." ".
"<button name='changeStatus' value=\". $row['calenderid'] .\">" . $row['mystatus'] . $row['calenderid'] . "</button>";
}
}
解决方案
保持 HTML 和 PHP 的良好分离可以防止此类问题。理想情况下,您应该将它们放在单独的文件中,但至少将您的 PHP 放在文件的顶部,并将 HTML 中的任何内容限制为仅显示。
将您的数据库结果加载到一个数组中,然后在适当的时间循环遍历它们。如果您要输出到 HTML,请始终使用htmlspecialchars()
. 请注意替代控制结构语法和短回显标记的使用。此外,1999 年打电话,他们想要他们的<center>
元素回来 ;)
<?php
$sql = "SELECT * FROM calender WHERE userid = ?";
$stmt = $conn->stmt_init();
if (!$stmt->prepare($sql)) {
header ('Location: ../personalcalender.php?error=sqlerror');
exit();
}
$stmt->bind_param("s", $_SESSION['Id']);
$stmt->execute();
$result = $stmt->get_result($stmt);
while ($row = $result->fetch_assoc()) {
$data[] = array_map('htmlspecialchars', $row);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>My page</title>
</head>
<body>
<!-- some more HTML goes here -->
<?php foreach ($data as $row):?>
<div style="text-align: center">
<?=$row['type']?> <?=$row['subject']?> <?=$row['message']?>
<button name="changeStatus" value="<?=$row['calenderid']?>">
<?=$row['mystatus']?> <?=$row['calenderid']?>
</button>
</div>
<?php endforeach;?>
<!-- some more HTML goes here -->
</body>
</html>
推荐阅读
- laravel - 类型错误:函数 createRoute() 的参数太少,传递了 0,而 RoutesController 中预期正好 3
- arrays - Swift 属性观察者:如果通过追加新数组来修改数组,为什么不对数组属性调用 didSet?
- xml - 如何用 XSLT 中的单词/字符串替换特殊字符?
- python - 如何使 FOR 循环中的 IF 在 DataFrame 上工作?Python
- php - 注册表单有效但显示错误
- sql - 优化聚合查询
- android - 退出应用程序后无法打开 Splash
- javascript - 如何定义未定义的变量?
- linux - 通过 tar 将 Yocto Project 复制到其他 PC
- kubernetes - InfluxDB 中的计量测量 - heapster