回答編集履歴
1
修正
answer
CHANGED
@@ -11,4 +11,34 @@
|
|
11
11
|
$check_login_queryが1じゃなかったらどうなるんでしょう。何も出力しませんね。
|
12
12
|
DB接続失敗したら?SELECT文が正しく機能しなかったら?など考慮の漏れが著しいです。
|
13
13
|
|
14
|
-
古い書籍なのか、初心者向けなのか分からないですが、初心者でもあまり参考にしてほしくない書籍・コードだと個人的には思います。
|
14
|
+
古い書籍なのか、初心者向けなのか分からないですが、初心者でもあまり参考にしてほしくない書籍・コードだと個人的には思います。
|
15
|
+
|
16
|
+
追記を受けて
|
17
|
+
----
|
18
|
+
|
19
|
+
> 「変数の情報と適応する情報が入った列が何行あるのか?」を取得するという認識で正しいのでしょうか?
|
20
|
+
|
21
|
+
「変数の情報と」の意味が分からないですが、おおよそ理解通りかと。
|
22
|
+
PHPマニュアルにある「結果の行数」とは「今回の場合はSELECT文を実行した結果の行数」が入っていると考えて良いです。
|
23
|
+
select文の条件を色々変えてみたうえでmysqli_num_rows()の結果をechoで出力してみてどうなるか確認してみると良いです。
|
24
|
+
|
25
|
+
> ここで二つめの質問なのですが、ここで取得した連想配列とは、下のようなものでしょうか?
|
26
|
+
|
27
|
+
データによるので取得結果をvar_dump()で確認してみては如何でしょうか。
|
28
|
+
「想定通りの情報が入っているか」デバッグにもなるのでぜひ確認してみてください。
|
29
|
+
|
30
|
+
> $row['username']というのはどのような意味なのでしょうか?
|
31
|
+
予想では、ユーザーネームに入っている配列の「username」キーの情報を変数に格納するという意味だと思うのですが・・・・
|
32
|
+
|
33
|
+
ここで「予想」してしまうとプログラミングの概念的におかしくなります。
|
34
|
+
プログラムは**書いたとおりにしか動かない**ので実態を確認すべきです。
|
35
|
+
1つ前で結果をvar_dump()で確認すればこの疑問の理解が進み、解消できますね。
|
36
|
+
|
37
|
+
> 最後の質問なのですが、exit();は必要なのでしょうか?
|
38
|
+
|
39
|
+
はい。基本的には必要とは思います。
|
40
|
+
なぜなら[header](https://www.php.net/manual/ja/function.header.php)はあくまでレスポンスを定義するものであり、リダイレクトを宣言したからといって、その時点で画面遷移が起こるわけではないからです。
|
41
|
+
試しにheader()の直後に何か処理(できればログ出力とか、セッションとかで画面遷移しても影響が確認できる処理)を記載してみると良いです。
|
42
|
+
|
43
|
+
exitを書くのは**これ以降は何も処理を行いません**という意味で「プログラムを終了させる」ためであると言っても良いです。
|
44
|
+
もちろん「お作法のように書いておこう」ということであり、exitを書かなくても済むようなプログラムが望ましいですけど、「必ず何もない前提」のようなプログラミングもよろしくありません。
|