-
Notifications
You must be signed in to change notification settings - Fork 1
/
掲示板.php
177 lines (151 loc) · 5.53 KB
/
掲示板.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<!DOCTYPE html>
<!--練習-->
<?php
// DB接続設定
$dsn = 'データベース名';
$user = 'ユーザー名';
$password = 'パスワード';
$pdo = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
$sql = "CREATE TABLE IF NOT EXISTS mission5"
." ("
. "id INT AUTO_INCREMENT PRIMARY KEY,"
. "name char(32),"
. "time char(32),"
. "comment TEXT,"
."password char(32)"
.");";
$stmt = $pdo->query($sql);
$name= ($_POST["namae"]);
$comment = ($_POST["comment"]);
//日付データを取得
$postedAt = date("Y年m月d日 H:i:s");
$password1=($_POST["password1"]);
//通常入力
//もしフォームが空じゃなかったら書き込みをする
if (empty($name)==false&&empty($comment)==false&&empty($password1)==false &&empty($_POST["hidden"])==true){
$sql = $pdo -> prepare("INSERT INTO mission5 (id, name, time, comment, password) VALUES (:id, :name, :time, :comment, :password)");
$sql -> bindParam(':id', $did, PDO::PARAM_STR);//strで文字列だと指定
$sql -> bindParam(':name', $dname, PDO::PARAM_STR);
$sql -> bindParam(':time', $dtime, PDO::PARAM_STR);
$sql -> bindParam(':comment', $dcomment, PDO::PARAM_STR);
$sql -> bindParam(':password', $dpassword, PDO::PARAM_STR);
$dname = $name;
$dtime = $postedAt;
$dcomment = $comment;
$dpassword = $password1; //好きな名前、好きな言葉は自分で決めること
$sql -> execute();
}
//削除機能
$delete=$_POST["delete"];
$password2=$_POST["password2"];
if (empty($delete)==false) {
$id = $delete;
//$idの値を抽出する
$sql = 'SELECT * FROM mission5 WHERE id=:id ';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll();
foreach ($results as $row){
//$rowの中にはテーブルのカラム名が入る
if($row['password']==$password2){//パスワードが一致したら
$sql = 'delete from mission5 where id=:id';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
}
else{
echo "パスワードが違います";
}
}
}
//削除機能終わり
//編集機能始まり
$edit=$_POST["edit"];
$password3=$_POST["password3"];
if(empty($edit)==false){
$id = $edit;
//$idの値を抽出する
$sql = 'SELECT * FROM mission5 WHERE id=:id ';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$results = $stmt->fetchAll();
foreach ($results as $row){//idが一致するテーブルから値を取り出す
//$rowの中にはテーブルのカラム名が入る
if($row['password']==$password3){
$editname=$row['name'];
$editcomment=$row['comment'];
$editid=$row['id'];
$editpassword=$row['password'];
}
else{
echo "パスワードが違います";
}
}
}
if(empty($_POST["hidden"])==false){//hiddenが空っぽじゃなかったら
//上書き書き込み
$id = $_POST["hidden"]; //変更する投稿番号
//変更したい名前、変更したいコメントは自分で決めること
$sql = 'UPDATE mission5 SET name=:name,comment=:comment,password=:password,time=:time WHERE id=:id';
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
$stmt->bindParam(':time', $postedAt, PDO::PARAM_STR);
$stmt->bindParam(':password', $password1, PDO::PARAM_STR);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
}
//編集機能終わり
?>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>mission_3</title>
</head>
<body>
<form action="" method="post">
<投稿フォーム><br>名前<br><input type="text" name="namae" value="<?php
if(empty($edit)==false&&$row['password']==$password3){//編集番号とパスワードが一致したら
echo $editname;
} ?>"><br>
コメント<br><input type="text" name="comment" value="<?php
if(empty($edit)==false&&$row['password']==$password3){//編集番号とパスワードが一致したら
echo $editcomment;
} ?>">
<input type="hidden" name="hidden" value="<?php
if(empty($edit)==false&&$row['password']==$password3){//編集番号とパスワードが一致したら
echo $editid;
} ?>"><br>
パスワード<br><input type="text" name="password1" value="<?php
if(empty($edit)==false&&$row['password']==$password3){//編集番号とパスワードが一致したら
echo $editpassword;
} ?>">
<input type="submit" name="submit"><br>
</form>
<form action="" method="post">
<br><削除フォーム><br>削除番号<br><input type="text" name="delete" ><br>
パスワード<br><input type="text" name="password2" >
<input type="submit" value="削除"><br>
</form>
<form action="" method="post">
<br><編集フォーム><br>編集番号<br><input type="text" name="edit" ><br>
パスワード<br><input type="text" name="password3">
<input type="submit" value="編集"><br>
</form>
</body>
</html>
<?php
$sql = 'SELECT * FROM mission5';
$stmt = $pdo->query($sql);
$results = $stmt->fetchAll();
foreach ($results as $row){
//$rowの中にはテーブルのカラム名が入る
echo $row['id'].',';
echo $row['name'].',';
echo $row['time'].',';
echo $row['comment'];
echo "<hr>";
}
?>