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

質問編集履歴

1

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

2020/12/24 06:04

投稿

after-the-rain
after-the-rain

スコア0

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  初めて質問させていただきます。
4
4
  PHPとMySQLを用いて、写真掲示板を作成しています。
5
- ログイン機能実装時に、ログイン後のリダイレクト先のパラメーターに値が上手く入らなくて困っています。
5
+ ログイン機能実装時に、ログイン後のリダイレクト先のパラメーターに値が入らなくて困っています。
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
8
  パラメーターに値が代入されていない状態でリダイレクトされるため、以下のエラーメッセージが表示されます。
@@ -15,244 +15,11 @@
15
15
 
16
16
 
17
17
  ### 該当のソースコード
18
-
19
- ```PHP
20
- <!--投稿されたコンテンツを一覧で見るページ(list.php)-->
21
- <?php
22
- //ソートのデフォルト値は降順(DESC)
23
- $order = "DESC";
24
- if (isset($_GET['order']) === TRUE) {
25
- $order = $_GET['order'];
26
- }
27
- //データベース接続
28
- $server = "ホスト名";
29
- $userName = "ユーザ名";
30
- $password = "パスワード";
31
- $dbName = "DB名";
32
-
33
- $mysqli = new mysqli($server, $userName, $password, $dbName);
34
-
35
- if ($mysqli->connect_error) {
36
- //DB接続エラー時
37
- echo $mysqli->connect_error;
38
- exit();
39
- } else {
40
- //文字コードの設定(文字化け防止のためUTF-8)
41
- $mysqli->set_charset("utf-8");
42
- }
43
- //コンテンツ表示のSQL文 
44
- $sql = "SELECT * FROM contents ORDER BY con_id $order";
45
- //クエリの実行
46
- $result = $mysqli->query($sql);
47
-
48
- //クエリー失敗
49
- if (!$result) {
50
- echo $mysqli->error;
51
- exit();
52
- }
53
-
54
- //レコード件数
55
- $row_count = $result->num_rows;
56
-
57
- //連想配列で取得
58
- while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
59
- $rows[] = $row;
60
- }
61
- //結果セットを解放
62
- $result->free();
63
- // データベース切断
64
- $mysqli->close();
65
- ?>
66
- <!DOCTYPE html>
67
- <html>
68
- <head>
69
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
70
- <link rel="stylesheet" type="text/css" media="screen" href="\SantetsuPhoto\style.css" />
71
- <script src="https://www.w3schools.com/lib/w3.js"></script>
72
- <title>写真一覧</title>
73
- </head>
74
- <div class="box1"style="border: solid 4px black;
75
- box-sizing: border-box;
76
- text-align: center;
77
- line-height: 30px;
78
- font-weight: bold;">
79
- <h1><a class="title" href="index.php">写真掲示板</a></h1>
80
- </div>
81
-
82
- <div class="box2"style="border: solid 4px black;
83
- box-sizing: border-box;
84
- text-align: center;
85
- line-height: 30px;
86
- font-weight: bold;">
87
- <body>
88
-
89
- <h2>写真投稿リスト</h2>
90
- <!--投稿内容のソート(古い順・新しい順)-->
91
- <form>
92
- <input type="radio" name="order" value="ASC" <?php
93
- if ($order === "ASC") {
94
- print 'checked';
95
- }
96
- ?>>古い順
97
- <input type="radio" name="order" value="DESC" <?php
98
- if ($order === "DESC") {
99
- print 'checked';
100
- }
101
- ?>>新しい順
102
- <input type="submit" value="表示">
103
- </form>
104
- <!--件数表示-->
105
- 全<?php echo $row_count; ?>件<br>
106
-
107
-
108
-
109
- <?php
110
- //0件の場合の処理
111
- if ($row_count == 0) {
112
- echo 'まだ画像が投稿されていません。<br>';
113
- } else {
114
- //1件以上の場合の処理
115
- foreach ($rows as $row) {
116
- ?>
117
- <table border='1' cellspacing="0" cellpadding="0">
118
- <tr>
119
- <!--データベースに格納されたコンテンツを表示-->
120
- <!--browsing.php?con_id=にcon_id(画像管理のid)の値を入れることにより、コンテンツの詳細を閲覧できる-->
121
- <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>
122
-
123
- <th width="100%">
124
- <a href="browsing.php?con_id=<?php echo $row['con_id'] ?>">題名:<?php echo $row['picname'] ?></a><br>
125
- <a>投稿者:<?php echo $row['user_name'] ?></a><br>
126
- <a>投稿日:<?php echo $row['DATE'] ?></a>
127
- </th>
128
- </tr>
129
- </table>
130
- <?php
131
- }
132
- }
133
- ?>
134
-
135
- </table>
136
- <!--投稿フォームへのボタン-->
137
- <a href="uplode.php" class="cbtn2">コンテンツを投稿する</a><br>
138
- <!--戻るボタン-->
139
- <button class="back" type="button" style="text-align:crnter; outline: none;"onclick="history.back()"><img src="back.jpg" alt="戻る" width="320" height="180"></button>
140
-
141
- </div>
142
-
143
- </body>
144
- </html>
145
- ```
146
- ```PHP
147
- <!--投稿されたコンテンツの詳細を見るページ(browsing.php)-->
148
- <?php
149
- session_start();
150
- //データベース接続
151
- $server = "ホスト名";
152
- $userName = "ユーザ名";
153
- $password = "パスワード";
154
- $dbName = "DB名";
155
-
156
- $mysqli = new mysqli($server, $userName, $password, $dbName);
157
-
158
- if ($mysqli->connect_error) {
159
- //DB接続エラー時
160
- echo $mysqli->connect_error;
161
- exit();
162
- } else {
163
- //文字コードの設定(文字化け防止のためUTF-8)
164
- $mysqli->set_charset("utf-8");
165
- }
166
- //
167
- $con_id = $_GET["con_id"];
168
- //コンテンツ表示のSQL文
169
- $sql = "SELECT * FROM contents where con_id ='$con_id';";
170
- //クエリの実行
171
- $result = $mysqli->query($sql);
172
- //クエリー失敗
173
- if (!$result) {
174
- echo $mysqli->error;
175
- exit();
176
- }
177
- //連想配列で取得
178
- while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
179
- $contentsrows[] = $row;
180
- }
181
-
182
- //結果セットを解放
183
- $result->free();
184
- // データベース切断
185
- $mysqli->close();
186
- ?>
187
- <!DOCTYPE html>
188
- <html>
189
- <head>
190
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
191
- <link rel="stylesheet" type="text/css" media="screen" href="style.css" />
192
- <script src="https://www.w3schools.com/lib/w3.js"></script>
193
- <title> コンテンツ閲覧</title>
194
- </head>
195
- <div class="box1"style="border: solid 4px black;
196
- box-sizing: border-box;
197
- text-align: center;
198
- line-height: 30px;
199
- font-weight: bold;">
200
- <h1><a class="title" href="index.php">写真掲示板</a></h1>
201
- </div>
202
-
203
- <div class="box2"style="border: solid 4px black;
204
- box-sizing: border-box;
205
- text-align: center;
206
- line-height: 30px;
207
- font-weight: bold;">
208
- <body>
209
- <?php
210
- foreach ($contentsrows as $row) {
211
- ?>
212
- <!--ログイン時の処理とログアウト時の処理で表示を変える-->
213
- <?php
214
- //ログイン時はユーザ名+さんとログアウトのリンクを表示
215
- if (array_key_exists("user", $_SESSION)) {
216
- echo $_SESSION['user'] . "さん<br>";
217
- echo '<a href="logout.php">ログアウト</a><br>';
218
- } else {
219
- //ログアウト時はログインのリンクを表示
220
- echo "ゲストさん<br>";
221
- //SQLのcon_id(画像管理のid)をパラメーターに代入し、ログインページに飛ばす
222
- echo '<a href="login.php?con_id=' . $row['con_id'] . '">ログイン</a><br>';
223
- }
224
- ?>
225
-
226
-
227
- <!--データベースに格納されたコンテンツを表示-->
228
- <img src="data:image/jpg;base64,<?php echo base64_encode($row['picture']); ?>"width="450px" height="300px"><br>
229
-
230
-
231
- <h10><font size="5"><?php echo $row['picname'] ?></font></h10><br>
232
- <p>投稿者:<?php echo $row['user_name'] ?> 投稿日:<?php echo $row['DATE'] ?><br><?php echo $row['explanation'] ?></p>
233
- <hr>
234
-
235
- <!--戻るボタン-->
236
- <button class="back" type="button" style="text-align:crnter; outline: none;"onclick="history.back()"><img src="back.jpg" alt="戻る" width="320" height="180"></button>
237
-
238
- <hr>
239
-
240
-
241
- <?php
242
- }
243
- ?>
244
-
245
-
246
- </div>
247
-
248
- </body>
249
- </html>
250
- ```
251
-
18
+ 字数の関係で、dropboxの以下のリンクからご確認願います。
19
+ [https://www.dropbox.com/sh/vzp7bvi9inl1u1v/AACbjcdbkJ5UJ6zjk122S0GNa?dl=0](https://www.dropbox.com/sh/vzp7bvi9inl1u1v/AACbjcdbkJ5UJ6zjk122S0GNa?dl=0)
252
20
  ### 試したこと
253
-
254
- ここに問題に対して試したことを記載してください。
21
+ login.phpの$con_idは、 $con_id=1;数値設定すると、SQLに格納れてるcon_idが1のコンテンツがbrowsing.phpで表示されます
255
-
22
+ login.phpの$con_idをecho出力しようとすると、Undefined variableが出ますが、$_GET['con_id']でecho出力すると、パラメーターに入っている数字が正しく出力されます。
256
23
  ### 補足情報(FW/ツールのバージョンなど)
257
24
 
258
25
  NetBeansとXAMPPを使用