POST遷移をやり直したときにiOSのsafariが固まる

PHPで制作中に気づいた。

フォームからPOST遷移で次のページに行ったあと、
そこでリロードしたり、もしくはさらに次のページから戻ってきた場合
「フォームの内容の再送信をするか?」と聞かれます。

再送で同じページが出てくるならそれで良いのですが、
場合によっては再送させたくないので、別ページにリダイレクトしたりする場合があります。

今回は「リロード時のみ別ページに転送したい」ということでやってみたんですが
iOSのsafariだと、「再送しますか?」の画面で固まって、それ以上の操作を受け付けませんでした。

—

form.php

<?php
session_start();
if($_SERVER['REQUEST_METHOD']=='POST'){
  if(isset($_SESSION['token'])){
    // トークンがあれば正常、トークンは削除
    echo 'success';
    session_destroy();
    exit;
  }else{
    // トークンがなければエラーページへリダイレクト
    header('Location: errer.html'); // デフォルトでは302でリダイレクト
    exit;
  }
}else{
  // 通常アクセスの際にトークンを発行
  $_SESSION['token']=1;
}
?>
<html><body>
<form action="" method="POST"><input type="submit" value="post"></form>
</body></html>

—

ところで、リダイレクトは
301 Moved Permanently
302 Moved Temporarily
の他にも
303 See Other
307 Temporary Redirect
というのがあるんですね。

本来ならPOSTして302リダイレクトが帰ってきたら、
リダイレクト先にもPOSTしないといけない(らしい)。

302の場合は
「POSTしましたけどー」「うちじゃないよ、転送先を当たってくれ」
なので、転送先にもあらためてPOSTすることを想定してる。

303の場合はPOST後にGETで見せたいなど、
「POSTしましたけどー」「処理は完了した、次にこっちを見てくれ」
という場合に使うんですね。

■ブラウザのPOSTリクエストは、リダイレクトさせるとGETに化ける? ::ハブろぐ

—

なので、もしかしたら303でリダイレクトしてやったらsafariも固まらないのか?と思いまして

header("HTTP/1.1 303 See Other");
header('Location: error.html');
exit;

としてみましたが、やっぱりsafariは固まりました。

—

となると、本来であればPOST後のページをform.phpで出すのではなく、
その時点でリダイレクトするというPRGパターン(POST-Redirect-GET)にしておけば良いんでしょうね。
(戻って固まるのは同じだが、頻度は減る?)

あとはそもそもリダイレクトしないことだな。

頭の悪いパナシ 54 – 損得勘定(感情)でゲームしてる

10分トーク『Nacky × DJ TECHNORCH – 頭の悪いパナシ』の54回目です。

●親切過ぎるゲームと不親切過ぎるゲーム
●ゲーム内で説明せず、紙で取扱説明書がついていた
→当時のゲームにはゲーム内で説明する親切さの余裕はない
●常にボーナスや侘び石を「得」をもらっていると、そうじゃない時にむしろ「損を感じる」
●点数をためるためのクエスト(カードバトル・シューティング等)と、その点数をつかった本戦
→そのクエスト自体がとっても面白くあって欲しい!→ソシャゲ向いてない
●Mixi サンシャイン牧場
●昔のゲームは大体異常に不親切で、その不親切なものを百回もやるとなんとなく面白さがわかる
→そもそもそれだけ不親切なものに努力させるモチベーションはどこから得ていたのか(今なら無理)
●テクノ・ハウス伝説の楽器、Roland TR-909/TB-303の音作りの異様な不親切さ
●不親切なゲームを一度もプレイしていないプレーンな私達に
→不親切なレトロゲームと親切なソシャゲを同時に並べらたら恐らくソシャゲをプレイするだろう
●昔のゲームは不親切なゲームしかないので選ぶための選択肢がない
→ゲームのモチベーションを挙げるための「下駄」履かせがいらなかった
→不親切なゲームを強引に千回ゲームオーバーさせると出て来る楽しさがあり
→今親切・不親切のゲームの選択肢がある中でゲームメーカーが敢えて千回ゲームオーバーさせるのは至難の業
(現在は沢山死んで学ぶゲームも、死ぬことで何が学べるかちゃんとわかるようにある程度親切に作ってある)
●それは車で例えるならば (※反証:でも最新の車って運転席でチュートリアルみたいなことをしてくれる)

自分の努力が楽しい
集めるのが楽しい(バーチャル金持ち)

まぁ「レトロゲームvs現代のソシャゲ」じゃなくても、
昔からそういうものかもしれませんねぇ。

—

セガのテトリスはデモ画面でのチュートリアルがありましたね。

—

TR-909のパネル。ぱっと見はこれでどうやって音楽を作れと!?って感じです。

説明書を見ながらポチポチしていくようなものを、ライブパフォーマンスに使う人もいる。

—

最近でもひたすら不親切(でもないけど)なゲームはありますね。

N++も出てたな。

—

昔のゲームは不親切がゆえに、楽しみ方がうまく伝わらなかったりして
いわゆるクソゲーとかを生み出していたんじゃないかという気がします。

でも本当の損得は「時間を何に使ったか」に対する感情じゃないかなぁ。

頭の悪いパナシ 53 – セーブ(保存)したいもの

10分トーク『Nacky × DJ TECHNORCH – 頭の悪いパナシ』の53回目です。

●修行ゲームと蓄積ゲームのお話
●ストリートファイターはアカウントデータが消えても腕前として身体に「修行」結果が残るので特に問題がない
●1年半努めた「蓄積」ゲーム=ソシャゲのデータが消えたらやる気が…
●DJ TECHNORCHは多分、修行ゲームしかやったことがない
●音ゲーは修行ゲームだから好きだ。基本的には腕前が残る。
●昔の音ゲーは電源が切れると消える当日(その台だけの)ランキングしかなかった
●大昔のゲームは大抵修行ゲーム
●ドラクエ初のデータ記憶チップ(すぐ消える)
●「修行」の腕前は何故か数年たっても身体に残っている
●DJ TECHNORCHはDQ/FFを全くやってこなかったので(NackyはDQ3まで)
→成人して気がついたらラノベ・異世界系・ソシャゲで「剣と魔法の世界」が基本になっていることに驚き
●同人音楽でもDQ/FF/MOTHERを通過したかしてないかで若干の音楽感の差を感じる(ゲーム経験の物語)
●ファミコン時代、他人のデータを消してしまうことへの恐怖(現代のソシャゲで他人のを消したら訴訟だ!)
●リュウとケンを何万回プレイしてもリュウとケンそれ自体は何も「蓄積」されず、強くならない
●修行ゲームと蓄積ゲームはゲームとして随分違うようだ。
●次回「不親切過ぎるレトロゲームと親切過ぎる現代ゲーム・ソシャゲ」続く

キャラクターアニメーション : ガしガし

いわゆるドラクエ的なRPGって最後にやったのが、たぶんDQ3なんです。
格闘ゲームもずっとバーチャファイターをやってましたけども、
まぁ、「腕前」があれば別にデータ蓄積はいらないんですよね。

スマホゲームも、アイドルマスターの「デレステ」をやってましたが
半年前ぐらいにやめてしまいました。
音ゲー部分は好きだったんですけどね、毎日続けろ的な要素がな…

Ingressは2013年から続いてますけども、
これは毎日やらなくてもいいところが続いてる理由じゃないかなぁ。
同様にポケモンGOもたまーに思い出したように起動してます。

—

コインを入れて、ファミコンならば電源を入れて、
ゼロからゲームを始めて、しばらくしたらおしまい。
実績などは残らず、経験だけが残る。
そういうビデオゲームが、まぁ、原始的とでも言えるのかな。

短期的に蓄積、保存をしていって目的を達成する。
次のゲームはまたゼロから始める。
みたいなのは、例えばときめきメモリアルとか、
パラメーター蓄積で、セーブして続けていくんだけども
また「育成し直す」ことで別プレイができる。

そう考えると
ドラクエとかFFも、上記よりも長期スパンではあるけれども、
またゼロから始めるようなこともできるゲームでしたね。

これらに比較すると、スマホ時代のソーシャルゲームと言われるものは、
蓄積、コレクションそのものが心の財産になるので
ゼロから始めづらい(始められないわけじゃないが、とうていやる気にならない)
という特徴があるかもしれません。

—

剣と魔法の世界が当たり前になったの、なんなんでしょうね!
もちろん私もその中で生きてきましたけども。

時代劇が当たり前の世界という年代もいるだろうなぁ。

ゲームが世界観の配布媒体として非常に強力だったということか…

頭の悪いパナシ 52 – カウンセリングとコーチング

10分トーク『Nacky × DJ TECHNORCH – 頭の悪いパナシ』の52回目です。

●炎上して批判:賞賛=9900:100に陥った時、人は「まだ100人も仲間がいる…!」と考えられる
●それはポジティヴ・シンキングではなく、「すがっている」病的な状態
●ネガポジを±0まで持っていくのがカウンセリング、+から先はコーチング
●物凄いマイナスの時は人は同情してもらいたいもの、しかしそこから先は…
●不倫をしても速攻で復帰する芸能人と、年単位で隠居せざるを得ない芸能人の差は何か
●というかDJ TECHNORCHさん随分TV観てますねぇ…
●漫画家さんが執筆中に音楽を聴くようなことを本当はしたいけど
→アニメも映画も諦めて作曲中にワイドショウ観てる(テロップ量が凄いから)
●そんなことよりもTVにスマホの縦写真・縦動画が出て来ることが気になる
●縦派と横派がどっちも多数派と言えないほど多いので縦か横か流れると必ずどちらかが不自由してる

キャラクターアニメーション : ガしガし

なんの話かと思ったら松居一代の話なんですね。会話の最中は確信が持てなかったw
出張先のホテルの食道のテレビでちらっと見たけど、YouTubeそのものは見てなかったなぁ。
(なんか時間の無駄っぽいし見ませんけど)

これを書いてる時点でこんな感じ。圧倒的なサムズダウン数w

—

不祥事の芸能人が全然出てこないのは、同じポジションが他の誰かに替わられた、
すなわち「その人じゃ無きゃダメ」ってことはなかったってことなのかなぁと思います。
芸能界でも「かわりはいくらでもいる」んだな。

—

そもそも情報過多な時代に、どっかで芸能人が出てこようが消えようが、
関係なく生きてられますもんね。

共通のテレビ番組を見てないと翌日学校で話題において行かれるとか、
昔ほどではなくなったんじゃないかなぁ。

—

写真とか、動画を、最終的にChromecastでテレビ画面で見ることが多いので
なるべく横にして撮ってます。
なんか縦だとblogとかでも見づらい感じがあるんだよなぁ

—

今朝(8/29)も北朝鮮がミサイルを発射した話からテレビはそれ一色でしたけども
なんというか、情報が一周するとあとは繰り返しの放送なんですよね、NHKでも。
CNNはちょっとだけ扱ったようですが、その後はハリケーン被害の話ばっかりでした。
bloombergは為替に影響があるからか、扱ってました。

しかし、ほっとくと自分がテレビにはりついちゃいそうで、
意図的に消しました。
自分の時間はテレビを見るためにあるんじゃないからね!

頭の悪いパナシ 51 – 叩きようのない相手

10分トーク『Nacky × DJ TECHNORCH – 頭の悪いパナシ』の51回目です。

●AIの提言がほぼ「お告げ」に聞こえるお話
●AIによる「40代の一人暮らしが日本を滅ぼす」という提言をみんなで考えるというNHKの番組
●AIが言うから「検討してみよう」となるけど…
→もし「東大**教授」の提言だったら冷静に議論できるだろうか
→逆に「AIの提言」ならNHKはかなり踏み込んだテーマでも議題にできる
●「AIの提言」は「何を言うかよりも誰が言うか」の究極系
●NHKは番組内で「AIの提言」=「お告げ」と表現、たしかにお告げにはクレームはできない
●「誰か」の意見を、みんなでぶっ倒す。だと議論にならない。
●AIは誰がどれだけ感情的に批判しても、痛いとも辛いとも言わない。
→それは客観的な議論を導くのか?
●有名論者同士のツイート議論に感銘を受けた第三者がそれをトゥギャることと
→論者本人がその議論をトゥギャることでは、読み手の感情は大分違う(仮に内容が同じでも)
●Twitter上の熱い熱い議論で「なるほどその通りですね、私が間違えていました。今後は考え方を改めます。」と終えたのを見たことがない
●議論の提言者がチヤホヤされていると、意味もなくイラッとしてしまうことは誰にでも少しはある
→「宝くじに当たった人がその後どんな大変な目にあったか」という告白に目くじらを立てる人は前者よりかなり少なそう
●見てる人がなんだか「やられた感じ」になる議論と、「他人が勝手に落ちていった」ように見える議論。結局は相対性
●そういった議論に対する「相対的な感情」がほとんどなくなる提言者=AI
●NHKは番組内で40代独身がなぜ日本をほろぼすのか、AIが示すその相関関係について「わからない」と断言=ブラックボックス
●なぜそういう結論が出るのかわからないけれど一定の信頼のあるブラックボックス=お告げ
●卑弥呼=AI説
●政(まつりごと)がお告げで決まった時代の政治家達の引責辞任は
●「社名に.comと付ければ銀行が金を貸してくれるのだよ!」時代の再来、「AI」を導入しよう!
●ブラックボックスである個々のAIを「A/AA/AAA」で評価する信頼度格付け会社も立ち上げよう
●でもそれはやっぱり人間が決めているだけだから、お告げの方を信じよう…

キャラクターアニメーション : ガしガし

なんでしょうね、議論って、相手の意見を潰すためにあるんでしょうかねw
叩きようのないところ(AIのお告げ)から議題だけ降ってきたら、それがいくらかマシになるという。

例えば、大嫌いな人がいたとして、その人がまともなことを言っていたとして
素直に賛同できるのか、自分の考えをねじ曲げてまで叩きに回るのか。

まぁ、素直にありたいものです…

—

お告げとか、神の預言だとか、それで一喜一憂するのもいいんですが、
それで人間が何もしなくなるのも考え物ですよね。
少なくとも同じ人間が言ってしまうと叩きにいっちゃったりするんだもん。

—

もうちょっと宗教社会学かじっておけばよかったなぁと今さら思います。