teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

var_dump($row);した結果を追加しました。

2019/05/16 04:45

投稿

rikuta930
rikuta930

スコア18

title CHANGED
File without changes
body CHANGED
@@ -54,7 +54,6 @@
54
54
  わかる方いらっしゃいましたら、教えて下さい!!
55
55
 
56
56
  わからない部分は $check_login_query からです
57
-
58
57
  ``` php
59
58
  <?php
60
59
  if (isset($_POST['login_button'])) {
@@ -78,4 +77,9 @@
78
77
 
79
78
  }
80
79
  ?>
80
+ ```
81
+
82
+ var_dump($row);した結果
83
+ ```php
84
+ array(24) { [0]=> string(1) "3" ["id"]=> string(1) "3" [1]=> string(8) "Chandler" ["first_name"]=> string(8) "Chandler" [2]=> string(4) "Bing" ["last_name"]=> string(4) "Bing" [3]=> string(13) "chandler_bing" ["username"]=> string(13) "chandler_bing" [4]=> string(18) "Chandler@gmail.com" ["email"]=> string(18) "Chandler@gmail.com" [5]=> string(32) "e04857f0b448a8d84176da365bca0da6" ["password"]=> string(32) "e04857f0b448a8d84176da365bca0da6" [6]=> string(10) "2019-05-15" ["signup_date"]=> string(10) "2019-05-15" [7]=> string(54) "assets/images/profile_pics/defaults/head_deep_blue.png" ["profile_pic"]=> string(54) "assets/images/profile_pics/defaults/head_deep_blue.png" [8]=> string(1) "0" ["num_posts"]=> string(1) "0" [9]=> string(1) "0" ["num_likes"]=> string(1) "0" [10]=> string(2) "no" ["user_closed"]=> string(2) "no" [11]=> string(1) "," ["friend_array"]=> string(1) "," }
81
85
  ```

3

$_SESSION['username'] = $username; の抜けていた$を足しました!

2019/05/16 04:45

投稿

rikuta930
rikuta930

スコア18

title CHANGED
File without changes
body CHANGED
@@ -21,7 +21,7 @@
21
21
  $row = mysqli_fetch_array($check_database_query);
22
22
  $username = $row['username'];
23
23
 
24
- $_SESSION['username'] = username;
24
+ $_SESSION['username'] = $username;
25
25
  header("Location: index.php");
26
26
  exit();
27
27
 
@@ -70,7 +70,7 @@
70
70
  $row = mysqli_fetch_array($check_database_query);
71
71
  $username = $row['username'];
72
72
 
73
- $_SESSION['username'] = username;
73
+ $_SESSION['username'] = $username;
74
74
  header("Location: index.php");
75
75
  exit();
76
76
 

2

わからない部分の詳細や、タイトルを変更しました。

2019/05/16 04:00

投稿

rikuta930
rikuta930

スコア18

title CHANGED
@@ -1,1 +1,1 @@
1
- php教材意味分からない行がりました!!わか方教えてください!!
1
+ なぜSQL列を取得して、配列入れる必要があるのか?
body CHANGED
@@ -1,7 +1,56 @@
1
- phpでツイッターのクローンを教材を見ながら作成しています。
1
+ phpでツイッターのクローンをUdemyの教材を見ながら作成しています。
2
2
 
3
- ログイン機能を作成しているですが、説明のない部分があって、どういう意味なかが調べてもよくわかりませんた。
3
+ 教材でどうしても意味分からない部分があっので、教えていだきたいです
4
4
 
5
+ ```PHP
6
+ $check_database_query = mysqli($con, "SELECT * FROM users WHERE email = '$email' AND password = '$password'");
7
+ $check_login_query = mysqli_num_rows($check_database_query);
8
+
9
+ ```
10
+
11
+ SQLのテーブルに入っているユーザー情報を取り出して、変数に入れて、行数がいくつかを変数に格納していました。
12
+ ここで一つ目の質問なのですが、mysqli_num_rowsは「結果の行数を取得する」という意味とマニュアルに書いてあったのですが、これは「変数の情報と適応する情報が入った列が何行あるのか?」を取得するという認識で正しいのでしょうか?
13
+
14
+
15
+ その後、
16
+
17
+
18
+ ```php
19
+
20
+ if($check_login_query == 1) {
21
+ $row = mysqli_fetch_array($check_database_query);
22
+ $username = $row['username'];
23
+
24
+ $_SESSION['username'] = username;
25
+ header("Location: index.php");
26
+ exit();
27
+
28
+ }
29
+ ```
30
+
31
+ まず、If文で、先ほど得た行数が1、つまり、正常に情報がテーブルに入っているかどうかを確認しています。
32
+ 次に、mysqli_fetch_array関数を使って、結果の行を連想配列で取得しています。
33
+ ここで二つめの質問なのですが、ここで取得した連想配列とは、下のようなものでしょうか?
34
+ ```php
35
+
36
+ $row = array(
37
+ "email" => "test@gmail.com",
38
+ "password" => "**********"
39
+ );
40
+
41
+ ```
42
+ その後、
43
+ ```php
44
+ $username = $row['username'];
45
+ ```
46
+ と続くのですが、$row['username']というのはどのような意味なのでしょうか?
47
+ 予想では、ユーザーネームに入っている配列の「username」キーの情報を変数に格納するという意味だと思うのですが・・・・
48
+
49
+ 最後の質問なのですが、exit();は必要なのでしょうか?
50
+
51
+
52
+
53
+
5
54
  わかる方いらっしゃいましたら、教えて下さい!!
6
55
 
7
56
  わからない部分は $check_login_query からです

1

コードを付け足しました。

2019/05/16 03:57

投稿

rikuta930
rikuta930

スコア18

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  わかる方いらっしゃいましたら、教えて下さい!!
6
6
 
7
+ わからない部分は $check_login_query からです
8
+
7
9
  ``` php
8
10
  <?php
9
11
  if (isset($_POST['login_button'])) {