アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTMLを表示して、ボタンを押すと数字がカウントされていく仕組みを作りたく悩んでいます。

<html>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<body>

<?php
$logfile = "./kinen.log";


if( $fn = @fopen($logfile, 'r') ) {
$counter = trim(fgets($fn));
fclose($fn);
}
print( $counter . "本禁煙成功しました<br>");
print( ++$counter . "人目のお客様です<br>");

?>

<form>

</form>

<?php
if( $fn = @fopen($logfile, 'w') ) {
fwrite( $fn, $counter);
fclose($fn);
}
?>

</body>
</html>

リロードで正常にカウントアップされていきますが、ボタンを押して動くようにはできないものでしょうか。
初心者なもので。。宜しくお願い致します。

A 回答 (4件)

>ちなみにページを表示した時に稀に文字化けするんですが、コレはサーバーの仕様で仕方ないものなんでしょうか。



ブラウザはmetaタグよりもHTTPヘッダの方を優先します。スクリプトの最初に

  header("Content-type: text/html; charset=euc-jp");

を入れてみては?

#これでダメだとHTTPのリクエスト/レスポンスを見ないとわかりません(汗
    • good
    • 0
この回答へのお礼

有難うございます。

いろいろ勉強になりました。

お礼日時:2008/04/23 09:36

ANo.2です。



>ボタンを押したときだけカウントアップするものでした。

であれば

  <form action="" method="post">
  <input type="submit" name="submit" value="更新">
  </form>

などとしておいて、スクリプト側で「if ($_POST)」でチェックすればGET(リロード)ではカウントしなくなります。
    • good
    • 0
この回答へのお礼

できました!
ありがとうございます!!

念のため、スクリプト載せます
<html>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<body>
<?php
$logfile = "./kinen.log";
if( $fn = @fopen($logfile, 'r') ) {
$counter = trim(fgets($fn));
fclose($fn);
}
if ($_POST["submit"]){
print( $counter . "本禁煙成功しました<br>");
print( ++$counter . "人目のお客様です<br>");
} else {
print( $counter . "本禁煙成功しました<br>");
}
?>
  <form action="" method="post">
  <input type="submit" name="submit" value="更新">
  </form>
<?php
if( $fn = @fopen($logfile, 'w') ) {
fwrite( $fn, $counter);
fclose($fn);
}
?>
</body>
</html>

ちなみにページを表示した時に稀に文字化けするんですが、コレはサーバーの仕様で仕方ないものなんでしょうか。。

お礼日時:2008/04/22 16:33

yambejpさん@ANo.1に追加で



  <form action="" method="post">

の方がいいかもしれません。methodを省略するとGETになります。∴ URLの最後に「?」が付加されてしまうので。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
下記に記載しましたが実現したいのが、ボタンを押したときだけカウントアップするものでした。

ページ更新だけするには、こちらの方が良いのかも知れません。
有難うございます。

お礼日時:2008/04/22 10:29

<input type="submit" value="更新ボタン">



とすればよいのでは?
ちなみにログファイルをロックしてないですが大丈夫?
    • good
    • 0
この回答へのお礼

お返事ありがとうございます

すいません言葉が足らなかったみたいです。
実際には、ページを更新してカウントを増やしたいのではなく、ボタンの押した時にだけカウントを増やしたいです。

ページを更新した時もカウントが増えてしまうと何かと不都合がございまして。。。申し訳ありません。

お礼日時:2008/04/22 10:26

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