現在、PHPにて掲示板を製作中です。
スレッド型でタイトルをクリックすると<a href="...?記事のNo.&...">タイトル</a>とGETで情報を渡し、その書き込みが表示される仕組みです。
書き込みフォームからの情報はPOSTで渡します。といたって普通の仕組みだと思うのですが、問題はGETで受けた値をPOSTで更新できないのです。
どういう事かというと、まずタイトルをクリックしNo.1の記事を表示します、そのときURIの表示は[ http://・・・.php?type=tree$log=1 ]になっているとします。
そのNo.1の記事に返信するために内容を書き込んでsbumitボタンを押して記事をPOSTで送信します。
返信記事はNo.2になります。すると返信されたNo.2の記事内容を表示し、No.1はスレッドでタイトルだけの表示になるようにしてるのですが、そのときのURIの表示は[ http://・・・.php?type=tree$log=1 ]ままなのです。そのため、画面ではNo.2を表示してるですが、URIはNo.1のままなので、No.1のタイトル部分をクリックしても、No.1を読み込みに行ってくれません。
No.0があったとしてNo.0をクリックするときちんと表示されます。おそらくNo.1をクリックしたGETの情報を引きずっていてまだNo.1を表示していると思っているためだと思うのですが、POSTで渡した場合はGETの情報を更新できないのでしょうか?
何を言っているのかよくわからないかと思いますが、何か解決策はないでしょうか?よろしくお願いします。
No.1
- 回答日時:
こんにちは。
。。。うん。正直、何を言っているのかイマイチです(汗
ページ(ソース)の移り変わり、どこがどうなるのやらさっぱり(汗
PTP使いじゃなく、ASPユーザーですが。。。
とりあえず、確認事項。。。(?)
・POSTとGETのMethodでの宣言をちゃんと行っていますか?
・targetの指定はズレてませんか?
・POSTとGETが混在してませんか?
一応、混在していてもいい場合はあるんですけど、GET指定の場合は、POSTが使用できなかったかな?と記憶してます。
POST指定の時は、GETも使える。。。ような記憶が。。。
まずは
「このページの時にGETの値はこうなっていて、POSTの値はこうなっていて。。。」
と、使用する値のものを全て目に見える形で出したほうがやりやすいかと思いますよ。
この回答への補足
STICKY2006さん、ありがとうございます。
説明下手で申し訳ありません。
一応、流れを説明いたします。
最初はスレッドでタイトルだけを表示しています。
●ログNo.1・・・・・・
LログNo.2・・・・・・
LログNo.4・・・・・・
●ログNo.3・・・・・・
LログNo.5・・・・・・
LログNo.6・・・・・・
とこんな感じでの表示なってます。
↓ <a href="bbs.php?mode=read&number=1">タイトル</a>
↓ ログNo.1のタイトルクリックでGETで情報を渡します。
●ログNo.1
メッセージをなどを表示
--------------------------
返信フォーム
LログNo.2・・・・・・
LログNo.4・・・・・・
この様にNo.1の内容を表示。
この時点のURIは[http://・・・・・.bbs.php?mode=read$number=1]です。
↓ 返信フォームにメッセージを書き込み送信
↓ <form action="bbs.php" method="post">
↓ <input type="hidden" name="mode" value="message">
↓ <input type="hidden" name="number" value="7">
↓ ほか書き込まれた内容をPOSTで送ります。
●ログNo.1・・・・・・
LログNo.2・・・・・・
LログNo.4・・・・・・
LログNo.7
メッセージをなどを表示
--------------------------
と表示されます。
この時点でURIは[http://・・・・・.bbs.php?mode=read$number=1]のままなのです。
ですので、No.1のタイトルをクリックしてもNo.1の内容は表示されません。
No.2やNo.4は表示されます。
[http://・・・・・.bbs.php]とならないのです。
No.2ベストアンサー
- 回答日時:
<form action="bbs.php" method="post">
このフォームのaction先に、
$_SERVER['PHP_SELF'] $_SERVER['SCRIPT_NAME'] $_SERVER['REQUEST_URI']
とかでプログラム名を入れていると、ページURIの全部が入ってしまい
<form action="bbs.php?mode=read&number=1" method="post">
となっているんではないでしょうか?
その次のリンクは、同一URIなので、ブラウザはreloadしていない
と言う状態かな??
対策1 action先は、$_SERVER[] で指定せず、直接「bbs.php」を入れておく
対策2 post後画面の出力は、location header送信として、bbs.php?mode=read&number=7 のようにURI変更する(post情報も消えるので、リロードで2重送信にならないで済みます)。
対策3 または、post後画面の出力時のheaderに nocache 情報を追加、ブラウザによってはmetaタグでnocache情報も付けた方がよい。
書式は、ちょっと失念。nocacheで調べてみて下さい
この回答への補足
hrm_mmmさん有難うございます。
対策1についてですが、掲示板を数ページ作るため、bbs1.php、bbs2.phpなどと出力のHTML用のphp別にしています。そのためどうしてもaction先は変数での指定になってしまうのです。対策2・3については勉強不足の為、そのようなことができることを知りませんでした。どのようにするのか知識がないので調べてやってみたいと思います。月曜日までちょっと時間がなくできません。月曜にやってみます。ありがとうございました。
いま、見直してみたところaction先の変数の受け渡しがうまくいってませんでした。単純ミスでした。ご迷惑をおかけいたしまた。
しかし$_SERVER[] やlocation headerのことを今回知れて大変勉強になりました。ありがとうございます。また何かありましたらよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- 英語 提示文で複合関係代名詞を繰り返さない理由の有無について 7 2022/11/21 12:32
- Word(ワード) ワード2023でテキストボックス内の数字が勝手に変わってしまう 1 2023/02/09 14:47
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) EXCELで次の数式を教えてください。 5 2022/11/23 18:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リダイレクトでPOST
-
URLでスラッシュ区切りでパラメ...
-
LARAVEL モデル
-
onedrive にexcelファイルをア...
-
こちらはただの直列処理ですか?
-
ワードプレス、Contact Form 7...
-
拡張子php画像をjpg画像等に変...
-
PHPとCSVで簡易データベースな...
-
include先でのinclude元の変数...
-
リダイレクト元のURLの取得方法...
-
メールフォームのタイトルが文...
-
php エラー
-
PHPのif文でその処理を途中で抜...
-
VBでメールを送る時のSMT...
-
one drive のアップロード失敗...
-
別PHPファイルに変数を渡す
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
-
Image Magickの関数が使えない
-
文字化けで混乱中です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リダイレクトでPOST
-
URLの変わらないページをPHPで...
-
phpinfoでloaded modulesが表示...
-
【WordPress】メディアの一覧出力
-
URLでスラッシュ区切りでパラメ...
-
特定のサイトを経由しないとペ...
-
PHPで検索結果からさらに詳細な...
-
ヘッダーは500エラー、ブラウザ...
-
WordPress 検索結果ページのペ...
-
php my adminより取り出したデ...
-
FPDFを使ったPDF出力時の縦幅に...
-
テキストリンクを2回クリックし...
-
PHPの値受け渡しとアンカーを一...
-
phpとpostgresを利用した検索シ...
-
DBのレコード数のリンクを表示
-
会員サイトに自動ログインして...
-
リンク(URL)をクリックした後、...
-
携帯端末auのみpostで送ったデ...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
おすすめ情報