回答編集履歴

4

変数のオブジェクト宣言を追加

2018/11/02 02:37

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  function db_connect(){
14
14
 
15
- $obj = [];
15
+ $obj = []; //変数のオブジェクト宣言
16
16
 
17
17
  try{
18
18
 
@@ -32,7 +32,7 @@
32
32
 
33
33
  $pdo->setAttribute(PDO::ATTR_PERSISTENT, true);
34
34
 
35
- $object = $pdo;
35
+ $obj = $pdo;
36
36
 
37
37
  }catch(PDOException $Exception){
38
38
 
@@ -92,4 +92,4 @@
92
92
 
93
93
 
94
94
 
95
- 最後に、肝心のログイン画面ですが、main.phpと同じように作ればいいです。$pdo内にはdbオブジェクトか、エラーメッセージのjsonオブジェクトのいずれかが入っている状態なので、表のプログラムから判別してください。
95
+ 最後に、肝心のログイン画面ですが、main.phpと同じように作ればいいです。$pdo内にはdbオブジェクトか、エラーメッセージのjsonオブジェクトのいずれかが入っている状態なので、プログラムから判別してください。

3

オブジェクトにして変数を返す

2018/11/02 02:37

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -12,7 +12,9 @@
12
12
 
13
13
  function db_connect(){
14
14
 
15
+ $obj = [];
16
+
15
- try{
17
+ try{
16
18
 
17
19
  $pdo = new PDO(
18
20
 
@@ -30,7 +32,7 @@
30
32
 
31
33
  $pdo->setAttribute(PDO::ATTR_PERSISTENT, true);
32
34
 
33
- $connect_err = "false";
35
+ $object = $pdo;
34
36
 
35
37
  }catch(PDOException $Exception){
36
38
 
@@ -38,13 +40,13 @@
38
40
 
39
41
  $login_name = '';
40
42
 
41
- $connect_err = "true";
43
+         $obj = json_encode($connect_err , JSON_HEX_TAG | JSON_HEX_AMP |
42
44
 
43
- exit;
45
+ JSON_HEX_APOS | JSON_HEX_QUOT);
44
46
 
45
- }
47
+ }
46
48
 
47
- return $pdo;
49
+ return $obj;
48
50
 
49
51
  }
50
52
 
@@ -74,6 +76,8 @@
74
76
 
75
77
  $pdo = db_connect(); //外部ファイルからdbオブジェクト構築の関数を読み込む
76
78
 
79
+
80
+
77
81
  /*データベース処理*/
78
82
 
79
83
  ?>
@@ -88,4 +92,4 @@
88
92
 
89
93
 
90
94
 
91
- 最後に、肝心のログイン画面ですが、main.phpと同じように作ればいいです。
95
+ 最後に、肝心のログイン画面ですが、main.phpと同じように作ればいいです。$pdo内にはdbオブジェクトか、エラーメッセージのjsonオブジェクトのいずれかが入っている状態なので、表のプログラムから判別してください。

2

外部ファイルの中身

2018/11/02 02:14

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -1,4 +1,58 @@
1
1
  dbに問い合わせる部分を外部ファイルにして 最後にdbオブジェクトが入った変数 $pdoを返すようにしたらいいと思います。それから、この外部ファイル名をfunc_db_connect.phpとでも名付けてみます。
2
+
3
+
4
+
5
+ func_db_connect.php
6
+
7
+ ```PHP
8
+
9
+ <?php
10
+
11
+
12
+
13
+ function db_connect(){
14
+
15
+ try{
16
+
17
+ $pdo = new PDO(
18
+
19
+ 'mysql:host=localhost;dbname=testdb;charset=utf8',
20
+
21
+ $login_name,
22
+
23
+ $login_pass
24
+
25
+ );
26
+
27
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
28
+
29
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
30
+
31
+ $pdo->setAttribute(PDO::ATTR_PERSISTENT, true);
32
+
33
+ $connect_err = "false";
34
+
35
+ }catch(PDOException $Exception){
36
+
37
+ $login_pass = '';
38
+
39
+ $login_name = '';
40
+
41
+ $connect_err = "true";
42
+
43
+ exit;
44
+
45
+ }
46
+
47
+ return $pdo;
48
+
49
+ }
50
+
51
+
52
+
53
+ ```
54
+
55
+
2
56
 
3
57
 
4
58
 
@@ -10,11 +64,15 @@
10
64
 
11
65
 
12
66
 
67
+ main.php
68
+
13
69
  ```PHP
14
70
 
15
71
  <?php
16
72
 
17
73
  require_once($_SERVER['DOCUMENT_ROOT']."/func_db_connect.php");
74
+
75
+ $pdo = db_connect(); //外部ファイルからdbオブジェクト構築の関数を読み込む
18
76
 
19
77
  /*データベース処理*/
20
78
 
@@ -27,3 +85,7 @@
27
85
  </html>
28
86
 
29
87
  ```
88
+
89
+
90
+
91
+ 最後に、肝心のログイン画面ですが、main.phpと同じように作ればいいです。

1

Sessionは切れるおそれがある

2018/11/02 02:06

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -1,12 +1,12 @@
1
- dbにログインする部分を外部ファイルにして 最後にdbオブジェクトが入った変数 $pdoを返すようにしたらいいと思います。それから、この外部ファイル名をfunc_db_connect.phpとでも名付けてみます。
1
+ dbに問い合わせる部分を外部ファイルにして 最後にdbオブジェクトが入った変数 $pdoを返すようにしたらいいと思います。それから、この外部ファイル名をfunc_db_connect.phpとでも名付けてみます。
2
2
 
3
3
 
4
4
 
5
- そして、`require_once()`という関数があるので、これをmain.php読み込み直後に記述して、逐一読み込んだ方がいいですかね
5
+ そして、`require_once()`という関数があるので、これをmain.php読み込み直後に記述して、逐一読み込んだ方がいいです。Sessionを使ってオブジェクトを受け渡しても切れる恐れがありますので。
6
6
 
7
7
 
8
8
 
9
- それから、PHPについてですが、なるべくhtml内でプログラムの演算処理は行わない方がいいですよ。パフォーマンスが低下するので、出力させるだけにしてください。
9
+ それから、PHPについてですが、なるべくhtml内でプログラムの演算処理は行わない方がいいですよ。パフォーマンスが低下するので、変数を出力させるだけにしてください。
10
10
 
11
11
 
12
12