Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何仅在单击“提交”按钮时插入数据?_Php_Html - Fatal编程技术网

Php 如何仅在单击“提交”按钮时插入数据?

Php 如何仅在单击“提交”按钮时插入数据?,php,html,Php,Html,我面临一些问题,你可以很容易地解决这个问题。 我使其在第一次查看时工作良好的表单,因为它在单击提交按钮时将数据存储在数据库中。我刷新配置文件页面后,它还会存储数据。我认为如果代码只在点击提交按钮时执行,而不在刷新页面时执行,那么问题就解决了。但我不知道怎么做 Profile.php <?php include('session.php'); include('frnd.php'); if(!isset($_SESSION['login_user'])){ header("locat

我面临一些问题,你可以很容易地解决这个问题。 我使其在第一次查看时工作良好的表单,因为它在单击提交按钮时将数据存储在数据库中。我刷新配置文件页面后,它还会存储数据。我认为如果代码只在点击提交按钮时执行,而不在刷新页面时执行,那么问题就解决了。但我不知道怎么做

Profile.php

<?php
 include('session.php');
 include('frnd.php');
 if(!isset($_SESSION['login_user'])){
 header("location: index.php"); // Redirecting To Home Page
 }
 ?>

<!DOCTYPE html>
<html>
<head>
 <title>Your Home Page</title>
 <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
 <span><?php echo $error; ?></span>
 <div id="profile">
  <b id="welcome">Welcome : <i><?php echo $login_session; ?></i></b>
  <b id="logout"><a href="logout.php">Log Out</a></b>
 </div><br>
 <form action="" method="post">
 <input type="text" name="frndIn" required><input type="submit" name="add">
 </form>
</body>
</html>

你的主页
欢迎:

Frnd.php

 <?php
  $error = ''; // Variable To Store Error Message
  if (isset($_POST['add'])) {
  if (empty($_POST['frndIn'])) {
  $error = "Please enter username of your friend";
  }
  else
  {
  $frndIn = $_POST['frndIn'];
  // mysqli_connect() function opens a new connection to the MySQL server.
  $conn = mysqli_connect("localhost", "root", "", "msg");
  $query = "INSERT INTO friend (username, friend) values (?,?)";
  // To protect MySQL injection for Security purpose
  $stmt = $conn->prepare($query);
  $stmt->bind_param("ss", $login_session, $frndIn);
  if ($stmt->execute()) 
       {
            echo "New record inserted successfully";
       } 
  else 
       {
            $error = 'Error occur';
       }
  mysqli_close($conn); // Closing Connection
  }
  }
  ?>


编辑:我使用POST/Redirect/GET方法解决了这个问题。此视频()非常有用。

在验证并成功插入Frnd.php中的数据库后,您需要将用户/客户端重定向回Profile.php。

您可以查看的是插入查询本身。它应该只在数据库中还不存在的朋友时插入。@usmanikram我不想在有人刷新时将页面重定向到空白页面。@KIKOSoftware它在我单击“提交”按钮时工作,但在我刷新个人资料页面时也可以插入页面。@Nawaraj如果我很好地理解你的问题,然后,每当您刷新页面时,浏览器会询问您是否要再次发布数据。要解决此问题,必须在插入后将页面重定向到另一个页面。在您的情况下,您可以再次将其重定向到Profile.ph。请使用blockquotes作为实际引号,并使用粗体作为强调,而不是为了吸引注意,因此请删除它。如果您查看Profile.php代码,您将发现include('frnd.php');所以,在用户单击submit按钮之后,frnd.php也会在同一页面中执行。从Profile.phpa重定向到Profile.php不是一个好主意,单击提交后,您的页面将使用POST方法提交表单。这就是为什么在重新加载页面时(从浏览器中)会出现确认对话框(“我应该再次发布数据吗?”)。从Frnd.php重定向到Profile.php将使用GET方法进行重定向。将包括包含的Frnd.php,但不会执行任何代码,因为它仅在设置了$\u POST['add']时触发。