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

質問編集履歴

2

分かりやすくした。

2019/07/19 07:39

投稿

red-ehephant
red-ehephant

スコア12

title CHANGED
File without changes
body CHANGED
@@ -7,11 +7,55 @@
7
7
  ### 該当のソースコード
8
8
  ```php
9
9
  <?php
10
+ session_start();
11
+ // データベース接続
12
+ $dbUrl = parse_url(getenv('DATABASE_URL'));
13
+ $db['host'] = $dbUrl['host'];
14
+ $db['user'] = $dbUrl['user'];
15
+ $db['pass'] = $dbUrl['pass'];
16
+ $db['dbname'] = ltrim($dbUrl['path'], '/'); // データベース名
17
+ $dsn = sprintf('pgsql:host=%s;dbname=%s',$db['host'],$db['dbname']);
18
+
19
+
20
+ try{
21
+ $pdo = new PDO($dsn,$db['user'],$db['pass']);
22
+
23
+ $sql = "SELECT * FROM sample01";
24
+
25
+ $res = $pdo->query($sql);
26
+
27
+
28
+ }catch (PDOException $e){
29
+ exit(mb_convert_encoding($e->getMessage(),'UTF-8','SJIS-win'));
30
+ }
31
+
32
+ $pdo = null;
33
+
10
34
  // submitが押された時の処理
11
35
  if(isset($_POST['submit'])){
36
+
37
+ //ここでしたいのはnameの重複チェックですが
12
- //submitが押された時のコ
38
+ //エラが出てまして未完成です
39
+ //DBと接続
40
+ $pdo = new PDO($dsn,$db['user'],$db['pass']);
41
+ //SQL文を準備
42
+ $sql = "SELECT * FROM sample3 WHERE name = :name";
43
+ //インジェクション対策
44
+ $stmt = $pdo->prepare($sql);
45
+ //バインドする
46
+ $stmt->bindParam(':name', $ans[0]);
47
+ //SQLを実行
48
+ $stmt->execute();
49
+
50
+ $user = $stmt->fetch();
51
+
52
+ $_SESSION['name'] = $ans[0];
53
+
54
+
55
+ header("Location: index2.php");
13
56
  }
14
57
  ?>
58
+
15
59
  <!DOCTYPE html>
16
60
  <html lang="ja">
17
61
  <head>
@@ -19,7 +63,7 @@
19
63
  <title>PHP TEST</title>
20
64
  </head>
21
65
  <body>
22
- <form method="POST" action="index2.php">
66
+ <form method="POST" action="">
23
67
  <table>
24
68
  <?php foreach( $res as $value ): ?>
25
69
  <tr>
@@ -28,6 +72,9 @@
28
72
  <?php print htmlspecialchars($value[Question],ENT_QUOTES, "UTF-8"); ?>
29
73
  </td>
30
74
  <td>
75
+
76
+ </td>
77
+ <td>
31
78
  <input type="text" name="ans[]" value="">
32
79
  <input type="hidden" name="res[]" value="<?php echo $value[Question] ?>">
33
80
  </td>
@@ -39,6 +86,7 @@
39
86
  </form>
40
87
  </body>
41
88
  </html>
89
+
42
90
  ```
43
91
 
44
92
  ### 発生している問題・エラーメッセージ

1

わかりやすく直した。

2019/07/19 07:39

投稿

red-ehephant
red-ehephant

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  いつもお世話になっております。
3
3
 
4
4
  PHPとHTMLを使っているのですが、
5
- 入力内容の確認ボタンを押すと、PHPで指定したボタンが押された時の作業を行いかつ次の画面(ここでいうとindex2.php)にPOSTで変数を送りたい。
5
+ 入力内容の確認ボタンを押すと、PHPで指定したsubmitボタンが押された時の処理を行いかつ次の画面(ここでいうとindex2.php)にPOSTで変数を送りたい。
6
6
 
7
7
  ### 該当のソースコード
8
8
  ```php