10秒目をつむったら…

フォーム(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>


また、文字の色を指定してもその通りになりません。なぜでしょうか?

どこが間違っているかどなたか教えてください。
必要があればほかのソースも書き込みます。
よろしくお願いします。

A 回答 (4件)

すみません(;^_^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]";
}
}

?>
    • good
    • 0

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);
}
}

?>
    • good
    • 0
この回答へのお礼

ご回答どうもありがとうございました。
上記の仕様どおりに実行してみましたが、
やはりank.txtには書き込まれません。
もとのソースでももちろん同じですが。
何が問題なのでしょうか?
初心者なのでもう少し詳しく教えていただければ幸いです。
よろしくお願いします。

お礼日時:2005/07/02 23:27

$kannsouが空なのではないでしょうか。


フォームから受け取った変数なら$_POST['kannsou']か$_GET['kannsou']だと思います

参考URL:http://jp.php.net/manual/ja/language.variables.e …

この回答への補足

$kannsouが空とおっしゃると、どこの$kannsouのことなのでしょうか?
$_POST['kannsou']と$_GET['kannsou']についてはさっぱりわかりませんので、
ご提供のURLを参考にさせてください。
また、ANHYOUJI.PHPのソースを下のほうに追加しましたので
よろしければ参考にしていただければと思います。
回答どうもありがとうございました。

補足日時:2005/07/02 17:00
    • good
    • 0

データは記録されているのですよね?


また、文字色の指定をしてそうならないのはどこでしょうか。

表示プログラム(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のソースも見ないとわからないようであればおっしゃってください。
よろしくお願いします。

補足日時:2005/07/02 16:49
    • good
    • 0

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


おすすめ情報