題目の通りです!以下のプログラムの5行目です。情報不足でしたら追加します。
よろしくお願いいたします。
<?php
define('DB_DATABASE', 'oneline_bbs');
define('DB_USERNAME', 'dbuser');
define('DB_PASSWORD', 'dbuser');
define('PDO_DSN', 'mysql:dbhost=localhost;dbname=' . DB_DATABASE);
try {
$db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo $e->getMessage();
exit;
}
$errors = array();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = null;
if (!isset($_POST['name']) || !strlen($_POST['name'])) {
$errors['name'] = '名前を入力してください';
} elseif (strlen(_POST['name']) > 40) {
$errors['name'] = '名前は40文字以内で入力してください';
} else {
$name = $_POST['name'];
}
$comment = null;
if (!isset($_POST['comment']) || !strlen($_POST['comment'])) {
$errors['comment'] = 'ひとことを入力してください';
} elseif (strlen($_POST['comment']) > 200) {
$errors['comment'] = 'ひとことは200文字以内で入力してください';
} else {
$comment = $_POST['comment'];
}
if (count($errors) === 0) {
date_default_timezone_set('Asia/Tokyo');
$sql = $db->prepare("insert into post (name, comment, created_at) values (?, ?, ?)");
$sql->execute([$name, $comment, date('Y-m-d H:i:s')]);
$db->exec($sql);
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ひとこと掲示板</title>
</head>
<body>
<h1>ひとこと掲示板</h1>
<?php if (count($errors)): ?>
<ul>
<?php foreach ($errors as $error): ?>
<li><?php echo htmlspecialchars($error, ENT_QUOTES, 'UTF-8'); ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<form action="index.php" method="post">
名前: <input type="text" name="name">
ひとこと: <input type="text" name="comment">
<input type="submit" name="submit" value="送信">
</form>
<?php
$sql = "select * from post order by created_at desc";
$results = $db->query($sql);
?>
<?php if ($results !== false && $results->rowCount()): ?>
<ul>
<?php while ($post = $results->fetch()): ?>
<li>
<?php echo htmlspecialchars($post['name'], ENT_QUOTES, 'UTF-8'); ?>:
<?php echo htmlspecialchars($post['comment'], ENT_QUOTES, 'UTF-8'); ?> -
<?php echo htmlspecialchars($post['created_at'], ENT_QUOTES, 'UTF-8'); ?>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php $db = null; ?>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP php ログイン 1 2022/11/01 00:24
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPとCSVで簡易データベースな...
-
値が渡されない
-
データ送信をボタンを押さずに...
-
form actionで二つ送信先を指定...
-
ワンクリックしかできないクリ...
-
FORMで送信ボタンと戻るボタン...
-
ジャンプ先アドレスの最後に?...
-
onedrive にexcelファイルをア...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
複数ファイルを連続でダウンロード
-
パースエラーとは?
-
リンク先を隠す方法はないでし...
-
拡張子php画像をjpg画像等に変...
-
図に示す階層構造で,現在のデ...
-
C# Excelファイルへの画像挿入。
-
Subversionで、ファイルをリネ...
-
ワードプレス、Contact Form 7...
-
include先でのinclude元の変数...
-
PHPのif文でその処理を途中で抜...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データ送信をボタンを押さずに...
-
form actionで二つ送信先を指定...
-
データベース接続 ログインフ...
-
ボタンのクリック数を合計保存...
-
FORMで送信ボタンと戻るボタン...
-
テキストボックスにデータベー...
-
header(Location: next.php) だ...
-
inputタグでphpを呼び出す際、...
-
Auth認証エラー
-
PHP table内、<a href使って su...
-
値が渡されない
-
別のファイルへ値を受け渡す方法
-
【WordPress】投稿がないカテゴ...
-
header.locationで、画面遷移、GET
-
multipart/form-dataを使ったデ...
-
選択肢により様々なページに飛...
-
PHP検索結果を別ページに還移さ...
-
textareaの受け渡し
-
xamppでformによるデータの送信...
-
同じコードを使っているのにエ...
おすすめ情報
解決に当たり以下の意味を知れべています。
define('PDO_DSN',
分かり次第報告します。
本日中の解決は無理かもしれません
悪しからず。
define('PDO_DSN', 'mysql:dbhost=localhost;dbname=' . DB_DATABASE);
ですが、
$db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
に関連もあるみたいですので、新たに出てきたPDOなので
一筋縄ではいかないみたいです。
いったん解決とさせていただきます。