teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

おまけ追加

2018/08/22 07:12

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -27,4 +27,35 @@
27
27
  そういうソフトを利用しても良いかもしれませんね。
28
28
  Firefoxではありませんが、Chromeの拡張機能を見つけましたので載せておきます。
29
29
 
30
- [ブラウザから手軽にHTTPリクエストを送信するChrome拡張『Advanced REST client』](https://hwada.hatenablog.com/entry/2013/10/28/123517)
30
+ [ブラウザから手軽にHTTPリクエストを送信するChrome拡張『Advanced REST client』](https://hwada.hatenablog.com/entry/2013/10/28/123517)
31
+
32
+ ---
33
+
34
+ > PHPでこんにちはも表示したいのですが
35
+
36
+ これをどういう意味で発言しているのかによります。
37
+
38
+ - FirefoxでPOST通信を再現して`こんにちはかきくけこ`と表示されることを確認したい
39
+ - Ajax通信終了後、test.phpへ移動したブラウザに`こんちにはかきくけこ`を表示させたい
40
+
41
+ 前者は上記の章で解説しているので割愛しますが、問題は後者です。
42
+ これは難易度が一気に上がります。
43
+
44
+ 軽く解説
45
+
46
+ PHPは通信毎にプログラムが完全に分離されており、通信発生毎にPHPというソフトウェアが立ち上がり通信を解析して結果を返す作りになっています。
47
+ (実際にはApacheというPHPの裏で動いているWebサーバソフトが、予めPHPのソフトウェアを並列で4〜8台起動して準備して待っている作りなので高速に動作しているように見えますけどね)
48
+
49
+ 従ってAjax通信とブラウザで開いたときは変数の値等が全てクリアされてしまっているので、
50
+ 以下のような手法で情報を次に引き継ぐ必要があります。
51
+
52
+ - セッションを利用してAjaxで受け取ったPOST文字列を保存する
53
+ - MySQL等のデータベースを立ち上げて、Ajaxで受け取ったPOST文字列を保存する
54
+
55
+ セッションを利用する際はAさんのFirefoxなら情報が受け継がれますが、BさんのFirefoxやAさんのChromeには情報が引き継がれません。
56
+
57
+ 一般的にブログや掲示板、SNS等のシステムでは
58
+ MySQL等のデータベースを使ってこのAjax通信時のPOST文字列を保存する事が一般的ですが、
59
+ これはかなり大掛かりかつ難易度の高い実装となります。
60
+
61
+ この解答欄で解説仕切ることは無理なので、書店へ出向いてPHP+MySQLでブログシステムを作るような書籍を立ち読みしてみてください。