質問編集履歴

3

文法修正

2019/03/04 03:10

投稿

newyee
newyee

スコア213

test CHANGED
File without changes
test CHANGED
@@ -418,9 +418,7 @@
418
418
 
419
419
  $stmt->execute();
420
420
 
421
- header('Location:bbs.php');
421
+
422
-
423
- exit();
424
422
 
425
423
  }catch(PDOException $e){
426
424
 

2

コードの追加

2019/03/04 03:10

投稿

newyee
newyee

スコア213

test CHANGED
File without changes
test CHANGED
@@ -311,3 +311,155 @@
311
311
  エラーも出ていない為、原因が分かりません。
312
312
 
313
313
  どなたか、ご助言頂けましたら幸いです。よろしくお願いします。
314
+
315
+ ※追記です
316
+
317
+ 以下は投稿されたコメントをデータベースに追加する「write.php」になります
318
+
319
+ ```php
320
+
321
+ <?php
322
+
323
+ include 'includes/login.php';
324
+
325
+ error_reporting(E_ALL);
326
+
327
+ ini_set('display_errors', '1');
328
+
329
+ $name = $_POST['name'];
330
+
331
+
332
+
333
+ $title = $_POST['title'];
334
+
335
+ $comment = $_POST['comment'];
336
+
337
+ $pass = $_POST['pass'];
338
+
339
+ $token = $_POST['token'];
340
+
341
+ $err_message = [];
342
+
343
+
344
+
345
+ if($name == '' || $comment == ''){
346
+
347
+ $err_message[] = '名前または、コメントが入力されていません';
348
+
349
+
350
+
351
+ }
352
+
353
+
354
+
355
+ if(!preg_match("/^[0-9]{4}$/",$pass)){
356
+
357
+ $err_message[] = 'パスワードを4文字で入力してください';
358
+
359
+
360
+
361
+ }
362
+
363
+
364
+
365
+ if(count($err_message) === 0){
366
+
367
+ //CSRF対策
368
+
369
+ if(!password_verify(session_id(),$token)){
370
+
371
+ header('Location:bbs.php');
372
+
373
+ exit();
374
+
375
+ }
376
+
377
+
378
+
379
+ setcookie('name',$name,time() + 60 * 60 * 24 * 30);
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+ //データベースに接続
388
+
389
+ $dsn = 'mysql:host=localhost;dbname=online_bbs;charset=utf8';
390
+
391
+ $user = 'root';
392
+
393
+ $password = '';
394
+
395
+
396
+
397
+ try{
398
+
399
+ $db = new PDO($dsn,$user,$password);
400
+
401
+ $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
402
+
403
+ $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
404
+
405
+ $stmt = $db->prepare("
406
+
407
+ INSERT INTO post (name,title,comment,created_at,password)
408
+
409
+ VALUES (:name, :title, :comment, now(), :pass)");
410
+
411
+ $stmt->bindValue(':name',$name,PDO::PARAM_STR);
412
+
413
+ $stmt->bindValue(':title',$title,PDO::PARAM_STR);
414
+
415
+ $stmt->bindValue(':comment',$comment,PDO::PARAM_STR);
416
+
417
+ $stmt->bindValue(':pass',$pass,PDO::PARAM_STR);
418
+
419
+ $stmt->execute();
420
+
421
+ header('Location:bbs.php');
422
+
423
+ exit();
424
+
425
+ }catch(PDOException $e){
426
+
427
+ die ('エラー:' . $e->getMessage());
428
+
429
+ }
430
+
431
+
432
+
433
+ }
434
+
435
+
436
+
437
+ ?>
438
+
439
+ <html>
440
+
441
+ <head>
442
+
443
+ <meta charset="utf-8">
444
+
445
+ <title>Page Title</title>
446
+
447
+
448
+
449
+ </head>
450
+
451
+ <body>
452
+
453
+ <?php
454
+
455
+ echo implode("<br />",$err_message);
456
+
457
+ ?>
458
+
459
+ <p><a href="bbs.php">戻る</a>
460
+
461
+ </body>
462
+
463
+ </html>
464
+
465
+ ```

1

文法修正

2019/03/04 03:07

投稿

newyee
newyee

スコア213

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- PHPの学習としまして、簡易な掲示板を作成したのですが、教えきたい部分がございます
1
+ PHPの学習としまして、簡易な掲示板を作成したのですが、つまずいしまった為、お聞たい箇所がございます
2
2
 
3
3
  ```php
4
4