为什么当我重新加载页面时,查询再次运行,并且无法单击发布按钮插入任何数据


Why the query runs again when i reload the page and can not click on the post button to insert any data

我正在php中创建一个医学相关网站。当患者登录时,他没有发布任何内容,但他刷新了页面,查询再次检索已经插入的旧记录这是我的代码Patient_dashboard.php

<?php
session_start();
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$ufn = "";
$uln = "";
$q2 = "";
$post="";
$query;
$query2="";

$connection = mysqli_connect($dbhost, $dbuser, $dbpass);
 if(! $connection )
{
  die('Could not connect: ' . mysql_error());
}

$database = mysqli_select_db($connection,"medical_network");
if (!$database) {
    die("Database selection failed: " . mysql_error());
}

if(!isset($_SESSION['username'])) {
        header('Location: index.php');
    }
require_once("Functions/functions.php");
$posts = get_user_posts($_SESSION['id']);
$uploadDir = 'Reports Images/'; //Image Upload Folder
if(isset($_POST['submit'])&& !empty($_POST['submit'])){
        $fileName = $_FILES['image']['name'];
        $tmpName  = $_FILES['image']['tmp_name'];
        $fileSize = $_FILES['image']['size'];
        $fileType = $_FILES['image']['type'];   
        $filePath = $uploadDir . $fileName;
        $filename = $fileName;
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        $date = date_create();
        $fileName= date_timestamp_get($date).".".$ext;
        $filePath = $uploadDir . $fileName;
        $result = move_uploaded_file($tmpName, $filePath);
        if(!get_magic_quotes_gpc())
        {
            $fileName = addslashes($fileName);
            $filePath = addslashes($filePath);
        }

        $post = mysqli_real_escape_string($connection,($_POST['np_text']));
        //$date = date("Y/m/d");
        date_default_timezone_set('Asia/Karachi');
        $date = date('Y-m-d H:i:s');
        //echo $date;
        $query = "INSERT INTO post ";
        $query .= "(p_pic,p_content,p_date,u_id) VALUES (";
        $query .= "'{$filePath}','{$post}','{$date}','{$_SESSION['id']}');";
        //echo $query . "  " .$date;
        $result_set = mysqli_query($connection,$query);
        if (!$result_set) {
            die("Database query failed: " . mysqli_error($connection));
        }

    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Medical Network</title>
<link href="css/custom.css" rel="stylesheet" />
<script>
    function performClick(node) {
   var evt = document.createEvent("MouseEvents");
   evt.initEvent("click", true, false);
   node.dispatchEvent(evt);
}        
</script>
</head>
<body>
<div class="topmenu">
        <div class="search">
            <form>
                <input type="text" placeholder="Search" value="">
            </form>
        </div>
    <div id='cssmenu'>
        <ul>
           <li><a href='#'><span>Home</span></a></li>
           <li><a href='#'><span>Profile</span></a></li>
          <li><a href='logout.php'><span>Logout</span></a></li>
        </ul>
    </div>
</div>
<div class="main">
    <div class="left-colum">
        <div class="profileinfo">
            <div class="profilepic">
            <?php echo "<img class='getPic' src='{$_SESSION['pic']}' />" ?>
            </div>
            <div class="personal-info">
                <ul>
                       <li><a href='#'><span><?php echo  $_SESSION['fname']." ".$_SESSION['lname']; ?></span></a></li>
                       <li><a href='#'><span>Edit Profile</span></a></li>
                </ul>
            </div>
        </div>
        <div class="importantlinks">
            <h4>Important Links</h4>
                <ul>
                       <li><a href='#'><span>Make Appointment</span></a></li>
                       <li><a href='#'><span>Search Doctor</span></a></li>
                       <li><a href='logout.php'><span>Logout</span></a></li>
                </ul>
        </div>
        <div class="pages">
            <h4>Pages</h4>
        </div>
    </div>
    <div class="middle-colum">
    <div id="feeds">
                <div class="new-post">
                    <ul>
                         <form method="post" action="patient-dashboard.php" enctype="multipart/form-data">
                             <li><a href="#"><label for="newpostfield"><img src="images/status.png" width="14" height="14"> Update Status</label></a></li>
                        <li><a href="#"> <img src="images/photo.png" width="14" height="14"> Add Photo                              </a>
                        </li>
                        <input type="file" id="myFile"    name="image" size="4
                000000" accept="image/gif, image/jpeg, image/x-ms-bmp, image/x-png"   />

                    </ul>
                    <br />
                        <textarea rows="1" cols="40" id="newpostfield" name="np_text" placeholder="Whats on your mind ?" required="required" ></textarea>
                        <input type="submit" value="Post" name="submit" id="postbtn"/>
                    </form>
                </div><!--End of feed-item -->

                <br />
                <div class="posts-feed">
                    <h3 id="postsheading" class="post-heading">Posts</h3>
                        <?php while($post = mysqli_fetch_array($posts)){ 
                            $counter = 0;
                        ?>
                        <div class="post">
                        <div class="poster-pic">
                            <?php echo "<img src='{$_SESSION['pic']}' height='60' width='60' />" ?>
                        </div><!--End of poster-pic -->
                        <div class="post-content">
                            <div id="poster-name"><a href="profile.php"><?php echo  $_SESSION['fname']." ".$_SESSION['lname']; ?></a><span></span></div>
                            <div id="content">
                                <p id="post-text">
                                <?php
                                     echo $post['p_content']."<br/>";
                                     $img = $post['p_pic'];
                                     echo "<a href='#'> <img src='{$post['p_pic']}' height='300' width='300' >"
                                     ?>
                                 </p>
                            </div><br />
                            <div id="post-responses" class="top-border">
                               <a href="#">Comment</a> 

                            </div>
                        </div><!--End of post-content -->
                    </div><!--End of post -->
                                    <?php $counter++; 
                                    } ?>
            </div><!--End of feeds -->

    </div>
    <div class="right-colum">
        <div class="heading">
            <h4>Recommended Pages</h4>
        </div>
</div>

</body>
</html> 

这是function.php,我在这里检索记录。

<?php 
function get_user_posts($id) {
        global $connection;
    $query2 = "SELECT p_pic, p_content,u_id ";
        $query2 .= "FROM post ";
        $query2 .= "WHERE u_id= " . $id ." ";
        $query2 .= "ORDER BY p_id DESC ";
        $query2 .= "LIMIT 5";
        $result_set1 = mysqli_query( $connection,$query2);
        if (!$result_set1) {
            die("Database query failed: " . mysqli_error($connection));
        }

        // REMEMBER:
        // if no rows are returned, fetch_array will return false
        if ($result_set1) {
            return $result_set1;
        } else {
            return NULL;
            die("query faild..... in get post");
        } 
}
?>

您在if语句外调用$posts = get_user_posts($_SESSION['id']);,因此它在每次重新加载时都会显示记录,并获取数据。如果你想只在记录被张贴时显示,那么把它放在if语句中

if(isset($_POST['submit'])&& !empty($_POST['submit'])){
    //your code
    $posts = get_user_posts($_SESSION['id']);
}

请检查变量是否可用。

请更改输入名称属性

它应该是:

使用除提交以外的任何名称

也会改变if(isset($_POST[‘submit’])&amp!空($_POST[‘submit’])){