2017-10-13 20 views
-2

私は簡単にこれを解決できるいくつかの問題に直面しています。 投稿ボタンをクリックするとデータベースにデータを保存するので、一見でうまくいくフォーム。私はそれを更新した後もデータを保存しますプロフィールページ。私はコードがページをリフレッシュするのではなく、送信ボタンをクリックして実行するだけで解決できると思います。しかし、それをどうやって行うのか分からない。事前に[送信]ボタンをクリックしたときにデータを挿入する方法は?

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 
    } 
    } 
    ?> 

感謝。

+0

見ることができるのは、挿入クエリ自体です。データベースにまだ存在していない場合にのみ友人を挿入する必要があります。 –

+0

@usmanikram誰かがリフレッシュしたときにページを空白のページにリダイレクトしたくない。 – Nawaraj

+0

@KIKOSoftware提出ボタンをクリックすると動作しますが、プロフィールページを更新するとページが挿入されます。 – Nawaraj

答えて

0

Frnd.phpで検証し、データベースに正常に挿入したら、ユーザー/クライアントをProfile.phpにリダイレクトする必要があります。

+0

profile.phpコードを見ると、include( 'frnd.php');ユーザーが[送信]ボタンをクリックすると、frnd.phpも同じページで実行されます。そして、Profile.phpからProfile.phpにリダイレクトするのは良い考えではありません – Nawaraj

+0

あなたのページを送信した後、あなたのページはPOSTメソッドを使ってフォームを送信します。このため、ページをリロードするときに(ブラウザから)確認ダイアログが表示されます(「データを再度POSTする必要がありますか?」)。 Frnd.phpからProfile.phpにリダイレクトすると、GETメソッドを使ってリダイレクトされます。インクルードされたFrnd.phpはインクルードされますが、$ _POST ['add']が設定されているときにだけ起動するため、コードは実行されません。 – kerbholz

関連する問題