質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1024閲覧

【PHP】フォーム入力データを同ページ内に出力とcsvファイルに出力したい

raata

総合スコア5

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/05/10 06:12

編集2020/05/10 06:42

HTMLを使って入力フォームを作成後
PHPで入力データをcsvファイルに出力したいと思っています。
以下のページを参考にcsvファイルへの出力を試していますが$dataが未定義の変数だとエラーが出ます。
エラー文:Notice: Undefined variable: data in ファイルパス
原因が突き止められていません。
参考サイト:https://teratail.com/questions/144029

また、以下のように入力フォームのデータを同ページにもcsv同様出力したいです。
例)
イメージ説明
|番号|開始時間|終了時間|イベント名
|:--|:--:|--:|
|001|10:00|11:00|イベント

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
(index.php)

php

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>入力フォーム</title> 6</head> 7<body> 8 9<form method="post" action="index.php"> 10<table style="text-align: left;"> 11 <tr> 12  <th>番号</th> 13  <td><input size="50" type="text" name="code" /></td> 14  </tr> 15 <tr> 16  <th>開始時間</th> 17  <td><input size="50" type="text" name="start_time" /></td> 18  </tr> 19 <tr> 20   <th>終了時間</th> 21  <td><input size="50" type="text" name="ending_time" /></td> 22 </tr> 23 <tr> 24 <th>イベント名</th> 25 <td><input size="50" type="text" name="title" /></td> 26 </tr> 27</table> 28 29<p><input type="submit" value="新規登録"></p> 30</form> 31 32</body> 33 34<?php 35//取得した値を変数に代入 36$company_code = $_POST["code"]; 37$start_time = $_POST["start_time"]; 38$ending_time = $_POST["ending_time"]; 39$title = $_POST["title"]; 40 41//CSVファイルに書き込むデータの準備 42//列のタイトル 43 $data .= $code; 44 $data .= ','; 45 $data .= $start_time; 46 $data .= ','; 47 $data .= $ending_time; 48 $data .= ','; 49 $data .= $title; 50 $data .= "\n"; 51 52 $file = fopen('format.csv', 'a'); 53 fputs($file, $data); 54 fclose($file); 55?> 56 57</html> 58

以上のことを実装させるようにするにはどうすればよろしいでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2020/05/10 06:38

(質問文は編集できます)「エラーが出ます」では無く、エラー文を具体的にコードブロックで質問文に追記ください。
guest

回答1

0

ベストアンサー

エラー(というか今回はNoticeだから処理は中断してない)には行数がつきものですが、もしそれが下記であれば

php

1$data .= $code;

初期値が設定されていない値に追記しようとしているからだと思います。
利用前に初期化すれば良いかと。

php

1$data = ""; 2$data .= $code;

ただそもそも、現状のコードだとアクセス時にunidefined indexが$_POSTに出るうえに、SUBMITしなくてもformat.csvが出来上がるような作りになってますが、そちらは問題ないでしょうか。

投稿2020/05/10 07:16

m.ts10806

総合スコア80854

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raata

2020/05/10 07:31

回答ありがとうございます。 まだ、phpを勉強しはじめたばかりで見様見真似でコードを書いているので ご指摘いただいていることにきちんと返信ができているか怪しいですが以下のサイトの解決方法を実行した方がよいと言うことでしょうか? https://qiita.com/wakahara3/items/bb7c8d7a1673b161abe7 よろしくお願いします。
m.ts10806

2020/05/10 07:39

見よう見まねは構わなのですが、必ずPHPマニュアルで機能確認を行うようにしてください。 それができるかできないかで、初心者から抜け出せるか抜け出せないかが決まります。 teratailを見ていると、PHPに限らず、公式のマニュアルやドキュメントを活用できない人はずっと初心者から抜け出せていません。(そしてそれを指摘しても受け入れない)
raata

2020/05/10 08:27

ありがとうございます! if ($_SERVER ['REQUEST_METHOD'] == 'POST'){ を追記しました。 PHPマニュアルを活用しながら頑張ります。
m.ts10806

2020/05/11 00:06

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問