PDOを使ってXampp環境(ローカル環境)でPHPとHTMLでテキストが投稿できる掲示板を作成できたのですが、テキストしか投稿できません、画像や動画も投稿できるようにするためには、次のPHP+HTMLプログラムをどう修正すれば良いでしょうか?
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="">
<input type="file" name="image">
<input type="submit" value="upload">
</form>
ただ単に上記のHTMLを挿入するだけではもちろん画像は投稿できません。
動画は難しいなら画像だけでもいいので投稿できるようにプログラムを修正したいです。
よろしくお願いします。
<?php
include_once("./app/database/connect.php");
if(isset($_POST["submitButton"])){
//スーパーグローバル変数 $_POSTを使う username=キー//
//$username=$_POST["username"];
//var_dump($username);
//$username=$_POST["bodycomment"];
//var_dump($username);
$post_date = date("Y-m-d H:i:s");
$sql = "INSERT INTO `comment` (`username`, `bodycomment`, `post_date`) VALUES (:username, :bodycomment, :post_date);";
$statement = $pdo->prepare($sql);
//値をセットする :username,:bodycomment,:post_dateの中に値をセットする
$statement->bindParam(":username", $_POST["username"], PDO::PARAM_STR);
$statement->bindParam(":bodycomment", $_POST["bodycomment"], PDO::PARAM_STR);
$statement->bindParam(":post_date", $post_date, PDO::PARAM_STR);
$statement->execute();
}
$comment_array = array();
//DBからデータを取ってくるSQL文//
//commentDBでのデータをテーブルから取得する
$sql = "SELECT * FROM comment";
$statement = $pdo->prepare($sql);
$statement->execute();
$comment_array = $statement;
//var_dump($comment_array->fetchAll());
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./assets/css/style.css">
</head>
<body>
<header>
<h1 class="title">mybbs<h1>
<hr>
</header>
<!-- thread -->
<div class="threadWrapper">
<div class="childWrapper">
<div class="threadTitle">
<span>【Title】</span>
<h1> I tried to create my bbs </h1>
</div>
<section>
<?php foreach($comment_array as $comment) :?>
<article>
<div class="wrapper">
<div class="nameArea">
<span>name:</span>
<p class="username"><?php echo $comment["username"]; ?></p>
<time>:<?php echo $comment["post_date"]; ?></time>
</div>
<p class="comment"><?php echo $comment["bodycomment"]; ?></p>
</div>
</article>
<?php endforeach ?>
</section>
<form class="formwrapper" method="POST">
<div>
<input type="submit" value="書き込む" name="submitButton">
<label>名前:</label>
<input type="text" name="username">
</div>
<textarea class="commenttextArea" name="bodycomment"></textarea>
</div>
</form>
</div>
</body>
</html>
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
一般に画像や動画を扱うと保存容量や帯域使用量が増大するので、
運用時にかかる経費を考慮した上での設計としましょう。
案1.
投稿物をバイナリとして PDO で保存
バイナリ表示専用の PHP を用意し PDO から読み取り表示
表示例) <img src="/表示.php?id=12345">
案2.
容量面の経費削減を目指すなら
ストレージサービスを用意し投稿物を保存したリンク先のみ PDO で保存
バイナリ表示専用の PHP を用意しリンク先から転送して表示
表示例) <img src="/転送表示.php?id=12345">
案3.
帯域使用量削減を目指すなら
ストレージサービスのリンク先を直接表示させる
表示例) <img src="https://サービス.com/表示/12345.jpg">
案4.
一切の運用経費を掛けないなら
投稿物のバイナリを保存せず、画像や動画の URL だけを投稿させる
CSRF 対策として URL 先のチェックが必要
表示例) 動画は youtube の URL のみ許容し埋め込み表示
参考)
PHP でのファイルアップロードの処理
https://www.php.net/manual/ja/features.file-uplo …
PDO でバイナリを取り扱う
https://www.php.net/manual/ja/pdo.lobs.php
ストレージサービスを PHP で操作
https://cloud.google.com/php/docs/reference/clou …
youtube の埋め込み
https://developers.google.com/youtube/iframe_api …
CSRF の対策
https://www.ipa.go.jp/security/vuln/websecurity/ …
No.2
- 回答日時:
PHP側でinput系の関数か$File系のスーパーグローバル変数を使ってtmpフォルダなどに作成される画像データをムーブするかコピーするか何かしらしないと行けないです。
バイナリを直接DBに入れてもいいけど
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlのエラーについて(デバッグ) 1 2023/11/13 20:54
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript Q&A掲示板の入力フォームに文字数制限を設けて入力可能な文字数を表示したい 1 2024/04/08 02:46
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
プログラミングを教えたいです。そういうSNSないですか?
その他(プログラミング・Web制作)
-
プログラム言語について プログラム言語c c++ java iPhone用言語だけ使ったら性能軽さな
C言語・C++・C#
-
mallocについて
C言語・C++・C#
-
-
4
php配列のキーの二重定義 $a['zero'],$a['iti']と$a[0],$a[1]とが同等
PHP
-
5
システムエンジニアの適正について
C言語・C++・C#
-
6
プログラミング言語で、使えるクラス沢山ありますが、以下のようなクラスってなんて名前ですか? 例えば1
PHP
-
7
オブジェクト指向プログラミングにおいて Aというクラスと Bというプロパティ(ゲッターとセッターはこ
その他(プログラミング・Web制作)
-
8
だれがとけるの?
C言語・C++・C#
-
9
バッチファイルで以下のようなものは作れますか? ・Microsoft Defenderでウイルススキ
C言語・C++・C#
-
10
プログラム言語について c言語もコードによって機械語に通訳されると知りました。直接機械が通訳しなくて
C言語・C++・C#
-
11
index.phpって何ですか? 具体的に教えてください
PHP
-
12
プログラミング
その他(プログラミング・Web制作)
-
13
PHPでこのコード自体に意味は無いんですけど、上のifと下のifの違いってなんですか?個人的には下の
PHP
-
14
AIの登場でプログラマーたちが解雇されていますが
その他(プログラミング・Web制作)
-
15
プログラミングの課題がわからないので教えていただきたいです。特にサークル関数を定義した後に呼び出す方
C言語・C++・C#
-
16
swift言語の最適化 swift最適化を最大限に出来たらcc++よりもだいぶ早く実行出来ますか?s
C言語・C++・C#
-
17
テキストファイルの1行目のみを削除したい
その他(プログラミング・Web制作)
-
18
c言語
C言語・C++・C#
-
19
[php初心者]サイトを見てデータベースへの登録を試みているのですがなぜできないのでしょうか?
PHP
-
20
小学1年生の子です。塾に行かせるのは難しいので、自宅で学べたらと思うのですが、子供にプログラミングを
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
チェックボックスのvalueに変数...
-
フォームへの前回入力値をクリ...
-
<input type="hidden" >で配列...
-
パラメーターを隠す
-
PHPで画像の渡しが上手く行きま...
-
入力フォーム→確認画面→送信画...
-
フォームのテキストボックスに...
-
smartyでチェックボックスをチ...
-
PHPで郵便番号を検索し、住所を...
-
input nameで日本語を使うと
-
検索時の選択内容を保持する方法
-
チェックボックスによる検索
-
$_SESSIONについて教えて下さい。
-
チェックボックスを用い、MySQL...
-
XMLデータをPOSTで送信・受信す...
-
選択された値をセッションで保...
-
【PHP】もし、「リセット」ボタ...
-
チェックボックスによる検索(...
-
画面が更新されてもチェックボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
検索時の選択内容を保持する方法
-
PHP ボタンが押されたら処理を...
-
HTMLのリンクをクリックするこ...
-
フォームへの前回入力値をクリ...
-
PHPで画像の渡しが上手く行きま...
-
POSTデータのNAME属性をVALUEに...
-
UPDATEの記述について
-
ラジオボタンをsessionで使いたい
-
テキストボックスに初期値を入れる
-
画面が更新されてもチェックボ...
-
DBの値をチェックボックスに反...
-
PHPでクリックするたびに変数を...
-
同じページでフォームデータを...
-
smartyでチェックボックスをチ...
-
入力フォーム→確認画面→送信画...
-
パラメーターを隠す
-
チェックボックスによる検索(...
-
チェックボックスのvalueを連結...
おすすめ情報