我爲我的社交媒體開發評論系統,但即使它是空的,也會將註釋插入到數據庫中。因此,如果註釋字段爲空,我不想發生任何事情,我不想回顯任何消息或提交評論。防止提交輸入字段爲空
這是我的代碼
<?php
// Get id of post
if(isset($_GET['post_id'])) {
$post_id = $_GET['post_id'];
}
$user_query = mysqli_query($con, "SELECT added_by, user_to FROM posts
WHERE id='post_id'");
$row = mysqli_fetch_array($user_query);
$posted_to = $row['added_by'];
$user_to = $row['user_to'];
if(isset($_POST['postComment' . $post_id])) {
$post_body = $_POST['post_body'];
$post_body = mysqli_escape_string($con, $post_body);
$date_time_now = date("Y-m-d H:i:s");
$insert_post = mysqli_query($con, "INSERT INTO comments VALUES ('',
'$post_body', '$userLoggedIn', '$posted_to', '$date_time_now', 'no',
'$post_id')");
if($posted_to != $userLoggedIn) {
$notification = new Notification($con, $userLoggedIn);
$notification->insertNotification($post_id, $posted_to, "comment");
}
if($user_to != 'none' && $user_to != $userLoggedIn) {
$notification = new Notification($con, $userLoggedIn);
$notification->insertNotification($post_id, $user_to,
"profile_comment");
}
$get_commenters = mysqli_query($con, "SELECT * FROM comments WHERE
post_id='$post_id'");
$notified_users = array();
while($row = mysqli_fetch_array($get_commenters)) {
if($row['posted_by'] != $posted_to && $row['posted_by'] != $user_to
&& $row['posted_by'] != $userLoggedIn &&
!in_array($row['posted_by'], $notified_users)) {
$notification = new Notification($con, $userLoggedIn);
$notification->insertNotification($post_id, $row['posted_by'],
"comment_non_owner");
array_push($notified_users, $row['posted_by']);
}
}
echo "<p>Comment Posted! </p>";
}
?>
<form action="comment_frame.php?post_id=<?php echo $post_id; ?>"
id="comment_form" name="postComment<?php echo $post_id; ?>"
method="POST">
<textarea name="post_body" placeholder="Add a comment"></textarea>
<input type="submit" name="postComment<?php echo $post_id; ?>"
value="Comment">
</form>
<!-- Load Comments -->
<?php
$get_comments = mysqli_query($con, "SELECT * FROM comments WHERE
post_id='$post_id' ORDER BY id ASC");
$count = mysqli_num_rows($get_comments);
if ($count != 0) {
while($comment = mysqli_fetch_array($get_comments)) {
$comment_body = $comment['post_body'];
$posted_to = $comment['posted_to'];
$posted_by = $comment['posted_by'];
$date_added = $comment['date_added'];
$removed = $comment['removed'];
//Timeframe
$date_time_now = date("Y-m-d H:i:s");
$start_date = new DateTime($date_added); // Time of Post
$end_date = new DateTime($date_time_now); // Current time
$interval = $start_date->diff($end_date); // Difference between
dates
if($interval->y >= 1) {
if($interval == 1)
$time_message = $interval->y . " year ago"; // 1 year ago
else
$time_message = $interval->y . " years ago"; // 1+ year ago
}
else if ($interval-> m >= 1) {
if($interval->d == 0) {
$days = " ago";
}
else if($interval->d == 1) {
$days = $interval->d . " days ago";
}
else {
$days = $interval->d . " days ago";
}
if($interval->m == 1) {
$time_message = $interval->m . " month". $days;
}
else {
$time_message = $interval->m . " months". $days;
}
}
else if($interval->d >=1) {
if($interval->d == 1) {
$time_message = "Yesterday";
}
else {
$time_message = $interval->d . " days ago";
}
}
else if($interval->h >= 1) {
if($interval->h == 1) {
$time_message = $interval->h . " hour ago";
}
else {
$time_message = $interval->h . " hours ago";
}
}
else if($interval->i >= 1) {
if($interval->i == 1) {
$time_message = $interval->i . " minute ago";
}
else {
$time_message = $interval->i . " minutes ago";
}
}
else {
if($interval->s < 30) {
$time_message = "Just now";
}
else {
$time_message = $interval->s . " seconds ago";
}
}
$user_obj = new User($con, $posted_by);
?>
<div class="comment_section">
<a href="<?php echo $posted_by?>" target="_parent"><img src="<?php
echo $user_obj->getProfilePic(); ?>" title="<?php echo $posted_by;
?>" style="float:left;" height="30"></a>
<a href="<?php echo $posted_by?>" target="_parent"> <b><?php echo
$user_obj->getFirstAndLastName(); ?> </b> </a>
<?php echo $time_message . "<br>" .
$comment_body; ?>
<hr>
</div>
<?php
}
}
else {
echo "<center><br><br>No comments to show</center>";
}
?>
</body>
</html>
的可能的複製[如何防止提交HTML表單的輸入字段值是否爲空(https://stackoverflow.com/a/8029581/6521116) –
只是檢查評論在插入到數據庫之前,字段值爲空或不是。如果它在那裏,那麼插入,否則什麼也不做。 –
考慮到您已經在整個代碼中進行條件檢查,因爲它只是需要編寫一個if語句來檢查輸入是否爲空。如果沒有,繼續。如果是這樣,請不要繼續。實際上,我很驚訝你寫了這段代碼,如果輸入是空的,還是不得不詢問是否讓表單提交。 –