Je développe un système de commentaire pour mes médias sociaux, mais les commentaires sont insérés dans la base de données même si elle est vide. Donc je ne veux rien faire si le champ commentaire est vide, je ne veux pas n'importe quel message ou en soumettant le commentaire.Empêcher de soumettre si le champ de saisie est vide
C'est mon code
<?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>
double possible de [Comment éviter de soumettre la valeur de champ de saisie de formulaire HTML si elle vide] (https://stackoverflow.com/a/8029581/6521116) –
il suffit de cocher le commentaire La valeur du champ est vide ou non avant l'insertion dans DB. si c'est là alors insérez sinon ne faites rien. –
Considérant que vous faites déjà une vérification conditionnelle dans votre code tel qu'il est ... il vous suffit d'écrire une instruction if qui vérifie que cette entrée est vide. Sinon, continuez. Si oui, ne poursuivez pas. Sincèrement, je suis étonné que vous ayez écrit ce code et que vous deviez vous enquérir de ne pas laisser le formulaire soumettre si l'entrée est vide. –