質問編集履歴

1

私のミスにより、編集途中のものがアップロードされてしまった状態で公開されてしまい、申し訳ございませんでした。字数の関係上、プログラムはdropboxのリンクからご確認願います。

2020/12/24 06:04

投稿

after-the-rain
after-the-rain

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  PHPとMySQLを用いて、写真掲示板を作成しています。
8
8
 
9
- ログイン機能実装時に、ログイン後のリダイレクト先のパラメーターに値が上手く入らなくて困っています。
9
+ ログイン機能実装時に、ログイン後のリダイレクト先のパラメーターに値が入らなくて困っています。
10
10
 
11
11
 
12
12
 
@@ -32,481 +32,15 @@
32
32
 
33
33
  ### 該当のソースコード
34
34
 
35
+ 字数の関係で、dropboxの以下のリンクからご確認願います。
35
36
 
36
-
37
- ```PHP
38
-
39
- <!--投稿されたコンテンツを一覧で見るページ(list.php)-->
40
-
41
- <?php
42
-
43
- //ソートのデフォルト値は降順(DESC)
44
-
45
- $order = "DESC";
46
-
47
- if (isset($_GET['order']) === TRUE) {
48
-
49
- $order = $_GET['order'];
50
-
51
- }
52
-
53
- //データベース接続
54
-
55
- $server = "ホスト名";
56
-
57
- $userName = "ユーザ名";
58
-
59
- $password = "パスワード";
60
-
61
- $dbName = "DB名";
62
-
63
-
64
-
65
- $mysqli = new mysqli($server, $userName, $password, $dbName);
66
-
67
-
68
-
69
- if ($mysqli->connect_error) {
70
-
71
- //DB接続エラー時
72
-
73
- echo $mysqli->connect_error;
74
-
75
- exit();
76
-
77
- } else {
78
-
79
- //文字コードの設定(文字化け防止のためUTF-8)
80
-
81
- $mysqli->set_charset("utf-8");
82
-
83
- }
84
-
85
- //コンテンツ表示のSQL文 
86
-
87
- $sql = "SELECT * FROM contents ORDER BY con_id $order";
88
-
89
- //クエリの実行
90
-
91
- $result = $mysqli->query($sql);
92
-
93
-
94
-
95
- //クエリー失敗
96
-
97
- if (!$result) {
98
-
99
- echo $mysqli->error;
100
-
101
- exit();
102
-
103
- }
104
-
105
-
106
-
107
- //レコード件数
108
-
109
- $row_count = $result->num_rows;
110
-
111
-
112
-
113
- //連想配列で取得
114
-
115
- while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
116
-
117
- $rows[] = $row;
118
-
119
- }
120
-
121
- //結果セットを解放
122
-
123
- $result->free();
124
-
125
- // データベース切断
126
-
127
- $mysqli->close();
128
-
129
- ?>
130
-
131
- <!DOCTYPE html>
132
-
133
- <html>
134
-
135
- <head>
136
-
137
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
138
-
139
- <link rel="stylesheet" type="text/css" media="screen" href="\SantetsuPhoto\style.css" />
140
-
141
- <script src="https://www.w3schools.com/lib/w3.js"></script>
142
-
143
- <title>写真一覧</title>
144
-
145
- </head>
146
-
147
- <div class="box1"style="border: solid 4px black;
148
-
149
- box-sizing: border-box;
150
-
151
- text-align: center;
152
-
153
- line-height: 30px;
154
-
155
- font-weight: bold;">
156
-
157
- <h1><a class="title" href="index.php">写真掲示板</a></h1>
158
-
159
- </div>
160
-
161
-
162
-
163
- <div class="box2"style="border: solid 4px black;
164
-
165
- box-sizing: border-box;
166
-
167
- text-align: center;
168
-
169
- line-height: 30px;
170
-
171
- font-weight: bold;">
172
-
173
- <body>
174
-
175
-
176
-
177
- <h2>写真投稿リスト</h2>
178
-
179
- <!--投稿内容のソート(古い順・新しい順)-->
180
-
181
- <form>
182
-
183
- <input type="radio" name="order" value="ASC" <?php
184
-
185
- if ($order === "ASC") {
186
-
187
- print 'checked';
188
-
189
- }
190
-
191
- ?>>古い順
192
-
193
- <input type="radio" name="order" value="DESC" <?php
194
-
195
- if ($order === "DESC") {
196
-
197
- print 'checked';
198
-
199
- }
200
-
201
- ?>>新しい順
202
-
203
- <input type="submit" value="表示">
204
-
205
- </form>
206
-
207
- <!--件数表示-->
208
-
209
- 全<?php echo $row_count; ?>件<br>
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
- <?php
218
-
219
- //0件の場合の処理
220
-
221
- if ($row_count == 0) {
222
-
223
- echo 'まだ画像が投稿されていません。<br>';
224
-
225
- } else {
226
-
227
- //1件以上の場合の処理
228
-
229
- foreach ($rows as $row) {
230
-
231
- ?>
232
-
233
- <table border='1' cellspacing="0" cellpadding="0">
234
-
235
- <tr>
236
-
237
- <!--データベースに格納されたコンテンツを表示-->
238
-
239
- <!--browsing.php?con_id=にcon_id(画像管理のid)の値を入れることにより、コンテンツの詳細を閲覧できる-->
240
-
241
- <th><a href="browsing.php?con_id=<?php echo $row['con_id'] ?>"><img src="data:image/jpg;base64,<?php echo base64_encode($row['picture']); ?>"width="225px" height="150px"></a></th>
242
-
243
-
244
-
245
- <th width="100%">
246
-
247
- <a href="browsing.php?con_id=<?php echo $row['con_id'] ?>">題名:<?php echo $row['picname'] ?></a><br>
248
-
249
- <a>投稿者:<?php echo $row['user_name'] ?></a><br>
250
-
251
- <a>投稿日:<?php echo $row['DATE'] ?></a>
252
-
253
- </th>
254
-
255
- </tr>
256
-
257
- </table>
258
-
259
- <?php
260
-
261
- }
262
-
263
- }
264
-
265
- ?>
266
-
267
-
268
-
269
- </table>
270
-
271
- <!--投稿フォームへのボタン-->
272
-
273
- <a href="uplode.php" class="cbtn2">コンテンツを投稿する</a><br>
274
-
275
- <!--戻るボタン-->
276
-
277
- <button class="back" type="button" style="text-align:crnter; outline: none;"onclick="history.back()"><img src="back.jpg" alt="戻る" width="320" height="180"></button>
278
-
279
-
280
-
281
- </div>
282
-
283
-
284
-
285
- </body>
286
-
287
- </html>
288
-
289
- ```
290
-
291
- ```PHP
292
-
293
- <!--投稿されたコンテンツの詳細を見るページ(browsing.php)-->
294
-
295
- <?php
296
-
297
- session_start();
298
-
299
- //データベース接続
300
-
301
- $server = "ホスト名";
302
-
303
- $userName = "ユーザ名";
304
-
305
- $password = "パスワード";
306
-
307
- $dbName = "DB名";
308
-
309
-
310
-
311
- $mysqli = new mysqli($server, $userName, $password, $dbName);
312
-
313
-
314
-
315
- if ($mysqli->connect_error) {
316
-
317
- //DB接続エラー時
318
-
319
- echo $mysqli->connect_error;
320
-
321
- exit();
322
-
323
- } else {
324
-
325
- //文字コードの設定(文字化け防止のためUTF-8)
326
-
327
- $mysqli->set_charset("utf-8");
328
-
329
- }
330
-
331
- //
332
-
333
- $con_id = $_GET["con_id"];
334
-
335
- //コンテンツ表示のSQL文
336
-
337
- $sql = "SELECT * FROM contents where con_id ='$con_id';";
338
-
339
- //クエリの実行
340
-
341
- $result = $mysqli->query($sql);
342
-
343
- //クエリー失敗
344
-
345
- if (!$result) {
346
-
347
- echo $mysqli->error;
348
-
349
- exit();
350
-
351
- }
352
-
353
- //連想配列で取得
354
-
355
- while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
356
-
357
- $contentsrows[] = $row;
358
-
359
- }
360
-
361
-
362
-
363
- //結果セットを解放
364
-
365
- $result->free();
366
-
367
- // データベース切断
368
-
369
- $mysqli->close();
370
-
371
- ?>
372
-
373
- <!DOCTYPE html>
374
-
375
- <html>
376
-
377
- <head>
378
-
379
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
380
-
381
- <link rel="stylesheet" type="text/css" media="screen" href="style.css" />
382
-
383
- <script src="https://www.w3schools.com/lib/w3.js"></script>
384
-
385
- <title> コンテンツ閲覧</title>
386
-
387
- </head>
388
-
389
- <div class="box1"style="border: solid 4px black;
390
-
391
- box-sizing: border-box;
392
-
393
- text-align: center;
394
-
395
- line-height: 30px;
396
-
397
- font-weight: bold;">
398
-
399
- <h1><a class="title" href="index.php">写真掲示板</a></h1>
400
-
401
- </div>
402
-
403
-
404
-
405
- <div class="box2"style="border: solid 4px black;
406
-
407
- box-sizing: border-box;
408
-
409
- text-align: center;
410
-
411
- line-height: 30px;
412
-
413
- font-weight: bold;">
414
-
415
- <body>
416
-
417
- <?php
418
-
419
- foreach ($contentsrows as $row) {
420
-
421
- ?>
422
-
423
- <!--ログイン時の処理とログアウト時の処理で表示を変える-->
424
-
425
- <?php
426
-
427
- //ログイン時はユーザ名+さんとログアウトのリンクを表示
428
-
429
- if (array_key_exists("user", $_SESSION)) {
430
-
431
- echo $_SESSION['user'] . "さん<br>";
432
-
433
- echo '<a href="logout.php">ログアウト</a><br>';
434
-
435
- } else {
436
-
437
- //ログアウト時はログインのリンクを表示
438
-
439
- echo "ゲストさん<br>";
440
-
441
- //SQLのcon_id(画像管理のid)をパラメーターに代入し、ログインページに飛ばす
442
-
443
- echo '<a href="login.php?con_id=' . $row['con_id'] . '">ログイン</a><br>';
444
-
445
- }
446
-
447
- ?>
448
-
449
-
450
-
451
-
452
-
453
- <!--データベースに格納されたコンテンツを表示-->
454
-
455
- <img src="data:image/jpg;base64,<?php echo base64_encode($row['picture']); ?>"width="450px" height="300px"><br>
456
-
457
-
458
-
459
-
460
-
461
- <h10><font size="5"><?php echo $row['picname'] ?></font></h10><br>
462
-
463
- <p>投稿者:<?php echo $row['user_name'] ?> 投稿日:<?php echo $row['DATE'] ?><br><?php echo $row['explanation'] ?></p>
464
-
465
- <hr>
466
-
467
-
468
-
469
- <!--戻るボタン-->
470
-
471
- <button class="back" type="button" style="text-align:crnter; outline: none;"onclick="history.back()"><img src="back.jpg" alt="戻る" width="320" height="180"></button>
472
-
473
-
474
-
475
- <hr>
476
-
477
-
478
-
479
-
480
-
481
- <?php
482
-
483
- }
484
-
485
- ?>
486
-
487
-
488
-
489
-
490
-
491
- </div>
492
-
493
-
494
-
495
- </body>
496
-
497
- </html>
498
-
499
- ```
500
-
501
-
37
+ [https://www.dropbox.com/sh/vzp7bvi9inl1u1v/AACbjcdbkJ5UJ6zjk122S0GNa?dl=0](https://www.dropbox.com/sh/vzp7bvi9inl1u1v/AACbjcdbkJ5UJ6zjk122S0GNa?dl=0)
502
38
 
503
39
  ### 試したこと
504
40
 
41
+ login.phpの$con_idは、 $con_id=1;と数値を設定すると、SQLに格納されているcon_idが1のコンテンツがbrowsing.phpで表示されます。
505
42
 
506
-
507
- ここ問題に対したことを記載して
43
+ login.phpの$con_idをecho出力しようとすると、Undefined variableが出ますが、$_GET['con_id']でecho出力すると、パラメーター入っいる数字が正しく出力れます
508
-
509
-
510
44
 
511
45
  ### 補足情報(FW/ツールのバージョンなど)
512
46