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

質問編集履歴

5

phpのファイル設定の変更

2020/05/08 11:33

投稿

hianmain
hianmain

スコア0

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,8 @@
11
11
  ### 発生している問題・エラーメッセージ
12
12
  上記の条件式に合う、コードを記述していると思うのですが、最初にページを開いた際(初期状態)に、ラジオボタンのID3にcheckedがつかないです。
13
13
 
14
+ エラー表記に関して
14
- エラーに関しては何も発生していないので、if文の文法が実現したい条件文っていないかもしれません
15
+ error_reporting(E_ALL & ~E_NOTICE);の設定をするらしく、noticeのエラーが出ないようっているとことです
15
16
 
16
17
 
17
18
  ### 該当のソースコード
@@ -19,7 +20,7 @@
19
20
  ```PHP
20
21
  <?php
21
22
 
22
- ini_set('display_errors', 1);
23
+ error_reporting(E_ALL & ~E_NOTICE);
23
24
 
24
25
  //セッションスタート
25
26
  session_start();

4

コメントの追記

2020/05/08 11:32

投稿

hianmain
hianmain

スコア0

title CHANGED
File without changes
body CHANGED
@@ -49,7 +49,7 @@
49
49
 
50
50
  //処理
51
51
  if($_POST['token'] !== $_SESSION['token']){
52
- //セッションの内容を削除
52
+ //セッションの内容を削除する処理を後ほど記述
53
53
  header( "Location: ./login.php" );
54
54
  exit();
55
55
  }else{

3

コードの追記

2020/05/08 08:52

投稿

hianmain
hianmain

スコア0

title CHANGED
File without changes
body CHANGED
@@ -17,13 +17,255 @@
17
17
  ### 該当のソースコード
18
18
 
19
19
  ```PHP
20
- <?php foreach($rows as $row) : ?>
20
+ <?php
21
21
 
22
- <input class="radio" type="radio" name="color" value="<?php echo h($row['COLOR_ID']) ; ?>" id="<?php echo h($row['COLOR_ID']) ; ?>"
22
+ ini_set('display_errors', 1);
23
- <?php if($_SESSION['COLOR'] === "" && h($row['COLOR_ID']) === 3 || $_SESSION['COLOR'] === h($row['COLOR_ID'])){ echo 'checked' ;} ;?>>
24
- <label for="<?php echo h($row['COLOR_ID']) ; ?>" style="color:#<?php echo h($row['COLOR_CODE']) ; ?>"><?php echo h($row['COLOR_NAME']) ; ?></label>
25
23
 
24
+ //セッションスタート
25
+ session_start();
26
+
27
+ //DB接続クラス読み込み
28
+ include 'DBConnect.php';
29
+
30
+ //共通関数読み込み
31
+ include 'function.php';
32
+
33
+ //セッションIDを再作成する
34
+ session_regenerate_id(true);
35
+
36
+ //エスケープ
37
+ function h($s) {
38
+ return htmlspecialchars($s, ENT_QUOTES, "UTF-8");
39
+ }
40
+
41
+ //ログインしているか判断
42
+ if(empty($_SESSION['USER_ID'])){
43
+ header( "Location: ./login.php" );
44
+ exit();
45
+ }
46
+
47
+ //確認ボタンを押した
48
+ if(!empty($_POST['Submit'])){
49
+
50
+ //処理
51
+ if($_POST['token'] !== $_SESSION['token']){
52
+ //セッションの内容を削除
53
+ header( "Location: ./login.php" );
54
+ exit();
55
+ }else{
56
+ //POSTされた値を$_SESSION['XXX']に代入
57
+ $_SESSION['USER_NAME'] = $_POST['username'];
58
+ $_SESSION['EMAIL'] = $_POST['email'];
59
+ $_SESSION['TITLE'] = $_POST['title'];
60
+ $_SESSION['TEXT'] = $_POST['text'];
61
+ $_SESSION['COLOR'] = $_POST['color'];
62
+
63
+ //エラー変数を空にする
64
+ $err = "";
65
+
66
+
67
+ //EmailCheck
68
+ $checkEmail = new CheckFunction();
69
+ $return = $checkEmail->checkEmail($_SESSION['EMAIL']);
70
+ if($return === false){
71
+ $err = "E-mailは’半角英数字@test.co.jp’の形式で入力してください<br />";
72
+ }
73
+
74
+ //文字数Check
75
+ $checklen = new CheckFunction();
76
+ $param2 = 50;
77
+ $return = $checklen->checkLen($_SESSION['TITLE'],$param2);
78
+ if($return === false){
79
+ $err .= "タイトルは50文字以下で入力してください<br />";
80
+ }
81
+
82
+ //空文字Check(TEXT)
83
+ $checkBlank = new CheckFunction();
84
+ $return = $checkBlank->checkBlank($_SESSION['TEXT']);
85
+ if($return === false){
86
+ $err .= "「本文」を入力してください<br />";
87
+ }
88
+
89
+ if(empty($err)){
90
+ $_SESSION['ACTION_NAME'] = "inout_confirm";
91
+ header( "Location: ./confirm.php" );
92
+ exit();
93
+ }
94
+
95
+ }
96
+ }
97
+
98
+ if(!empty($_POST['clear'])){
99
+ //$_SESSION['XXX']の情報を削除
100
+
101
+ unset($_SESSION['USER_NAME']);
102
+ unset($_SESSION['EMAIL']);
103
+ unset($_SESSION['TITLE']);
104
+ unset($_SESSION['TEXT']);
105
+ unset($_SESSION['COLOR']);
106
+
107
+ $_SESSION['ACTION_NAME'] = "input_clear";
108
+ }
109
+
110
+ //$_SESSION['ACTION_NAME'] に "input_display"を代入
111
+ $_SESSION['ACTION_NAME'] = "input_display";
112
+
113
+ ?>
114
+ <!-- HTML出力 -->
115
+ <!-- $err変数を表示 -->
116
+ <!DOCTYPE html>
117
+ <html lang="ja">
118
+ <head>
119
+ <meta charset="UTF-8">
120
+ <link rel="stylesheet" href="./css/master.css" type="text/css">
121
+ <title>掲示板</title>
122
+ </head>
123
+ <body>
124
+ <header>
125
+ 掲示板
126
+ </header>
127
+ <?php echo $_SESSION['COLOR']; //ここで送信を押した際に$_SESSION['COLOR']に値が入るか確認をしていました。
128
+ if(isset($err)){
129
+ echo "<span style='color:#ff0000'>".$err ."</span>";
130
+ }
131
+ ?>
132
+ <main>
133
+ <div>
134
+ <form action="input.php" method="POST">
135
+ <div>
136
+ <table class="inputArticle">
137
+ <tr>
138
+ <td class="itemName"><div>名前</div></td>
139
+ <td><div>
140
+ <input type="text" name="username" value="<?php echo h($_SESSION['USER_NAME']) ;?>">
141
+ </div></td>
142
+ </tr>
143
+ <tr>
144
+ <td class="itemName"><div>E-mail</div></td>
145
+ <td><div>
146
+ <input type="text" name="email" value="<?php echo h($_SESSION['EMAIL']) ;?>">
147
+ </div></td>
148
+ </tr>
149
+ <tr>
150
+ <td class="itemName"><div>タイトル</div></td>
151
+ <td><div>
152
+ <input type="text" name="title" value="<?php echo h($_SESSION['TITLE']) ;?>">
153
+ </div></td>
154
+ </tr>
155
+ <tr>
156
+ <td class="itemName"><div>本文</div></td>
157
+ <td><div>
158
+ <textarea name="text" cols="35" rows="5"><?php echo h($_SESSION['TEXT']) ;?></textarea>
159
+ </div></td>
160
+ </tr>
161
+ <?php
162
+
163
+ //DB,COLOR_MASTERからデータを全件取得
164
+ $dbh = new DBgetDBH();
165
+ $stmt = $dbh->getDBconnect()->prepare('select * from COLOR_MASTER');
166
+
167
+ $stmt->execute();
168
+ $rows = $stmt->fetchAll();
169
+ ?>
170
+ <tr>
171
+ <td class="itemName"><div>文字色</div></td>
172
+ <td><div>
173
+ <!-- 後で直す -->
174
+ <?php foreach($rows as $row) : ?>
175
+ <input class="radio" type="radio" name="color" value="<?php echo h($row['COLOR_ID']) ; ?>" id="<?php echo h($row['COLOR_ID']) ; ?>"
176
+ <?php if($_SESSION['COLOR'] === "" AND h($row['COLOR_ID']) === 3 OR $_SESSION['COLOR'] === h($row['COLOR_ID'])){ echo 'checked' ;} ;?>>
177
+ <label for="<?php echo h($row['COLOR_ID']) ; ?>" style="color:#<?php echo h($row['COLOR_CODE']) ; ?>"><?php echo h($row['COLOR_NAME']) ; ?></label>
26
- <?php endforeach ; ?>
178
+ <?php endforeach ; ?>
179
+ </div></td>
180
+ </tr>
181
+ </table>
182
+ </div>
183
+ <div>
184
+ <?php
185
+
186
+ //セッションIDを$_SESSIONに格納
187
+ $_SESSION['SESSION_ID'] = session_id();
188
+
189
+ //$_SESSION_IDをハッシュ化してトークンを生成
190
+ $token = hash("sha256", $_SESSION['SESSION_ID']);
191
+
192
+ $_SESSION['token'] = $token;
193
+
194
+ ?>
195
+ <input type="submit" name="clear" value="クリア">
196
+ <input type="submit" name="Submit" value="確認">
197
+ <input type="hidden" name="token" value="<?php echo $token ; ?>">
198
+ </div>
199
+ </form>
200
+ <hr>
201
+ <?php
202
+
203
+ //DBから過去記事を取得
204
+ $dbh = new DBgetDBH();
205
+ $stmt = $dbh->getDBconnect()->prepare('SELECT * FROM ARTICLE RIGHT JOIN COLOR_MASTER ON ARTICLE.COLOR_ID = COLOR_MASTER.COLOR_ID ORDER BY CREATE_DATE DESC;');
206
+ $stmt->execute();
207
+ $rows = $stmt->fetchAll();
208
+
209
+ ?>
210
+ <div>
211
+ <?php foreach($rows as $row) : ?>
212
+ <table class="postedArticle" style="color:#<?php echo h($row['COLOR_CODE']); ?>">
213
+ <tr>
214
+ <td class="articleId"><div><?php echo h($row['ARTICLE_ID']) ; ?></div></td>
215
+ <td class="articleTitle"><div>
216
+ <?php
217
+
218
+ $checkBlank = new CheckFunction();
219
+ $return = $checkBlank->checkBlank(h($row['TITLE']));
220
+ if($return === false){
221
+ echo "no title";
222
+ }else{
223
+ echo h($row['TITLE']);
224
+ }
225
+ ?>
226
+ </div></td>
227
+ </tr>
228
+ <tr>
229
+ <!--
230
+ colspanタグ…表(テーブル)にて、水平方向のセルの結合数(セルがまたがる列数)を指定する。
231
+ -->
232
+ <td class="articleText" colspan="2"><div>
233
+ <?php echo h($row['TEXT']) ?>
234
+ </div></td>
235
+ </tr>
236
+ <tr>
237
+ <td class="articleDate" colspan="2"><div>
238
+ <?php
239
+ $date = h($row['CREATE_DATE']);
240
+ echo date('Y年m月d日 H時i分',strtotime($date));
241
+
242
+ $checkBlank = new CheckFunction();
243
+ $return = $checkBlank->checkBlank(h($row['NAME']));
244
+
245
+ if($return === false){
246
+ $name = "nobody";
247
+ }else{
248
+ $name = h($row['NAME']);
249
+ }
250
+
251
+ $checkBlank = new CheckFunction();
252
+ $return = $checkBlank->checkBlank(h($row['EMAIL']));
253
+
254
+ if($return === false){
255
+ echo " ".h($name);
256
+ }else{
257
+ echo " ".'<a href="mailto:'.h($row['EMAIL']).'">'.h($name).'</a>';
258
+ }
259
+ ?>
260
+ </div></td>
261
+ </tr>
262
+ </table>
263
+ <?php endforeach ; ?>
264
+ </div>
265
+ </div>
266
+ </main>
267
+ </body>
268
+ </html>
27
269
  ```
28
270
 
29
271
  ### 試したこと

2

エラーについての追記

2020/05/08 08:49

投稿

hianmain
hianmain

スコア0

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,9 @@
11
11
  ### 発生している問題・エラーメッセージ
12
12
  上記の条件式に合う、コードを記述していると思うのですが、最初にページを開いた際(初期状態)に、ラジオボタンのID3にcheckedがつかないです。
13
13
 
14
+ エラーに関しては何も発生していないので、if文の文法が実現したい条件文に合っていないのかもしれません。
14
15
 
16
+
15
17
  ### 該当のソースコード
16
18
 
17
19
  ```PHP

1

タグを変更しました

2020/05/08 08:38

投稿

hianmain
hianmain

スコア0

title CHANGED
File without changes
body CHANGED
File without changes