みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

php ファイルの書き込み読みだし

htmlフォームから回答 phpで処理計算しlog.csvに保存、log.csvファイルを読みだしその結果をブラウザに表示するスクリプトを書いておりますが、log.csvファイルを読みだして結果を表示の部分が調べてもできなくて困っております。どなたか知恵を貸してほしいです。批判や中傷などは書かないでください。



<HTML>
<HEAD>
<TITLE>テキスト送信のテスト></TITLE>
</HEAD>
<FORM name="toi_5.html"method="post" action="toi5.php">
<Div Align="center">名前:<BR>
<INPUT type="text"name="onamae">
<BR>
性別:<BR>
<INPUT type="radio"name="gender" value="男">男<BR>
<INPUT type="radio"name="gender" value="女">女<BR>
<BR>
<SELECT name="syokugyou">
<OPTION value""selectd>職業をえらんでください</OPTION>
<OPTION value"学生">学生</OPTION>
<OPTION value"会社員">会社員</OPTION>
<OPTION value"公務員">公務員</OPTION>
<OPTION value"自営業">自営業</OPTION>
<OPTION value"その他">その他</OPTION>
</SELECT><BR>

<p></p>
満足度を答えてください:<BR>
<INPUT type="checkbox" name="hobby[]" value="満足">
満足<BR>
<INPUT type="checkbox" name="hobby[]" value="やや満足">
やや満足<BR>
<INPUT type="checkbox" name="hobby[]" value="普通">
普通<BR>
<INPUT type="checkbox" name="hobby[]" value="やや不満">
やや不満<BR>
<INPUT type="checkbox" name="hobby[]" value="不満">
不満<BR>
<BR>
<INPUT type="submit" value="回答">
</div>
</FORM>
</BOBY>
</HTML>





<HTML>
<HEAD>
<TITLE>PHPのテスト</TITLE>
</HEAD>
<BOBY>


<p> <Div Align="center">名前</p>
<?php
print $_POST["onamae"];
?>
<p>



<?php
if(isset($_POST["gender"])&&($_POST["gender"]=="男"||
$_POST["gender"]=="女")){
print"性別:<BR>";
print $_POST["gender"];
}else{
print"性別を選んでください。<BR>";
}
?>
<?php
session_start();
if (isset($_SESSION["gender"])) {
$_SESSION["gender"]++;
print($_SESSION["gender"]."回目");
} else {
$_SESSION["gender"] = 0;

}
?>

<p>
</p>
<?php
if($_POST["syokugyou"]<>""){
print"職業:<BR>";
print$_POST["syokugyou"];
}else{
print"職業をえらんでください<BR>";
}
?>
<?php
if (isset($_SESSION["syokugyou"])) {
$_SESSION["syokugyou"]++;
print($_SESSION["syokugyou"]."回目");
} else {
$_SESSION["syokugyou"] = 0;

}
?>

<p>
</p>
満足度を答えてください<BR>
<?php
if(isset($_POST["hobby"])){
$hobby=implode($_POST["hobby"]);
print $hobby;
}else{
}
?>
<?php
if (isset($_SESSION["hobby"])) {
$_SESSION["hobby"]++;
print($_SESSION["hobby"]."回目");
} else {
$_SESSION["hobby"] = 0;

}
?>



<?php
// 出力
$fileName = "log.csv";

header('Content-Disposition: attachment; filename=' . $fileName);
?>



</div>

</body>
</html>
</BOBY>
</HTML>

投稿日時 - 2013-07-30 15:11:56

QNo.8198459

困ってます

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

CSVの読み書きはこの関数でどうぞ。(検索したら一発で引っかかりますが…)
http://php.net/manual/ja/function.fputcsv.php
http://php.net/manual/ja/function.fgetcsv.php

いつも思うんですけど、HTMLベース部分はあなたじゃなくて出題者が書いたソースですよね?
出題者の方への文句をここに書いてもしょうがない気もしますが、余りに気になるので述べさせていただきます。

× <OPTION value"学生">学生</OPTION>
○ <OPTION value="学生">学生</OPTION>

△ HTMLタグ・属性の大文字小文字の用い方がバラバラすぎる。可能であれば全て小文字に統一すべき。

△ align属性はp要素に対しては用いるべきでない(手抜きならよくあるけど)。

△ PHPのロジック部分とHTMLのデザイン部分を混ぜすぎ。極力分離すべき。

△ issetは$_SESSIONだけじゃなくて、「$_」から始まるすべての変数に対して用いてチェックすべき。
$_POST["syokugyou"]<>""

!isset($_POST["syokugyou"]) || $_POST["syokugyou"] === ""

投稿日時 - 2013-07-30 18:07:03

お礼

ご教授くださりありがとうございます。おかげさまでブラウザに出力する方法は分かったのですが今度は保存と出力を同時にすることができず困っております。とりあえずしばらくは自分で取り組んでみます。

投稿日時 - 2013-07-30 20:34:22

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

【再訂正】
!isset($_POST["syokugyou"]) || $_POST["syokugyou"] === ""

isset($_POST["syokugyou"]) && $_POST["syokugyou"] !== ""

投稿日時 - 2013-07-30 18:19:01

ANo.3

【訂正】 p要素 → td、th以外の要素

投稿日時 - 2013-07-30 18:08:53

ANo.1

サーバ内にあるcsvファイルを、ただ出力するだけなら
readfile($fileName);

echo file_get_contents($fileName);
とするだけ。

加工して出力するなら fgetcsv 関数を使って配列に読み込んで処理します。
サンプルは下記URLにあります。
http://www.php.net/manual/ja/function.fgetcsv.php

投稿日時 - 2013-07-30 18:05:15

あなたにオススメの質問