2021年5月31日月曜日

PHP その14(プレ登録の処理)

 最近は時間がなくてこのブログを書いている暇もないです。毎日書くと言ったのに3日もサボるというのは…猛省。


 作業自体はちょっとずつですが進めていました。とりあえず一通りユーザー登録システムは完成したのですが、ちょっと考えてみたら、メールアドレスを登録してそこから本登録を済ませるようにするとか、パスワードはハッシュで暗号化して管理するとか、仮登録情報は一定時間でデータベースから削除するとか、そういうセキュリティ周りでやることがいっぱいあることに気づきそっちの処理をやってました。

 今はアドレスからパスワードを入力して本登録をするというところまで完成しています。次はパスワードのハッシュ化けるですが、password_hashとpassword_verifyを使えばいいのは知っているので、多分そこは割と簡単。問題は照合まわりでちょっとうまくいくか不安なところくらいですかね。


 でも考えてみるとログインしてから様々な管理が可能なシステム作る方がずっと大変ですよね。まだまだ先は長い。

2021年5月27日木曜日

PHP その13(入力エラー処理)

 とりあえず今日で入力内容にエラーがあった場合の処理は完成。正規表現の一覧は載ってるサイトが多くあるけれど、実際の使い方を勘違いしていて少し手間取った。


 また、仮登録状態から本登録にもっていくための本人確認メールの設定もある程度終わりました。しかし、リンクを開けば本登録が完了するという仕組みまではできていないのでそれは明日以降。


 あとは、セキュリティの面もなんとかしないといけない。でもまあ、ここは今のところ利用者もいないだろうし、最低限でいいかな、利用者もいない、ましてや金銭決済は一切ない独自のセキュリティシステムのページをわざわざ攻撃する暇人もいないでしょうし。でもいずれは避けては通れない道…。

2021年5月26日水曜日

PHP その12(サイトの操作でMySQLへデータを追加)

 いやー、めちゃくちゃ簡単なところで苦戦しました。


 苦戦したポイントと原因は以下の通り。

①MySQLにPOSTしたデータを登録できない

→SQLでINSERTを使う際、リテラルでないデータはシングルクオーテーションで囲む必要があるのだが、POSTは文字列でないので囲う必要がないと思っていた。しかし、PHPで扱う際は文字列でないだけで、SQLで扱う際には文字列になっているので、シングルクオーテーションで囲む必要があった(説明超絶下手)。

②PHP記述範囲をうまく<?php ~ ?>で囲えていなかった。

→原因不明。たぶんどっかで勘違いがあった。1時間ほど悪戦苦闘した後に少し休憩してやり直したらあっさりうまくいった。


 さて、次はPOST内容によってはクエリを送ることなくエラーを返すように設定しますか。その次は本人確認メールを送ってそのURLを開けば本登録が済むように設定していく。

 うーん、ユーザー登録ってよく考えると思ったよりやること多いなあ。

2021年5月25日火曜日

PHP その11(サイトの操作でMySQLへデータを追加)

 今日は通院があり、思った以上に疲れてしまったようで、夕食後にがっつり寝てしまい、あまり作業が進みませんでした。


 とはいえ、進行0はやめておこうという自分の近い通り、少々の進展はありました。サイト側の操作でMySQLにデータを追加することができるようになったのです。

 次は、サイト側からMySQLを固定の操作ではなく入力した内容に合わせて操作できるようにすればOKです。もちろんクエリを直接打ち込んでもらうのが一番楽なのですが、それではあまりにユーザーに優しくないので、最低限の機能は持たせないといけませんね。

 また、ユーザー登録ですから、登録申請があったらメールアドレスに自動で登録用URLを送り、それを開いて再度パスワードを入力したら正式にデータベースに登録されるようにしないといけませんね。うーんけっこう大変そう。なんとか今月中の完成が目標かな。

2021年5月23日日曜日

PHP その10(ユーザー登録フォーム作成その2)

 とりあえず昨日の問題だったMySQLへの接続はできるようになり、実際にロジマガのHPに埋め込む形でコードを書き始めました。とりあえずログインページと新規登録ページの体裁とリンクを整備したので、明日からはそれぞれのサーバーとのやりとりを書いていくことになります。


 実は、まだ登録フォームの作り方に必要な知識は十分ではありません。とりあえずgithubなどにのってたコードなどを使って簡易なシステムを作ってみましたが、どうもPHP8ではすでに古くなってしまった文法などが含まれているようで、うまく動作しない部分があったためです。でも、そういうところは自分のサイトの形にカスタイマイズしつつ一歩一歩調べながら作っていけばなんとかなるということを過去の経験から知っていますから、まずはやってみましょう。まずやってみて、ダメだったらその時に考える。それでいいんです。

2021年5月22日土曜日

PHP その9(class)

 ユーザー登録のフォームのコードを読んでいて、どうやら私はclassについて知識が不十分らしいということを自覚し、再度勉強し直しました。オブジェクト指向についてはだいたい学習していたのですが、やはり自分で使わないと身に着かないですね。


 そして一通り勉強してみて再度コードに向き合ってみると…

 SQLSTATE[HY000] [2002]が起きてしまった。MySQLに接続できない。うーん?MySQL側の設定が間違えたか?

 多分ローカルホストのMySQLとレンタルサーバーのMySQLの二つを使っているので、それらの設定が頭の中でごっちゃになってしまって間違いが発生しているような気がする。やっぱり不便かなあ。こういう問題って一般的にはどのように解決しているんだろう?やっぱりクラウドサーバーのような仮想環境でやったほうが楽なのかなあ。

2021年5月20日木曜日

PHP その8(pdoの利用)

 とりあえずSQLコマンドを直接入力した場合とphpmyadminを使った場合の両方で基本的なデータベースやテーブルを作成し、データをいじれるようになりました。これでしばらくはデータベースに関する知識の基本はOKでしょう。


 次に、PHPを使ってのMySQLの操作をしていくのですが、これが思ったよりも面倒くさい。設定がいくつか必要なのと、なぜかxamppでインストールできているはずのファイルが入っていなかったりしてけっこう手間取りました。


 そして、当たり前なんですが以前さらっと読んだだけではPHPの文法に関しての理解力が足りていないですね。特にクラスやインスタンスの関係についてJSの時には自己流でやっていたのもあって、間違って理解してしまっていた部分が大きかったようで、度々エラーを出しては再学習を繰り返しています。でも楽しいですね。まだ雪が積もっていた時期の手探りでコードを書き始めたころの感覚が蘇ります。


 さあ、また一歩一歩行きましょう、「いつかは辿り着く」「今が一番辛い」久しぶりに確認しておきます。

2021年5月19日水曜日

MySQL その2(テーブルの作成等の操作)

 とりあえず、今後MySQLとは長いお付き合いになりそうなので、本腰をすえて学習することにしました。もちろん応用であるプロジェクトの進行と平行させつつという当初の方針は変えず。

 まず今回はユーザー登録に必要なテーブルを作成しました、パスワードとかユーザー名とかそういうのを格納する奴ですね。また、プライマリーキーやユニークキーなどの存在も知りました。実際にまだ使ってはいませんが、こういうのがあるのかと知っておけば、後々自分の中の選択肢になりますし、何ができるか分かっていてその用語をなんとなくでも覚えていれば実際に使おうと思った時の検索が楽ですからね。

 とにかく私は学習の際は教科書的な教材は素早くサラッと読むようにしています。たぶんそこに書いてあるコードをそのまんまなぞっても、書いてある意味の2割くらいしか理解できないからです。それよりは、ふんふんこういう機能があるのか、と知識としてぼんやり入れておいて、いざ必要になったらその知識をもう一度調べなおして実際に自分のコードの中で使ってみることができることが重要だと思います。

2021年5月18日火曜日

PHP その7(ユーザー登録フォーム作成)

 とりあえず昨日でphpmyadminの使い方が分かりました。
 しかし、いちいちレンタルサーバーで開発していくのは面倒だと思ったので、結局一度は挫折したローカル環境を作っていました。
 知識を蓄えた後にやったらけっこう簡単にできましたね。あんなに何日も苦戦してたのはなんだったんだ。xamppのダウンロードまでしておきながらlocalhostを起動できなかったというんですから当時の自分は何をしていたのか我ながら不明。

 そしてある程度できました。データベースで必要なテーブルも作成したので、さっそくググってユーザー登録フォームのphpコードを探します。
 とりあえず内容を理解するためにコピペコピペで作ったものを動かしてみる。
 しかし、見慣れないエラーが…。そう、ローカル環境でのmySQLの設定を何にもしていなかったのです。
 ここでちょっとクールダウンして明日以降にします。考えていたのですが、HPの製作環境とローカル環境の両方でコードだけじゃなくデータベースも同じものを作るとなると、コードはコピーするだけだからいいけどデータベースの設定はめんどいと思うのです。どうしたもんかな。データベースの設定をSQLでコピペするだけで完了させられるようなことができれば一番いいのかもしれません。それだったらローカルで開発したものを一発で真似して作れますし。
 

2021年5月16日日曜日

MySQL その1(インストール、phpMyAdmin)

 とりあえず次はユーザー登録をできる仕組みを作らなくちゃなーということで、そうなると当然できなきゃ始まらないのがデータベースの基本的なところです。

 データベースは色々種類は多いみたいですが、もっともベーシックなMySQLにしておきます。というか私の借りてるサーバだとMySQLを基本的に想定しているみたいなので実質一択。


 操作するにはphpMyAdminというのでやるといいという情報を得て、さっそくインストールし環境を作っていきます。しかし、ここで課題にぶち当たる。

 phpMyAdminにログインするのにMySQLのユーザ名とパスワードを入力しろと要求されたんですが、はて、そんなの設定したっけ?全然やった記憶がない。


 というところで現状詰まっております。レンタルサーバーの側でMySQLの設定やったせいでこうなってるんですかねえ?うーん。

2021年5月14日金曜日

PHP その6(メールフォーム完成)

 とりあえずAWSの問題は置いておいて、まずはいったん今まで通りのレンタルサーバーで運用してphpファイルを書きました。そして、メールフォームを完成させました。

 数日で終わると思ったこの地点まで来るのになんと40日もかかったんですから自分でも驚き。でも、PHPの勉強はちょこちょこやっていたおかげで、コードは割とすんなりと書くことが出来ました。


 とりあえず、サーバーの移動はもうちょっと先でもいいかな。レンタルサーバーの容量が300GBあるので、しばらくはそれがいっぱいになることはないでしょうから。


 まずは、そろそろゲーム制作の方も再開しないとなあ。キャラデザの方をだいぶ待たせてしまっているし、まずはしっかりとしたストーリーを完成させないといけない。とりあえず今月中に細かいストーリーを完成させることを次の目標にしましょうか。

 あとは、Webのほうでもページの切り替え方とかの操作が分かってきたので、階層構造的にサイトを作成していこうかなとも思っています。まあ、階層構造的にするだけの内容をまずは充実させないといけないわけなのですが。

2021年5月13日木曜日

PHP その5(メールフォームとPOST再び)

 いやー、ひさっしぶりにエディタでコードを書いております。楽しいですね。コーダーのほうが性格的には向いているのかもしれません。でも、きっとサーバー操作も慣れれば楽しいと思うんですよねえ。何よりできることが増えるっていうのは喜びですから、コーディングだけでできることなんて限られてますからね。


 とりあえず、既存のサイトにメールフォームの形式を設置し、PHPでPOSTを送信するように設定しました。

 問題は、POSTを受けた際の操作がうまくできていないこと。なんかたまたま見つけたサイトでは、「action属性は空白にして処理することが望ましい」と書いてあるので素直にそれにしたがってやったのですが、POSTを送信してもうまく条件分岐せずにトップページも戻ってしまっています。

 これ素直にaction属性で他のファイルを指定すれば迷う必要のない部分なんですけど、本当に大事なことなのかなあ?前も書いたけどどうせ見られて困るような内容なんてないんだし、今は素直に属性を書いてしまおうかなあ、というところまでが今日の作業内容です。


 いや、でもほんと環境構築で詰まってた時と比べたらクッソ楽しいです。

2021年5月12日水曜日

AWSその10(環境構築完了ひとまず完了)

 やりました!きちんとEC2インスタンスにSSH接続でCloud9をつなげ、PHPのコードをサーバにアップロードすることが出来るようになりました。きちんとWebブラウザで起動を確認できました。

 主にこちらのページを参考にしました。


 ここからはPHPのコードを書きつつサーバの操作も磨いていく必要がありますね。


 全然進まないと思っていたAWSの環境構築ですが、終わってみるとやっぱり達成感あります。モチベーションも上がってきましたね!

2021年5月11日火曜日

AWSその9 (EC2インスタンスとCloud9の接続)

 いやー、さっぱり分かりません。こんだけ勉強して分からないってことある?ってくらい分からない。


 さっぱり作業が進んでいないんですが大丈夫ですかねえ。ま、気長にいきましょ。

2021年5月9日日曜日

AWSその8 (動的Webサイトの環境構築完了)

 ようやくできました。どうやらMySQLがバージョンが5から8に上がったためにコマンドが変わっていたのが原因だったようで、バージョン8のコマンドを打ち込んだらきちんと接続できました。

 これで環境構築は終わったので、次は今の環境に合わせてコードを書いたり必要なファイルを格納したりと言ったことをしていくことになります。AWSの知識と同時にPHPの知識ももう一度しっかり勉強していく必要があると思います。


 あと、ロジマガのゲームの方も製作進めなくちゃな。まずは私がしっかりとしたシナリオを作ることが求められます。函館取材を終わったし。ただ、こういう製作ってかなり苦しい作業なんですよねー。小説や脚本を書いてた時の経験を思い出すとですけどね。


 まあ、ゆっくりやっていきましょう。

2021年5月8日土曜日

AWSその7 (データベースへの接続)

 とりあえず再度AWSで基本的なサーバー環境の構築を再度してみました。あれだけ苦労しただけ合って今回はけっこうスイスイといきます。
 しかし、最後のEC2からRDSへの接続ができない。セキュリティグループの設定を間違えたかと思ってインバウンドルールを再度確認してみましたがやはり接続できず。

 うーん、なんでだ、と思い再度設定しなおしたら、今度はERROR 2059 (HY000)というエラーが。これは管理者としてログインしていない場合に出るという情報が検索したら出てきたが、私は管理者としてログインしているし、そもそもインスタンスというサーバーの権限で入っている状態。うーん、もうちょっと調べないといけないか。

2021年5月6日木曜日

AWSその6 (詰まる)

  とりあえず環境は作り終わったのですが、そこから作った環境でWebサイトを作っていこうと思うのですがうまくいきません。

 Cloud9で作ったコードを表示するようにしてみたいのですが、やはり静的なページにとどまっており、動的なサイトになっていきません。


 こりゃあしょうがねえなとAWSの基礎から勉強しなおしています。ブラックベルトというガイドを見て分からない部分を詳しく調べるという学校のお勉強のような作業。あんまり楽しくはない。

 まあ、頑張りましょう。

2021年5月5日水曜日

AWSその5 (パブリックサブネットとプライベートサブネット)

 今日もあんまり進まなかったなあ。キャラデザ関係のやりとりに時間をとられたというのもあるけれど、もうちょっと集中して取り組む必要がある気がする。時間が有限である以上、何かを捨てなくては時間は捻出できないわけなんだけれど、函館取材以降合同誌関係を含めてtwitterの活動が活発化してしまったことで本プロジェクトに割く時間が減ってしまっている。他の趣味的な活動を減らすことを検討しなくてはいけない。


 取材旅行前に作ったVPCの環境は管理者のみ操作する環境がなかったので、それを新たに作った。将来的にはユーザー操作の環境も作らなくてはいけないが、まずはここから。

 あと、セキュリティ方面もそれなりのものにしなくてはいけない。これまた求めだすと泥沼にハマる分野ではあるので見極めが重要になってくる。今までの製作物なんかに関しては、ぶっちゃけ秘密にしたい場所なんてほとんどないし、私のアイディアをパクる人がいたとしても、「私のアイディアを無償で実現して、しかも普及させてくれた」としか思わないのだが、ユーザーが関わってくるとそうはいかなくなる。ユーザーの人たちはきっと自分たちのアイディアや自分たちが作ったものを守りたいからだ。

 まあ、ボチボチがんばっていきますか。

2021年5月4日火曜日

その他 その11(函館取材整理)

 お久しぶりです。旅行中でもブログは書くと言いましたが、正直それどころじゃなかったです。いつかはきちんとまとめたい気もしますが、需要があるとも思えないので時間がある時に旅行記みたいな形で執筆してみたいと思います。

 今日は旅立つ前に何をしていたかを思い出すのでほとんど終わりました。何せサーバ周りなんかは完全に理解せず暗中模索状態だったもので…

 あと、私の拙作も載っている合同誌が完成し、私の手に届きました。気になる方は、こちらをご覧ください。他の方の作品読むと、もっと自由に書いてよかったなと思います。こういうゲームファンの合同誌に寄稿するのって初めてだったんで、ストーリーも内容も外れないように教科書通りを徹底して書いたので駄作ということはないですが面白みに欠ける作品になってしまったような気がします。