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

时间:2017-10-13 07:39:32

标签: php html

我正面临一些问题,您可以轻松解决这个问题。 因为在点击提交按钮的时候在数据库中存储数据所以在第一次看的时候工作正好的形状。我刷新个人资料页面后,它还会存储数据。我认为如果代码仅在单击提交按钮上执行而不在刷新页面时执行则会解决。但不知道该怎么做。

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方法解决了这个问题。此视频(https://www.youtube.com/watch?v=bIkqNHyj25w)非常有用。

1 个答案:

答案 0 :(得分:1)

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