• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォーム入力で受付けたらコンテンツ配信する方法)

フォーム入力で受付けたらコンテンツ配信する方法

このQ&Aのポイント
  • Googleフォームを使用して、入力フォームを作成してページに設置します。受付けたデータはCSVファイルでダウンロードできます。
  • ダウンロードしたデータを元に、投稿画像掲載用のHTMLテンプレートにデータを挿入して投稿リストページや投稿内容紹介ページを作成します。
  • VBAマクロを使用して自動生成する方法もありますが、より良い方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2801/7249)
回答No.1

VBAでやるなんていう複雑な面倒なことを何故思うのでしょうか。 この手の処理は、PHPの定番の話です。 半分目をつぶっていてもできますが。 おそらく、質問者様はHTMLに弱いのではないでしょうか。 Googleフォームを使うという発想が・・・ CSSを操作する元気があるとすれば、そもそもCSSで定義するIDやCLASSはHTMLで参照するものです。 HTMLハンドブック一冊あればトータルで血が通いませんか。 で、本来のお話ですが、投稿されたものを料理してページを作るだけにするお考えはいかがなものかと。 この投稿ページは、ランディングページ(LP)と呼ばれる役を果たすものです。 つまり、投稿者のメールアドレス、本名仮名は問わず名前、そしてテキストや画像ですね。これがセットで来るのです。 これを重要なデータと思いませんか。 一度投稿いただいた人のものをページに掲載するだけですか。投稿者それで十分面白いでしょうか。 仮に動画なら、Youtubeなりニコ動なりいろいろ場所はありますが、そのうちどれにだけは投稿したいと思われるのはなぜ? 再生回数が右横に表示されているとそれでうれしいですよね。どんどん増えていきますから。 「いいね!」ボタンみたいなものがあったら、その集計も、出品者は楽しみですね。 視聴者のコメントがずらずら下につながったら面白いですね。 もちろん誹謗中傷類は必ずありますからそういうものを管理者判断で片付ける合意を最初にうたっていれば安全です。 質問者様は「コンテスト」とおっしゃっていますから、入賞者があったりするのですよね。 受賞作品に対するコメントなんか掲示しますよね。場合によっては評価委員会の講評なんかもつくのですね。 入賞したら当人にメールでお知らせするのが筋ですね。 入賞した人へのメールの下に、FacebookやTwitterへの拡散クリックがあったらうれしいですね。 一度出していただいた人には、また出品いただけるといいですよね。 だったら、今回のお礼とともに次の出品をお待ちしておりますというメールが、各自の名前で呼びかけ、出品作品名や評価とともに文章になって届いたら出品者はうれしいですね。 仮に千人参加していても全員に別々のそれぞれのメールが来たらうれしいですね。 特に入賞しなかった人は、自分は数のうちに入っていない、忘れられている、と思うものです。この人たちがメール1本で奮起します。 さて、質問者様の記載の範囲でこれができるかというと、全部できないのではないでしょうか。 なぜか。 ランディングページで収集したデータをデータベース化していないからです。 もらったデータは大事に、クリアファイルかなんかで保管すべきではないでしょうか。 いま、サイトがどういう形で成立してるかわからないのですが、WordPressで作られているということはないのですか。 この手のことをやろうとした場合、おっしゃっているワードプレスはほとんど何もしないで構築できます。 何もしないで、といっても調整は必要ですよ。その調整が、思い切り楽だということです。 もっともそうでないとしても、PHPの動作できるサーバーなのであれば、受け取った電文をDBに保存したりあとで読んでページを生成するプログラムは、PHP入門という本が一冊あれば簡単にできます。 データベースをどうする?  MySQLが一般的ですが、SQLiteというものを使うなら、サーバーのインストール自体が不要になります。 VBAでJetSQLなんかを使ったことがあるのなら、すんなり使えます。 データをデータベースにすると、ものごとは思い切り楽になります。 理由は、電文で来たデータをデータベースでなくてもどこかに置いておかないと、画像なんかの連携の管理ができなくなるからです。 生のファイルでおかれていると、あるかどうかをチェックするだけでもOSの命令を使わなければならなくなる。 それが一気につながる処理なのであれば、何か伝送上の事故がおきたりしたら、データが失われたのかどうなのかもわからない。 不具合に対処しようとしても、どこかでふっとんでいるなら、対処場所すら明確にならない。 これがデータベースにすれば、何かをするポイント(トランザクション)単位でデータは更新しますので、事故が起きても直前のデータは確実に保持できている。 トランザクション管理をするのが普通ですから、1,2,3の連動でデータが作られるときに2で事故がおきたら、そもそも1からやらなかったことにできます。 ですから連携データに不整合が起きにくい。 読む、判断や計算して書く、それを読み直す、編集する、ページを作る、と言う動作がそれぞれちいさいひとつの仕事の単位で書けますので、不具合がでたときに処理をブロックとして入れ替えるのが簡単。 その仕様を知っている人が他の人に伝えるときシンプルなので伝えやすい。 あまりやったことがないと、途方もない複雑なややこしいことを言っていると思うでしょうね。 でも、これは新幹線で行く方が早いという程度のことを言っているのです。 新幹線の動作や仕組みは複雑に見えますけど、釜たきも要らないし、給水もいらないし、トンネル前で窓を締めろというアナウンスも要らないのです。 で、9時間かかっていた輸送が2時間ちょっとで完了するのです。 いまいいましたような処理ができる人は、周囲に必ずいるはずです。 それと、本もいろいろ出ています。 一冊買って体験しながら覚えたら、Office類のデータ管理になれているひとなら2週から1か月ですらすらできるようになりますよ。

pfield
質問者

お礼

ありがとうございます。とても参考になりました。 大切なことなので、PHPやMySQLの本を1冊買って体験しながら覚えて見ようかなと思います。 ただVBAでやるなんていう複雑な面倒なことを何故思うのかといえば、ショッピングカートASPを利用しているからなのです。 メイクショップやショップサーブなどのショッピングカートは高機能で便利なのですが、カートがそのドメインを選挙してしまうため、例えばブログを http://自店舗ドメイン/blog などの場所に設置することが出来ません。 いまはSEO対策はコンテンツSEOと言われているサイト内のコンテンツを充実させることや、参加しやすいネタを提供することでリンクしてもらうような施策が有効なので、本来ならワードプレスなどのCMSを導入したいところなのですが、現状ではそれが出来ません。 そのための苦肉の策というところで、ワードプレスという新幹線に乗れるのであれば乗りたいのですが、それが走っていない路線で、同目的地に早くたどり着けるようにするかという課題があります。

すると、全ての回答が全文表示されます。

関連するQ&A