当用户单击表单上的提交时,将用户保持在同一页面上

Hi the following code below is my comment form. I have included this file comments.php inside my blog posts. When the user clicks submit, they are taken to the blog page rather then kept on the blog article page they are viewing.

I have used this same code for different forms throughout my website, and those pages do not redirect, but rather they stay on the same page when the user clicks submit. Which is the correct way it should be.

I am wondering why this same code on the blog page is being redirected to blog category view when user clicks submit.

How can I prevent the redirection thanks.

    <?php
    // define variables and set to empty values
    $nameErr = $emailErr = $commentErr = "";
    $name = $email = $comment = "";

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["name"])) {
    $nameErr = "First Name is required";
    } else {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Only letters and white space allowed"; 
    }
    }


    //email

    if (empty($_POST["email"])) {
    $emailErr = "Email is required";
    } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Invalid email format"; 
    }
    }


    if (empty($_POST["comment"])) {
    $comment = "";
    } else {
    $comment = test_input($_POST["comment"]);
    }
    }

    function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
    }
    ?>

    <?php 
    if (count($_POST)>0) echo "<h2>Form Submitted! Thank you <b>$name $lname</b> 
    for your comment</h2>";
    ?>

    <hr>
    <h3 style=" margin-top: 50px; ">Leave a comment</h3>
    <h6><span class="error">* All fields required.</span></h6><br /><br />

    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
    <div class="row">
    <div class="col-md-6">
    <div class="form-group">
    <input class="form-control" type="text" placeholder="Name*" name="name" value="<?php echo $name;?>" required>
    <span class="error"> <?php echo $nameErr;?></span>
    <br><br>
    </div>
    </div>
    <!--Email-->
    <div class="row">
    <div class="col-md-6">
    <div class="form-group">
    <input class="form-control" type="email" name="email" placeholder="email address*" value="<?php echo $email;?>"required>
    <span class="error"> <?php echo $emailErr;?></span>
    <br>
    </div>
    </div>
    <div class="col-md-12">
    <div class="form-group">
    <textarea class="form-control" style="margin-left: 17px;" name="comment" placeholder="Enter a comment*" rows="5" cols="40" required><?php echo $comment;?></textarea>
    <br><br>
    <div class="g-recaptcha" data-sitekey="6Lc3ZyUUAAAAAIT2Blrg4BseJK9KFc1Rx8VDVNs-"></div><br/>
    <input type="submit" name="submit" value="Submit">  

    </div>
    <hr>
    </div>
    </div>

    </form>

    <?php

    //check if the form has been submitted
    if(isset($_POST['submit'])){

/* Attempt MySQL server connection. */
    <?php include 'view/conn.php'; ?>

// Check connection
    if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
    }

    mysqli_set_charset($link, "utf8");

// Escape user inputs for security
    $Fname = mysqli_real_escape_string($link, $_REQUEST['name']);
    $Email = mysqli_real_escape_string($link, $_REQUEST['email']);
    $Message = mysqli_real_escape_string($link, $_REQUEST['comment']);

// attempt insert query execution
    $sql = "INSERT INTO comments (Name, Email, Comment, Approved) VALUES 
    ('$Fname', '$Email', '$Message', '0')";
    if(mysqli_query($link, $sql)){
    echo "<p>$Fname Your comment will appear once approved";
    } else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }

// close connection
    mysqli_close($link);
    }
    ?>

    <?PHP
    $email = $_POST["email"];
    $to = "email@email.com";
    $subject = "New Email Address for Mailing List";
    $headers = "From: $email
";
    $message = "A visitor to your site has posted a comment on a blog post that requires approval.


    Email Address: $email";
    $user = "$email";
    $usersubject = "Thank You";
    $userheaders = "From: email@email.com
";
    $usermessage = "Thank you for comment at www.oryanm.waiariki.net.nz Geyserland SBA.";
    mail($to,$subject,$message,$headers);
    mail($user,$usersubject,$usermessage,$userheaders);
    ?>

    <?php
    echo "<h2>Comments</h2>";
    <?php include 'view/conn.php'; ?>

// Check connection
    if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
    }

    $sql = "SELECT * FROM comments WHERE Approved=1 ORDER by id DESC";
    $result = mysqli_query($conn, $sql);

    if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<p><b>Comment by:</b> " . $row["Name"]. "</p>" . "<p>" . 
    $row["Comment"]. "</p> " . "<i><b>Posted:</b> " . $row["Posted"]. "</i><br>
    <hr>";
    }
    } else {
    echo "0 results";
    }
    $conn->close();

    ?>

Instead of php include, I used an iframe as a solution for this issue. Thanks for the help

pass one hidden field in your form

< input type="hidden" value="testRedirect">

and put redirect code on where you are redirect

and put redirect code on where you are redirect

if(isset($_REQUEST["hidden"]))

{

header('Location: http://www.example.com/your_form_view_page ');

exit;

}