![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
PHPの入力フォームでサブミットボタンを押すと、データベースのあるカラムに1が入力されるようにしたのですけど、ここで変な自体が起きてしまいまして、。。
POSTで受け渡先のページが自分自身の場合になっておりますが、 submitボタンを押していないにもかかわらず、画面の更新をするだけで、データーベースに同じ情報が更新した回数分だけ、登録されてしまうのですが、なんでなんでしょうか 教えてください。よろしくお願いします。
<?php
if (@$_POST['friend_req']) {
try{
require_once("../../db/connect_db.php");
$sql = "INSERT INTO friend(user_i, req_fg, user_you, add_fg) VALUES(?,?,?,?)";
$datas=array($user_id, 1, $_GET['no'], 0 );
$stmt = $pdo->prepare( $sql);
$stmt->execute($datas);
}catch(PDOException $e){
die($e->getMessage());
}
}
?>
<form method="post" action="<?=HOME?>universe/users/profile.php?no=<?php echo $_GET['no'];?>">
<input type="submit" name="friend_req" value="友人申請" >
</form>
No.1ベストアンサー
- 回答日時:
postしたページのリロードは、再度postすることです。
<?php
if (@$_POST['friend_req']) {
try{
require_once("../../db/connect_db.php");
$sql = "INSERT INTO friend(user_i, req_fg, user_you, add_fg) VALUES(?,?,?,?)";
$datas=array($user_id, 1, $_GET['no'], 0 );
$stmt = $pdo->prepare( $sql);
$stmt->execute($datas);
header("Location:".$_SERVER["SCRIPT_NAME"]);
}catch(PDOException $e){
die($e->getMessage());
}
}
?>
的な、INSERTしたら別ページに飛ぶようにしないとダメです
普通は更新したら「更新完了ページ」に飛ばすもんですけどね
ちなみにheaderで飛ばすので、HTMLの出力をする前に組み込む必要があります
あとPOSTとGETを組み合わせて使うのはかなり気を使わないといけません
$_SERVER["SCRIPT_NAME"]では飛べないし、仕様をよく検討してみてください
ありがとうございます。postしたページのリロードは、再度postすることということを知りませんでした。 headerに関しては、ただ単に飛ばすだけだとおもっていたのですが、$_POSTをリロードさせない役割もあったのですね。過去にPHPで実験として作成したものでも、気付いていないだけで、よくにた状況のものがいくつかでてきました。コメントがリアルタイムで表示されるものや、いいねボタンをおすといいねがつくようなものも自分のページにheaderなしで、飛ばしていたので、今確認したところ、更新するたびにいいねがついてしまってました。自分ではまったく気付かなかったので、とても感謝です。同時に少し疑問もでてきました。頭を整理してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP php ログイン 1 2022/11/01 00:24
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FORMで送信ボタンと戻るボタン...
-
データ送信をボタンを押さずに...
-
PHPとCSVで簡易データベースな...
-
form actionで二つ送信先を指定...
-
xamppでformによるデータの送信...
-
WordPressで完全一致検索
-
multipart/form-dataを使ったデ...
-
「 '&lng='」の&の意味が分か...
-
ボタンのクリック数を合計保存...
-
リンクでキーワードを渡すには...
-
【BAT(バッチ)ファイル】Web...
-
PHP8を使うと、大量のWarningが...
-
onedrive にexcelファイルをア...
-
文字化けに関して
-
ヒアドキュメントを中断してinc...
-
文字化けについて
-
空メールの作り方教えて欲しい...
-
透過PNGが透過されない!!
-
「localhostの応答を待っていま...
-
携帯で、phpページからhtmlペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
form actionで二つ送信先を指定...
-
データ送信をボタンを押さずに...
-
PHPでε(イプシロン)のような...
-
FORMで送信ボタンと戻るボタン...
-
inputタグでphpを呼び出す際、...
-
別のファイルへ値を受け渡す方法
-
テキストボックスにデータベー...
-
ボタンのクリック数を合計保存...
-
リクエストメソッド
-
PHPとCSVで簡易データベースな...
-
【PHP】ページを更新すると勝手...
-
Auth認証エラー
-
multipart/form-dataを使ったデ...
-
PEARでのAuth認証について
-
ワンクリックしかできないクリ...
-
PEAR Image_QRCodeのエラー
-
戻れないです
-
header(Location: next.php) だ...
-
リンクでキーワードを渡すには...
-
【初歩】ログアウトを【2回押さ...
おすすめ情報
補足ですが、データベースに 1 が登録されていない段階では、更新してもなにも登録されないのですが、 一度、データベースに登録したあとに、 更新すると、submitボタンを押していないけどもsubmitボタンを押したときのように、更新した回数だけレコードが増えています。