php - 我的数据库中的评论重复,我该如何解决?
问题描述
我有一些问题,每次刷新页面时,它都会复制最后一条评论。我尝试使用重定向命令:
header("location:../../index.php");
但它给了我这个错误:
警告:无法修改标头信息 - 标头已由 /home/timpovodnik/gymshark.timpovodnik.xyz/PHP/comments.php 中的(输出开始于 /home/timpovodnik/gymshark.timpovodnik.xyz/header.php:87)发送第 9 行'。
这是我的代码:
<?php
function setComments($conn) { // Funkcija, ki jo kasneje kličem v LoseFat in GainMuscles datoteki //zraven dodamo se spremenljivko $conn, ki je iz datoteke baza.php
if(isset($_POST['commentSubmit'])) { // Če kliknemo na gumb zažene kodo
$uid = $_POST['uid'];
$date = $_POST['date'];
$message = $_POST['message'];
$sql = "INSERT INTO komentarji (uime, sporocilo, datum, uporabnik_id, program_id, objava_id) VALUES ('$uid', '$message', '$date', '1', '1', '1')";
$result = mysqli_query($conn, $sql); // IZVEDE v BAZI
header("location:../index.php");
exit();
}
}
function getComments($conn) {
$sql = "SELECT * FROM komentarji";
$result = mysqli_query($conn, $sql); // IZVEDE v BAZI
while ($row = mysqli_fetch_assoc($result)) { // da v tabelo in jo shrani v $row
echo "<div class='row'>";
echo "<div class='comment-box'>";
echo $row['uime']."<br>";
echo $row['datum']."<br>";
echo nl2br($row['sporocilo']);
echo "</div>";
echo "</div>";
}
}
?>
解决方案
我修复了它,还向它添加了 Mysqli 函数。
感谢您的所有建议。
<?php
include 'baza.php';
if(isset($_POST['commentSubmit'])) { // Če kliknemo na gumb zažene kodo
$uid = $_POST['uid'];
$date = $_POST['date'];
$message = $_POST['message'];
$sql = "INSERT INTO komentarji (uime, sporocilo, datum) VALUES (?, ?, ?);";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../loseFat.php?error=sqlerror"); // Če stavek ne dela
exit();
}
else {
mysqli_stmt_bind_param($stmt, "sss", $uid, $message, $date);
mysqli_stmt_execute($stmt); // Executa stavek v DB
header("Location: ../loseFat.php?comment=success");
exit();
}
}
function getComments($conn) {
$sql = "SELECT * FROM komentarji";
$result = mysqli_query($conn, $sql); // IZVEDE v BAZI
while ($row = mysqli_fetch_assoc($result)) { // da v tabelo in jo shrani v $row
echo "<div class='row'>";
echo "<div class='comment-box'>";
echo $row['uime']."<br>";
echo $row['datum']."<br>";
echo nl2br($row['sporocilo']);
echo "</div>";
echo "</div>";
}
}
?>