簡體   English   中英

數據自動插入數據庫中的PHP

[英]data insert into database automatically in php

我有一個問題,就是用戶在我的評論表單中寫入成功時會插入用戶,但是當我刷新頁面時它將再次插入最后一個評論,我在此鏈接中閱讀了解決方案, 如何停止將數據自動插入php中的數據庫

但對我不起作用,這是我的代碼,感謝您的幫助

viewhospital.php文件包含include comments.php文件-請看代碼底部-

 <?php include ('header.php'); if(!isset($_GET['hospital_id'])){ echo '<div class="alert alert-danger" role="alert"><b>You should choose hospital before opening this page!</b></div>'; include ('footer.php'); die(); } include ('setting.php'); $sql = 'select * from hospital where hid = '. $_GET['hospital_id']; $result = $conn->query($sql) or die(mysql_error($conn)); $hospital = null; if ($result->num_rows > 0) { $hospital = $result->fetch_assoc(); } else { die('Could not find hospital!'); } $sql = 'select * from doctor where hospital_id = '. $_GET['hospital_id']; $doctor_result = $conn->query($sql) or die(mysql_error($conn)); $conn->close(); ?> <div class="row"> <div class="col-md-6"> <p class="text-center"> <img src="<?php echo $hospital['image']; ?>" class="img-thumbnail" style="height: 400px;"> </p> </div> <div class="col-md-6"> <p class="text-center"> <img class="img-thumbnail" src="https://maps.googleapis.com/maps/api/staticmap?center=<?php echo $hospital['location']; ?>&zoom=13&size=400x400&maptype=roadmap&markers=color:blue%7Clabel:S%7C<?php echo $hospital['location']; ?>&key=AIzaSyD59nHXpZgqZwjJvsAcPe2CYcIEWoaQ9yY" style="height: 400px;"> </p> </div> </div> <div class="row"> <div class="col-md-12"> <h1 class="page-header"> <?php echo $hospital['name']; ?> </h1> <p> <?php echo $hospital['description']; ?> </p> <p> Address: <?php echo $hospital['address']; ?> </p> <p> Phone: <?php echo $hospital['phone']; ?> </p> <p> <a href="<?php echo $hospital['link1']; ?>">Go To Hospital</a> </p> <p> <a href="<?php echo $hospital['link2']; ?>">Online Appointment</a> </p> </div> </div> <!--<div class="row"> <div class="col-md-12 text-center"> <div class="btn-group" role="group" aria-label="..."> <a type="button" class="btn btn-info">Edit</a> <a type="button" class="btn btn-danger">Remove</a> <a type="button" class="btn btn-primary" href="doctor_form.php?hospital_id=<?php echo $hospital['hid']; ?>">Add Doctor</a> </div> </div> </div>--> <div class="row"> <div class="col-md-12"> <table class="table table-striped"> <caption>Doctors:</caption> <thead> <tr> <th>#</th> <th>Name</th> <th>Field</th> <th></th> </tr> </thead> <tbody> <?php if ($doctor_result->num_rows > 0) { while($row = $doctor_result->fetch_assoc()) { ?> <tr> <th scope="row"> <?php echo $row['did'];?> </th> <td> <?php echo $row['name'];?> </td> <td> <?php echo $row['field'];?> </td> <td><a href="view_hospital.php?doctor_id=<?php echo $row['did']; ?>" class="btn btn-success pull-right">View</a></td> </tr> <?php } }else{ ?> <tr> <th scope="row"></th> <td>No doctors found</td> <td></td> </tr> <?php } ?> </tbody> </table> </div> </div> <?php include ('comments.php'); include ('footer.php'); ?> 

comments.php文件

 <?PHP # comments PHP code date_default_timezone_set('Asia/Riyadh'); function setComments (){ if (isset($_POST['submitComments'])){ include('setting.php'); //$uid = $_POST['uid']; $date = $_POST['date']; $message = $_POST['message']; $sql = "INSERT INTO comments ( date, message) VALUE ( '$date', '$message')"; $result = mysqli_query($conn,$sql); } } function getComments (){ if (isset($_POST['submitComments'])){ include('setting.php'); $sql = "SELECT * FROM comments"; $result = mysqli_query($conn,$sql); while ($row = $result->fetch_assoc()){ echo "<div class='comments-box'>"; echo $row['date']."<br>"; echo nl2br($row['message'])."<br><br>"; echo "</div>"; } } } echo " <form action='".setComments ()."' method='POST'> <input type='hidden' name='uid' value=''> <input type='hidden' name='date' value='".date('Ymd H:i:s')."'> <textarea name='message' class='form-control' rows='3'></textarea> <br> <button type='submit' name='submitComments' class='btn btn-primary'>Comments</button> </form> <br><br> "; getComments (); ?> 

在瀏覽器中刷新時,您會再次發送上一個請求。 該請求是表單的POST。 因此,用戶(瀏覽器)正在告訴代碼插入另一個注釋。

通常,這是通過發布表單后重定向而不是重新顯示表單來處理的。 移動所有邏輯(僅用於),將新內容插入其自己的PHP文件(類似於addComment.php ),並將表單發布到文件。 然后在該文件中確保沒有實際輸出,除非出現問題時可能顯示一條錯誤消息?),然后重定向回頁面:

header("Location: viewhospital.php");

這將指示瀏覽器在響應中對viewhospital.php進行新的GET請求。 因此,如果用戶重新加載瀏覽器,那么他們要做的就是重復該GET請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM