質問編集履歴

5

質問文冒頭の現状説明を追記しました。

2019/12/09 10:45

投稿

MakotoIshizawa
MakotoIshizawa

スコア32

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ ある課題に取り組んでいて簡易掲示板を作っています。
2
+
3
+ テキスト保存のものを作った後、MySQL保存に変えたものを作っています。
4
+
1
5
  php5.2.4(指定による)
2
6
 
3
7
  mysqlのサーバー情報は伏せてあります。

4

サーバー情報が伏せてある旨記載しました

2019/12/09 10:45

投稿

MakotoIshizawa
MakotoIshizawa

スコア32

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,7 @@
1
1
  php5.2.4(指定による)
2
2
 
3
+ mysqlのサーバー情報は伏せてあります。
4
+
3
5
 
4
6
 
5
7
  jsでパスワードの入力を求め、その値をPHP側の check_password に格納したいです。

3

公開できない情報を削除しました

2019/12/09 10:30

投稿

MakotoIshizawa
MakotoIshizawa

スコア32

test CHANGED
File without changes
test CHANGED
@@ -64,13 +64,13 @@
64
64
 
65
65
  //MySQL接続情報
66
66
 
67
- $servername = "localhost";
67
+ $servername = "";
68
-
68
+
69
- $username = "co-19-131.99sv-c";
69
+ $username = "";
70
-
70
+
71
- $serverpassword = "x5M3YXQu";
71
+ $serverpassword = "";
72
-
72
+
73
- $dbname = "co_19_131_99sv_coco_com";
73
+ $dbname = "";
74
74
 
75
75
  //編集時の表示用名前とコメントの初期化
76
76
 

2

インデントのみ修正してみました。

2019/12/09 10:28

投稿

MakotoIshizawa
MakotoIshizawa

スコア32

test CHANGED
File without changes
test CHANGED
@@ -64,13 +64,13 @@
64
64
 
65
65
  //MySQL接続情報
66
66
 
67
- $servername = "";
67
+ $servername = "localhost";
68
-
68
+
69
- $username = "";
69
+ $username = "co-19-131.99sv-c";
70
-
70
+
71
- $serverpassword = "";
71
+ $serverpassword = "x5M3YXQu";
72
-
72
+
73
- $dbname = "";
73
+ $dbname = "co_19_131_99sv_coco_com";
74
74
 
75
75
  //編集時の表示用名前とコメントの初期化
76
76
 
@@ -242,274 +242,292 @@
242
242
 
243
243
  <script>
244
244
 
245
- //削除時の確認
245
+ //削除時の確認
246
-
246
+
247
- window.addEventListener('DOMContentLoaded', function(){
247
+ window.addEventListener('DOMContentLoaded', function(){
248
-
248
+
249
- document.querySelector('#delete_button').addEventListener('click',function(e){
249
+ document.querySelector('#delete_button').addEventListener('click',function(e){
250
-
250
+
251
- if(confirm("本当に削除しますか?")){//本当に削除しますか?と表示しyes,noの選択肢を出す
251
+ if(confirm("本当に削除しますか?")){//本当に削除しますか?と表示しyes,noの選択肢を出す
252
-
252
+
253
- var passeord = prompt("パスワードを入力してください");//yesならパスワード入力を求める
253
+ var check_password = prompt("パスワードを入力してください");//yesならパスワード入力を求める
254
-
254
+
255
- }else{
255
+ }else{
256
-
256
+
257
- alert('キャンセルされました');//「キャンセルされました」 と表示
257
+ alert('キャンセルされました');//「キャンセルされました」 と表示
258
-
258
+
259
- e.preventDefault();//キャンセルの実行(defaultの動作を妨害)
259
+ e.preventDefault();//キャンセルの実行(defaultの動作を妨害)
260
+
261
+ }
262
+
263
+ });
264
+
265
+ });
266
+
267
+
268
+
269
+ //編集と削除時のパスワードの入力
270
+
271
+ window.addEventListener('DOMContentLoaded', function(){
272
+
273
+ document.querySelector('#edit_button').addEventListener('click',function(e){
274
+
275
+ if(!prompt("パスワードを入力してください")){
276
+
277
+ alert('キャンセルされました');
278
+
279
+ e.preventDefault();
280
+
281
+ }
282
+
283
+ });
284
+
285
+ });
286
+
287
+
288
+
289
+ //PHPへ値を渡す
290
+
291
+ $.ajax ( {
292
+
293
+ type: 'POST',
294
+
295
+ url: 'keijiban_mysql.php',
296
+
297
+ data: {
298
+
299
+ 'check_password' : check_password,
300
+
301
+ },
302
+
303
+ success: function(data) {
304
+
305
+ alert(data);
306
+
307
+ }
308
+
309
+ });
310
+
311
+ </script>
312
+
313
+ <style>
314
+
315
+ .akaji {
316
+
317
+ color : red;
260
318
 
261
319
  }
262
320
 
263
- });
264
-
265
-
266
-
267
- });
268
-
269
-
270
-
271
- //編集と削除時のパスワードの入力
272
-
273
- window.addEventListener('DOMContentLoaded', function(){
274
-
275
- document.querySelector('#edit_button').addEventListener('click',function(e){
276
-
277
- if(!prompt("パスワードを入力してください")){
321
+ .komoji {
278
-
279
- alert('キャンセルされました');
322
+
280
-
281
- e.preventDefault();
323
+ font-size: 0.8em;
282
324
 
283
325
  }
284
326
 
327
+ </style>
328
+
329
+ </head>
330
+
331
+ <body>
332
+
285
- });
333
+ <?php
286
-
334
+
287
- });
335
+ var_dump($check_password);
288
-
289
-
290
-
336
+
291
- //PHPへ値を渡す
337
+ //XSS対策
292
-
293
- $.ajax({
338
+
294
-
295
- type: 'POST',
296
-
297
- url: 'keijiban_mysql.php',
298
-
299
- data: {
300
-
301
- 'password' : password,
302
-
303
- },
304
-
305
- success: function(data) {
339
+ function h( $str ) {
306
-
340
+
307
- alert(data);
341
+ return nl2br( htmlspecialchars( $str, ENT_QUOTES, 'UTF-8' ) );
308
342
 
309
343
  }
310
344
 
311
- });
312
-
313
- </script>
314
-
315
- <style>
316
-
317
- .akaji {
318
-
319
- color : red;
320
-
321
- }
322
-
323
- .komoji {
324
-
325
- font-size: 0.8em;
326
-
327
- }
328
-
329
- </style>
330
-
331
- </head>
332
-
333
- <body>
345
+ //改行の置き換え
346
+
347
+ $replace_seach = array( "<<改行win>>", "<<改行mac>>", "<<改行unix>>" ); //改行の置き換え文字の検索
348
+
349
+ $replace = array( "\r\n", "\r", "\n" ); //改行コードへの置き換え
350
+
351
+
352
+
353
+ ?>
354
+
355
+ <!--投稿フォーム-->
356
+
357
+ <form method="post" >
358
+
359
+ <label for="name">お名前<span class="akaji">【必須】</span></label>
360
+
361
+ <?php
362
+
363
+ if ( !empty( $edit_no ) ) {
364
+
365
+ echo $edit_message;
366
+
367
+ }
368
+
369
+ ?>
370
+
371
+ <br>
372
+
373
+ <input type="hidden" name="edit_decision" value="<?php
374
+
375
+ echo $decision_no;
376
+
377
+ ?>" >
378
+
379
+ <input type="text" name="name" id="name" required="required" value="<?php
380
+
381
+ echo $edit_name;
382
+
383
+ ?>" >
384
+
385
+ <br>
386
+
387
+ <label for="comment">コメント<span class="akaji">【必須】</span></label><br>
388
+
389
+ <textarea name="comment" cols="30" rows="3" id="comment" required="required">
390
+
391
+ <?php
392
+
393
+ echo $edit_comment;
394
+
395
+ ?>
396
+
397
+ </textarea><br>
398
+
399
+ <label for="possword">パスワード<span class="akaji">【必須】</span></label><br>
400
+
401
+ <input type="password" name="password" id="password" required="required">
402
+
403
+ <br>
404
+
405
+ <input type="submit" value=<?php
406
+
407
+ if(!empty( $edit_no ) ){
408
+
409
+ echo '編集';
410
+
411
+ } else {
412
+
413
+ echo '投稿';
414
+
415
+ }
416
+
417
+ ?> >
418
+
419
+ </form>
420
+
421
+ <br>
422
+
423
+ <!--削除番号指定用フォーム-->
424
+
425
+ <form method="post" name="delete">
426
+
427
+ <label for="delete_no">削除対象番号</label>
428
+
429
+ <?php
430
+
431
+ if( !empty( $delete_no ) ) {
432
+
433
+ echo $delete_message;
434
+
435
+ }
436
+
437
+ ?>
438
+
439
+ <br>
440
+
441
+ <input type="number" name="delete_no" id="delete_no" required="required"><br>
442
+
443
+ <input type="submit" value="削除" name="btn" id="delete_button">
444
+
445
+ </form>
446
+
447
+  <br>
448
+
449
+ <!--編集番号指定用フォーム-->
450
+
451
+ <form method="post">
452
+
453
+ <label for="edit_no">編集対象番号(半角)</label>
454
+
455
+ <?php
456
+
457
+ if ( !empty( $edit_no ) ) {
458
+
459
+ echo $edit_nothing_message;
460
+
461
+ }
462
+
463
+ ?>
464
+
465
+ <br>
466
+
467
+ <input type="number" name="edit_no" id="edit_no" required="required"><br>
468
+
469
+ <input type="submit" value="送信" id="edit_button">
470
+
471
+ </form>
472
+
473
+ <br>
474
+
475
+
334
476
 
335
477
  <?php
336
478
 
337
- var_dump($password);
338
-
339
- //XSS対策
479
+ //投稿内容の表示
480
+
340
-
481
+ try {
482
+
483
+ //テーブルの行数取得
484
+
485
+ $sql = 'select count(*) from toko';
486
+
341
- function h( $str ) {
487
+ $count = $db->query( $sql );
488
+
342
-
489
+ $count = $count->fetchColumn();
490
+
491
+ $select = "SELECT * FROM toko"; //テーブルデータの取得のクエリ
492
+
343
- return nl2br( htmlspecialchars( $str, ENT_QUOTES, 'UTF-8' ) );
493
+ $select = $db->query( $select ); //クエリの実行
494
+
344
-
495
+ //投稿がない場合「投稿はまだありません」と表示する
496
+
497
+ if ( $count == 0 ) {//行数が0だったら
498
+
499
+ echo "<p>投稿はまだありません</p>";//投稿はまだありませんと表示する
500
+
501
+ } else {//その他の場合
502
+
503
+ foreach ( $select as $row ) { //ループして表示
504
+
505
+ echo "<span class='komoji'>No</span>:" . h( $row[ 'num' ] ) . "&emsp;&emsp;" .
506
+
507
+ "<span class='komoji'>名前</span>: " . h( $row[ 'name' ] ) . "<br>" .
508
+
509
+ h( $row[ 'comment' ] ) . "<br>" .
510
+
511
+ "<span class='komoji'>".h( $row[ 'date' ] ) . "</span><br>";
512
+
345
- }
513
+ }
514
+
346
-
515
+ }
516
+
517
+
518
+
347
- //改行の置き換え
519
+ } catch ( PDOException $e ) {
348
-
349
- $replace_seach = array( "<<改行win>>", "<<改行mac>>", "<<改行unix>>" ); //改行の置き換え文字の検索
520
+
350
-
351
- $replace = array( "\r\n", "\r", "\n" ); //改行コードへの置き換え
521
+   print( "表示エラー:" . $e->getmessage() );
522
+
523
+   die();
524
+
525
+ }
352
526
 
353
527
 
354
528
 
355
529
  ?>
356
530
 
357
- <!--投稿フォーム-->
358
-
359
- <form method="post" >
360
-
361
- <label for="name">お名前<span class="akaji">【必須】</span></label>
362
-
363
- <?php
364
-
365
- if ( !empty( $edit_no ) ) {
366
-
367
- echo $edit_message;
368
-
369
- }
370
-
371
- ?>
372
-
373
- <br>
374
-
375
- <input type="hidden" name="edit_decision" value="<?php echo $decision_no;?>">
376
-
377
- <input type="text" name="name" id="name" required="required" value="<?php echo $edit_name; ?>" >
378
-
379
- <br>
380
-
381
- <label for="comment">コメント<span class="akaji">【必須】</span></label>
382
-
383
- <br>
384
-
385
- <textarea name="comment" cols="30" rows="3" id="comment" required="required"><?php echo $edit_comment; ?></textarea>
386
-
387
- <br>
388
-
389
- <label for="possword">パスワード<span class="akaji">【必須】</span></label><br>
390
-
391
- <input type="password" name="password" id="password" required="required">
392
-
393
- <br>
394
-
395
- <input type="submit" value=<?php if(!empty( $edit_no ) ){ echo '編集'; } else { echo '投稿'; }?>>
396
-
397
- </form>
398
-
399
- <br>
400
-
401
- <!--削除番号指定用フォーム-->
402
-
403
- <form method="post" name="delete">
404
-
405
- <label for="delete_no">削除対象番号</label>
406
-
407
- <?php
408
-
409
- if( !empty( $delete_no ) ) {
410
-
411
- echo $delete_message;
412
-
413
- }
414
-
415
- ?>
416
-
417
- <br>
418
-
419
- <input type="number" name="delete_no" id="delete_no" required="required">
420
-
421
- <br>
422
-
423
- <input type="submit" value="削除" name="btn" id="delete_button">
424
-
425
- </form>
426
-
427
-  <br>
428
-
429
- <!--編集番号指定用フォーム-->
430
-
431
- <form method="post">
432
-
433
- <label for="edit_no">編集対象番号(半角)</label>
434
-
435
- <?php
436
-
437
- if ( !empty( $edit_no ) ) {
438
-
439
- echo $edit_nothing_message;
440
-
441
- }
442
-
443
- ?>
444
-
445
- <br>
446
-
447
- <input type="number" name="edit_no" id="edit_no" required="required">
448
-
449
- <br>
450
-
451
- <input type="submit" value="送信" id="edit_button">
452
-
453
- </form>
454
-
455
- <br>
456
-
457
-
458
-
459
- <?php
460
-
461
- //投稿内容の表示
462
-
463
- try {
464
-
465
- //テーブルの行数取得
466
-
467
- $sql = 'select count(*) from toko';
468
-
469
- $count = $db->query( $sql );
470
-
471
- $count = $count->fetchColumn();
472
-
473
-
474
-
475
-
476
-
477
- $select = "SELECT * FROM toko"; //テーブルデータの取得のクエリ
478
-
479
- $select = $db->query( $select ); //クエリの実行
480
-
481
-
482
-
483
- if ( $count == 0 ) {
484
-
485
- echo "<p>投稿はまだありません</p>";
486
-
487
- } else {
488
-
489
- foreach ( $select as $row ) { //ループして表示
490
-
491
- echo "<span class='komoji'>No</span>:" . h( $row[ 'num' ] ) . "&emsp;&emsp;" .
492
-
493
- "<span class='komoji'>名前</span>: " . h( $row[ 'name' ] ) . "<br>" . h( $row[ 'comment' ] ) . "<br>" . "<span class='komoji'>".h( $row[ 'date' ] ) . "</span><br>";
494
-
495
- }
496
-
497
- }
498
-
499
-
500
-
501
- } catch ( PDOException $e ) {
502
-
503
- print( "表示エラー:" . $e->getmessage() );
504
-
505
- die();
506
-
507
- }
508
-
509
-
510
-
511
- ?>
512
-
513
531
  </body>
514
532
 
515
533
  </html>

1

変数名が間違っていたので直しました

2019/12/09 10:26

投稿

MakotoIshizawa
MakotoIshizawa

スコア32

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- jsでパスワードの入力を求め、その値をPHP側の $password に格納したいです。
5
+ jsでパスワードの入力を求め、その値をPHP側の check_password に格納したいです。
6
-
6
+
7
- jsで変数password を作り、その変数内でpromptを書いています。(これが正しいのかどうかも判断出来ません)(107行目から)
7
+ jsで変数check_password を作り、その変数内でpromptを書いています。(これが正しいのかどうかも判断出来ません)(107行目から)
8
8
 
9
9
  動作としては、「本当に削除しますか」と表示し「yes」ならパスワードの入力を求めます。
10
10
 
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- 渡せたかどうかを見るために$passwordをvar_dumpしています。(154行目)
25
+ 渡せたかどうかを見るためにcheck_passwordをvar_dumpしています。(154行目)
26
26
 
27
27
 
28
28