dongyuan7981 2017-06-16 07:29
浏览 86

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

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();

    ?>
  • 写回答

2条回答 默认 最新

  • douluanzhao6689 2017-06-16 07:45
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算