おはようございます、ひさきです!
今日からいよいよ、PHPでブラウザ上で動くゲームを作り始めます!
今日のお題はこちらになります!
ログイン的な機能の作成
というのは「ログイン」「サインイン」とか、そういうものです。
「いちから」のTODOリストでは<ひさき>だけが使う想定だったので、まったく意識していませんでしたが、これから作るゲームは多数のプレイヤーがいるので、そういうプログラムを作る必要があります。
・・・なんていうか、現状の知識だと全然わかりません。こういうときはAIに聞いてみましょうか。「PHP プログラム ログイン機能」でぽちっと。
ふ、ふーん。なるほどね。私の想像力が、AIに追いつかない。
ログイン機能の種類
ありがとうございます、師匠!さすがです!
ひさきのレベルまで落として話してくれるのは師匠だけです!
ハンドルネーム設定/解除の仕様
「ハンドルネーム設定/解除」は、なんとなくですが前のTODOリストの最初の登録ファイルと似た感じになりますかね。最後のCSVファイルとか、DBへの入力部分が、違うことになるのかな?
システム構成/ファイル構成
name_input.php
name_complete.php
name_delete.php
status.php
プログラム仕様
入力画面は ハンドルネーム[text]と送信[submit]を設置する。
完了画面でCookieにハンドルネームを保存する。
状態画面ではCookieの内容があれば表示する。
解除画面はCookieの値を削除する。もしくは空白にする。
できたら5個くらい同時にログインして、それぞれの状態画面で自分のハンドルネームが表示されることを確認する
デザイン仕様
noteのログイン画面を参考に入力画面を作りましょう
その過程で、既存サイトからCSSなどを参考する方法も学びましょう
依頼される際に、参考サイトを提示されることが多いので、その予習も兼ねてます
習得する技術と目的
ハンドルネーム設定/解除の実装
わかりました!
とりあえず4つファイルを作成するとして、
フォルダは新しく作ったほうが良いですかね?
とりあえず4つのファイルを作って、
画面上はこんな感じかなーって作ってみました。
name_input.php
<form method="POST" action="./name_complete.php">
<div>ハンドルネーム<input type="text" name="h-name" value="" /></div>
<input type="submit" name="cmd" value="設定" />
</form>
<a href="status.php">戻る</a>
name_complete.php
<?PHP
print $_POST['h-name'];
?>
登録しました<br />
<a href="status.php">戻る</a>
name_delete.php
<?PHP
print $_POST['h-name'];
?>
解除しました<br />
<a href="status.php">戻る</a>
status.php
<?PHP
print $_POST['h-name'];
?>
ハンドルネームの <a href="name_input.php">設定</a>
/
<a href="name_delete.php">解除</a>
おいしそうな名前なのに、大事なんですね。クッキー。
入力画面:name_input.php
<form method="POST" action="./name_complete.php">
<div>ハンドルネーム<input type="text" name="h-name" value="" /></div>
<input type="submit" name="cmd" value="設定" />
</form>
<a href="status.php">戻る</a>
完了画面:name_complete.php
<?PHP
setCookie('h-name' , $_POST['h-name']);
?>
登録しました<br />
<a href="status.php">戻る</a>
解除画面:name_delete.php
<?PHP
setCookie('h-name' , '');
?>
解除しました<br />
<a href="status.php">戻る</a>
状態画面:status.php
<?PHP
print $_COOKIE['h-name'];
?>
<br />
<br />
ハンドルネームの <a href="name_input.php">設定</a>
/
<a href="name_delete.php">解除</a>
テスト方法
えっと・・・。ひさきはパソコン1台しかもってないので、師匠にアクセスしてもらってチェックするとかでしょうか?
じゃあ不可能なのでしょうか?
うーん、一つのパソコンでもWEBブラウザを変えればいいんでしょうか?
Google Chromeです。
わかりました!あ、もうインストールされてるみたいでした!
それは素人が使って大丈夫な機能なのですか?スパイみたいなマークついてますけど…
なるほど、そういうのもあるんですね。わかりました!
ばっちり大丈夫みたいです!
デザイン実装
サンプル画像
え、すご!
これもうできてるんでは!?
うーんと、一番上の「ひさき WEB Games」は背景なさそうで、文字は大きめで黒文字で、線は下に引いてあるのかな。
んで、少し合間を開けて「ログイン」が中央寄せかな。
その下がフォームだけど、フォームも中央寄せだけど、フォームの中身は左寄せみたいな?
ひとまず、書き進めてみようかな・・・
いちおうできました、こんな感じでしょうか?
変更前
変更後
褒めて頂いてありがとうございます!
デザインが反映されるのとても楽しいです!
私は絵は描けないから、デザインとか遠い世界と思っていましたが、こういう感じで絵を描かなくてもデザインをするって楽しいと思えました。
そして師匠はごまかせませんでしたね。そうなんです、色については似せてごまかしてました… 枠線の丸角はサンプルページだと、divで3個くらい囲んでやるみたいなことが書いてあったんですけど、うまく実装できなかったんです。
添削:丸カッコ
あ、すごい。これだけでできたんですね!
添削:色のスポイト
完成:修正適用
なんか、すごい、デザインを入れたら、WEBサイトっぽくなりました!
まだハンドルネームをつける機能しかないとは思えない見掛けになりました!かっこいい!
ではこれで「ハンドルネーム設定/解除」は無事に完成できました!
所感
今回のプログラムで思ったことは、このプログラムを一人でやったとしたらとても1日じゃ終わらないんじゃないかなってことです。師匠が付いていてくれて、私のレベルに合わせて指導してくれるのがとてもありがたく感じました。「いちから」が終わった後もプログラミングは勉強してましたけど、やっぱり師匠に見てもらって進めていくとスムーズ度が段違いです。効率がすごい高い気がします。何を覚えればいいか、課題が何かがハッキリ教えてもらえるのは凄いありがたいです。
たぶん、独学でプログラムを学べる人は、目的がはっきりしている一部の人だけだと思います。目的が「プログラム力を上げたい」だけの人は、だいぶ遠回りしながらスキルアップをしていくことになるんじゃないかな。
というわけで、プログラミングを勉強する人は、誰かに教えてもらうことをお勧めします!
そして次は「インサイダーゲーム」を作るみたいです!