Я делал очень простую систему комментариев php, где пользователь просто вводит комментарий и появляется на сайте. Однако я понял, что последний комментарий будет продолжаться, пользователь обновил страницу.Комментировать система reposting comment на странице reload
Я полагал, что это как-то связано с циклом while в функции getComments, но я пробовал заголовок («Location: index.php»), и у него была другая ошибка, поэтому у меня действительно нет идей.
index.php:
<?php
date_default_timezone_set('Europe/Bucharest');
include 'dbh.inc.php';
include 'comments.inc.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<?php
echo "<form method='POST' action='".setComments($conn)."'>
<input type='hidden' name='uid' value='Anonymous'>
<input type='hidden' name='date' value='".date('d-m-Y H:i:s')."'>
<textarea name='message'></textarea><br/>
<button type='submit' name='commentSubmit'>Comment</button>
</form>";
getComments($conn);
?>
</body>
</html>
Comments.inc.php:
<?php
function setComments($conn)
{
if (isset($_POST['commentSubmit']))
{
$uid = $_POST['uid'];
$date = $_POST['date'];
$message = $_POST['message'];
$sql = "INSERT INTO comments (uid, date, message) VALUES ('$uid','$date','$message')";
$result = mysqli_query($conn,$sql);
}
}
function getComments($conn)
{
$sql = "SELECT * FROM comments";
$result = mysqli_query($conn,$sql);
while($row =$result->fetch_assoc())
{
echo "<div class='comment-box'><p>";
echo $row['uid']." ";
echo $row['date']."<br>";
echo nl2br($row['message']);
echo "</p></div>";
}
}
dbh.inc.php
<?php
$conn = mysqli_connect('localhost', 'root', '' , 'commentsection');
Любая обратная связь очень ценится.
Обновление обновляет форму. Взгляните на http://stackoverflow.com/questions/6320113/how-to-prevent-form-resubmission-when-page-is-refreshed-via-php. Вы также открыты для инъекций SQL. Используйте параметризованные запросы. – chris85
Прежде чем исправить эту проблему, ваш код не имеет смысла. Нет никакой возможной причины, по которой у вас будет 'action' быть concat для функции, которая добавляет что-то в базу данных и ничего не возвращает. –
Как мне это сделать? –