マンガでよめる痔のこと・薬のこと

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>

このQ&Aに関連する最新のQ&A

A 回答 (4件)

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"] === ""
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/30 20:34

【再訂正】


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

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

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

    • good
    • 0

サーバ内にあるcsvファイルを、ただ出力するだけなら


readfile($fileName);

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

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

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング