質問編集履歴
3
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -418,9 +418,7 @@
|
|
418
418
|
|
419
419
|
$stmt->execute();
|
420
420
|
|
421
|
-
|
421
|
+
|
422
|
-
|
423
|
-
exit();
|
424
422
|
|
425
423
|
}catch(PDOException $e){
|
426
424
|
|
2
コードの追加
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
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
PHPの学習としまして、簡易な掲示板を作成したのですが、
|
1
|
+
PHPの学習としまして、簡易な掲示板を作成したのですが、つまずいてしまった為、お聞きしたい箇所がございます
|
2
2
|
|
3
3
|
```php
|
4
4
|
|