- 締切済み
アンケートシステム 集計データを表示させたい
フォーム(FORM.HTML)、書き込みプログラム(ANWRITE.PHP)、表示プログラム(ANHYOUJI.PHP)の三つの画面と、データファイル(ANK.TXT)から構成しています。 集計データをANHYOUJI.PHP画面に表示できません。 以下がANWRITE.PHPのソースです。 //ANWRITE.PHP <html> <body> <?php function text_replace($text){ if(!empty($text)){ $text=htmlspecialchars($text); $text=nl2br($text); $text=str_replace("\r","",$text); $text=str_replace("\n","",$text); $text=str_replace(",",",",$text); return $text; }else{ return $text; } } $dir="ank.txt"; if(!file_exists($dir)){ echo("file not exist"); } $file=fopen($dir,"a+"); $kannsou=text_replace($kannsou); $data="$q2,$kannsou\n; fwrite($file,$data); fclose($file); ?> <font color="#00FF00" size="5">アンケート結果を表示しますか?</font> <br> <form method=get action="anhyouji.php"> <input type="submit" value="はい、表示します"> </form> </body> </html> また、文字の色を指定してもその通りになりません。なぜでしょうか? どこが間違っているかどなたか教えてください。 必要があればほかのソースも書き込みます。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ron0826
- ベストアンサー率21% (3/14)
すみません(;^_^A こんな感じでどうでしょうか? まるまるコピーでいけます。 --form.html-- <html> <head> <title>Test</title> </head> <body> <form method="post" action="anwrite.php"> お名前<input type="text" name="namae"><br> 感想<input type="text" name="kannsou"><br> <input type="submit" name="Submit" value="書込み"> </form> </body> </html> --anwrite.php-- <?php if($_POST[Submit]){ if($_POST[namae]=="" || $_POST[kannsou]==""){ echo "お名前、感想が空白です"; exit; }else{ $_POST[namae] = htmlspecialchars($_POST[namae]); $_POST[kannsou] = htmlspecialchars($_POST[kannsou]); $fp = fopen("ank.txt","a"); fwrite($fp,"$_POST[namae]\t$_POST[kannsou]\n"); fclose($fp); echo "書込みが完了致しました。<br>\n"; echo "$_POST[namae]<br>$_POST[kannsou]"; } } ?>
- ron0826
- ベストアンサー率21% (3/14)
ANWRITE.PHPを実行してank.txtにデータが書き込まれて無いような気がします。。。 簡単な書込みプログラムです。 参考になれば幸いです。 (testはしてませんが(;^_^A) --FORM.HTML-- <form method="post" action="ANWRITE.php"> お名前<input type="text" name="namae"><br> 感想<input type="text" name="kannsou"><br> <input type="submit" name="SUBMIT" value="書込み"> </form> --ANWRITE.php-- <?php if($_POST[Submit]){ if($_POST[namae]=="" || $_POST[kannsou]==""){ echo "お名前、感想が空白です"; exit; }else{ $dir="ank.txt"; $file=fopen($dir,"a"); $kannsou=text_replace($kannsou); $data="$_POST[namae],$_POST[kannsou]\n; fwrite($file,$data); fclose($file); } } ?>
- carroll
- ベストアンサー率61% (13/21)
$kannsouが空なのではないでしょうか。 フォームから受け取った変数なら$_POST['kannsou']か$_GET['kannsou']だと思います
補足
$kannsouが空とおっしゃると、どこの$kannsouのことなのでしょうか? $_POST['kannsou']と$_GET['kannsou']についてはさっぱりわかりませんので、 ご提供のURLを参考にさせてください。 また、ANHYOUJI.PHPのソースを下のほうに追加しましたので よろしければ参考にしていただければと思います。 回答どうもありがとうございました。
- moon_night
- ベストアンサー率32% (598/1831)
データは記録されているのですよね? また、文字色の指定をしてそうならないのはどこでしょうか。 表示プログラム(ANHYOUJI.PHP)のほうを見ないと分からないので、補足をお願いします。
補足
ありがとうございます。 色を指定しているのは上記の <font color="#00FF00" size="5">アンケート結果を表示しますか?</font> です。 ではANHYOUJI.PHPのソースを補足します。 //ANHYOUJI.PHP <html> <body> <?php $dir="ank.txt"; if(!file_exists($dir)){ echo("file not exist"); } $data=file($dir); $row=count($data); for($i=0;$i<$row;$i++){ $datadiv=explode(",",$data[$i]); $q2=$datadiv[0]; $kannsou=$datadiv[1]; echo($q2); echo("\n"); echo($kannsou); echo("\n"); } ?> </body> </html> ちなみに、データが記録されているとはどういうことでしょうか? 前記のANK.TXTファイルには、やはり何も記録されませんが。 記事の文字数制限がかかりますので、 FORM.HTMLのソースも見ないとわからないようであればおっしゃってください。 よろしくお願いします。
お礼
ご回答どうもありがとうございました。 上記の仕様どおりに実行してみましたが、 やはりank.txtには書き込まれません。 もとのソースでももちろん同じですが。 何が問題なのでしょうか? 初心者なのでもう少し詳しく教えていただければ幸いです。 よろしくお願いします。