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

質問編集履歴

1

誤字、質問文の修正

2020/01/31 03:38

投稿

Ryoten0513
Ryoten0513

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,15 @@
1
1
  ### 前提・実現したいこと
2
2
  会員ページの新規登録機能でPODを利用してメールアドレスとパスワードをDBに登録したいと考えています。
3
- SELECT文の使い方、DBに関してご教授いただきたいです。
3
+ INSERT文の使い方、DBに関してご教授いただきたいです。
4
4
  ### 発生している問題・エラーメッセージ
5
- try~catchでのエラーは出ていないので接続エラーではないと思います
6
5
 
6
+
7
7
  ### 該当のソースコード
8
8
 
9
9
  ```ここに言語名を入力
10
10
  <?php
11
+ ini_set('display_errors', 1);
12
+ ini_set('error_reporting', E_ALL);
11
13
  session_start();
12
14
  require_once('database.php'); // データベースアクセスファイル読み込み
13
15
  require_once('auth.php'); // ログイン認証ファイル読み込み
@@ -19,17 +21,22 @@
19
21
  if (isset($_POST['signup'])) {
20
22
  if(!empty($_POST['email']) && !empty($_POST['password'])){
21
23
  try{
22
- $dbh=new PDO('mysql:dbname=DBname;host=localhost;charset=utf8','user','pass');
24
+ $dbh=new PDO('mysql:dbname=DBname;host=localhost;charset=utf8','user','pass',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
23
25
  }catch(PDOException $e){
24
26
  echo "DBerror:".$e->getMessage();
25
27
  }
26
28
  $email=$_POST['email'];
27
29
  $password=$_POST['password'];
28
30
 
31
+ $email=htmlspecialchars($email, ENT_QUOTES, 'UTF-8');
29
- $dbh =new PDO('mysql:dbname=DBname;host=localhost;charset=utf8','user','pass');
32
+ $password=htmlspecialchars($password, ENT_QUOTES, 'UTF-8');
33
+
30
- $sql = "INSERT INTO DBname(email,password) VALUES ('$email','$password')";
34
+ $sql = "INSERT INTO user_id(email,password) VALUES (:email,:password)";
31
- $dbh->query($sql);
35
+ $stt=$dbh->prepare($sql);
36
+ $stt->bindValue(':email',$email,PDO::PARAM_STR);
37
+ $stt->bindValue(':password',$password,PDO::PARAM_STR);
32
- //DB登録確認
38
+ $stt->execute();
39
+
33
40
  if($account=login($_POST['email'], $_POST['password'])){
34
41
  $_SESSION['account'] = $account;
35
42
  header("Location: kon_mypage.php");
@@ -39,7 +46,7 @@
39
46
  // ログイン失敗時の表示
40
47
  } elseif(empty($_POST['email']) && empty($_POST['password'])) {
41
48
  $errorMessage = "メールアドレスとパスワードを入力してください。";
42
- }
49
+ }
43
50
  }
44
51
  ?>
45
52
  <!DOCTYPE html>