#4449

参照の迷路


web制作


まだ夕方ですが、例のピクミンチャレンジモード大会更新作業で
ドツボにハマったあげく挫折するという苦渋の体験をしたので
鬱憤を晴らす&反省の意味を込めて早めに今日の分を書いておきたいと思います。

ブログ投稿もままならないまま週末を迎えてしまった今週。
『ピクミン2』での実績はほとんどなく、かといって睡眠時間を十分確保できたわけでもなく、
振り返ってみれば微妙な感じが否めない今週平日でした。
まぁ残業量がかなりのものだったので致し方ない面もあるといえばあるのですが。
で、その隙間時間に最近ハマりつつあるJavaScriptで、
“ユーザーごとに回数制限のあるおみくじを引き、結果を逐一データベースに登録する”
というプログラムをjQueryで実装するべく暗中模索を繰り返していたのですが……。
冒頭にも書いた通り最終的には挫折しました。

おみくじ本体はまあ特に苦戦する要素もなく作れたし、
それをJavaScriptの変数に格納→jQuery.Ajax()関数に渡して処理用のPHPに渡す、
というところまでもいろいろ調べつつなんとか実装できました。
PHPに渡すことさえできればmysqli_query等でデータベースとのやりとりはどうにでもなるので、
正直ここまで出来ればもう完成かなーと高を括っていたのですが、問題はここから。
まずデータベースにはボタンを押した「名前」を付加して登録しておきたかったので、
メインフォームのクッキーから名前情報を取ろうとすると、どうしても取得できない。
散々調べてみて、どうやらクッキーは
設定したときのPath以外の場所からは取得できないようになっているらしいことを知り、
メインフォームを調べてみると見事に当該ディレクトリだけ有効の設定になっているという。
この範囲を今更変更したところでユーザー側のクッキーがどうこうなるわけでもなく、
いやどうにかなるのかもしれませんが……。
その具体的方策も見えないので、
今回は仕方なく匿名投稿のみ受け付けという形で作業を続けていました。

その後無事にローカル版で思い通りの動きが実現して、
いざアップロードしてみると肝心の本番環境でどうしても通信に失敗してしまう……。
これも原因が分からず、さっきまで半狂乱状態でGoogleで検索しまくっていた結果、
Ajax関数はディレクトリが異なると受け渡しができない、という情報が出てきました。
ランキング大会のURLはこのブログのドメイン配下にあるサブドメインを使っており、
さらにルートディレクトリ以下は.htaccessを使ってURL置換を行うようになっています。
これはルート直下をページID (ユーザー名やステージ番号等) にしたかったためなのですが、
単純にこの置換を行ってしまうと、
サブドメイン以下はすべてPHP本体にリダイレクトされてしまうため、
現状ではPHP本体以外は何も置けない設定になっています。

それでもCSSなどは絶対パスを使えば別ディレクトリ配下を参照することもできるので、
今までは支障が無かったのですが、
まさかその別ディレクトリを参照できない事態が起こるとは思っていませんでした。
.htaccessでうまく例外処理を施してサブディレクトリ配下に内部処理用のフォルダを作れば、
この問題はあっさり解決しそうなものなのですが、
正直.htaccessは自分にとって難易度が高すぎるんですよね……。
今のファイルだって数日くらいのスパンでやっとこすっとこ完成させたもので、
これをもう一度編集しなければと思うとかなりしんどいです。

元々このおみくじ機能自体Ajaxの練習が目的みたいなものでしたが、
思いの外 壁になる要素がたくさんでてきて困惑してしまいました。特にパス関係。
まぁ授業料と思えば有意義だったと思えなくもないですが、
平日五日間の帰宅後余暇の大半を費やしたことを考えると割に合わないような感じも。
ド素人がプログラミング言語に手を出せば最初はこんなものなんでしょうかね。

今日は02時就寝11時半起床、16時まで上に書いた悪戦苦闘を続けていて、
16時からはまた歯医者、帰宅後に少し『クラッシュ・ロワイヤル』で過ごして今に至ります。
夕食後の余暇は『ピクミン2』か、あるいは挫折した分を取り戻すためのリベンジか、
どちらにしても先週末と同じような過ごし方になりそう。

コメントを残す