• ベストアンサー

カウンターの作り方

本を読んでPHPの勉強をしているのですが、さっそく引っかかってしまいました。 本にはcounter.logというファイルにカウンターの値を保存するようにプログラムが書かれています。 そして、windowsではこのcounter.logがスクリプト実行時に自動的に作られるとあるのですが、私はMAC OS Xなので作られず、何回アクセスしても「1人目のお客様です。」と表示されます。 試しに空のcounter.logというファイルを作っておなじディレクトリにおいてみましたが、何も変わらないし、ファイルの中もからのままです。 どうしたら良いのでしょうか?

  • PHP
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.3

書き込み用ファイルを開く処理の中で↓ if( $fn = @fopen($logfile. 'w')){ ソースコードをコピペしてるのだとしたら、 $logfileの後ろが、コンマではなく、ピリオドなのが原因ですね。 デバッグ中は、"@fopen"の"@"を外して"fopen"とする方が良いですよ。 最後には付け加えるのを忘れずに。

chibihuku
質問者

お礼

できました・・・。 お恥ずかしいです・・・ ありがとうございました!

その他の回答 (2)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

サーバー上で稼働しているなら、対象のディレクトリのパーミッションを確認・変更してみましょう。 とりあえずテストなので、777でいいでしょう。(誰でも読み書き実行可能、セキュリティ的に問題ありなのでテストだけに使用してください) 試しに自分で作成したcounter.logに適当な、かつ適切なデータを入れた場合はどうなります?(サーバー上なら、ファイルのパーミッションをとりあえず777に変更) おそらく、訪問者数を数字文字列で保存しているのでしょうが、10という数字を入力した場合など。 なんとなくファイル名やパスが間違っていたってオチもありそうな気がします、念のためにそこも確認してみてくださいね。

chibihuku
質問者

補足

counter.logに10を入力して保存したら、11人目のお客様になりました。 ちなみにXAMPPというソフトを使ってhttp://localhostというところで見てますが、これはサーバー上ではないのでしょうか? あと、パーミッションはどのように確認するのですか? 分からないことだらけですみません。 遅ればせながら、スクリプトを書いておきます。 <html> <head> <title>最初のカウンター</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php $logfile = "./counter.log"; $counter = 0; if( $fn = @fopen($logfile, 'r')){ $counter = trim(fgets($fn)); fclose($fn); } print( ++$counter . "人目のお客様です<br>"); if( $fn = @fopen($logfile. 'w')){ fwrite( $fn, $counter); fclose($fn); } ?> </body> </html> です。

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

質問1 PHPが動作しているのはローカル(あなたのパソコン)でしょうか? それとも外部のサーバーでしょうか? 質問2 実行されているスクリプトは本に書いてるサンプルスクリプトでしょうか? それともご自分で作成されたものでしょうか?

chibihuku
質問者

補足

>質問1  PHPが動作しているのはローカル(あなたのパソコン)でしょうか?  それとも外部のサーバーでしょうか? http://localhost/とあるので、たぶんローカルです。 >質問2  実行されているスクリプトは本に書いてるサンプルスクリプトでしょうか?  それともご自分で作成されたものでしょうか? 本のサンプルスクリプトです。

関連するQ&A

  • ODNのアクセスカウンター設置法について

    ODNで純正のgifファイルをダウンロードしたのですが、HPに『X』マークがついてしまい、アクセスカウンターが表示されません。また、ODNのHPには『gifファイルは、お客様のホームディレクトリ(FTPソフト等でディレクトリを指定せずにログインした際に表示されているディレクトリ内。)にアップロードして下さい。』とあるのですが、この文は具体的に何をどうすればよろしいのでしょうか?HP作成にはホームページビルダー6を使っており、その解説本もあるのですが、どうもODNのHPが衣替えをしたらしく、まったく役に立ちません。せっかくHPをつくったのにアクセスカウンターがないのは寂しいです。ご回答をお待ちしております。

    • ベストアンサー
    • CGI
  • アクセスカウンターのセキュリティについて

    IISでWWWサーバーを立ち上げており、アクセスカウンターを設置したいと考えています。その際、cgiフォルダにcgiプログラムとカウンターのデータファイルを置く必要があります。その際、ディレクトリのアクセス権を読み取り権限と書き込み権限を与えるように指示されているのですが、この際のセキュリティはどのようになるのでしょうか?ディレクトリに書き込み権限を与えるというのは、外部からいたずらされそうで、怖いのですが。。セキュリティ上の危険性とその回避策について教えていただければと思います。

  • アクセスカウンターを他のファイルにコピーすることは出来る?。

    ホームページのトップページにアクセスカウンターを設置しています。 今回、トップページを変更したのですが、素材屋さんからダウンロードさせてもらったお試しページの上に、元あった表紙の内容を書き込みました。 JAVAスクリプトと呼ぶのでしょうか??画面の上で画像が動くのが使いたくて、素材屋さんの指示に従ってやったら、それはうまくいったのですが、元々のトップページを壊してしまうのがこわかったので、新しいファイル名にして更新しました。 アクセスカウンターは元あった表紙ファイルのをコピーしました。 そうすると、カウンターの数が0に戻りました。 これを元の値に戻すことは出来ますか?。 カウンターは、プロバイダーから配布されたものを使っていて、自分では一度も触ったことがないので、よく分かりません。 また今回のようにカウンターを他のファイルに付け直す時、その数値ごと変える事はできないのでしょうか。

    • 締切済み
    • CGI
  • 状態の変化がAjaxで取得できない

    Ajaxを使ってphpプログラムを呼び出し、あるディレクトリの中身を全て削除するというプログラムを組んでいます。結果をそれぞれ「ファイルの全削除が完了」「ファイルの全削除が失敗」「既にディレクトリが空」の3タイプをアラートで返すようにしています。 最初にこれを実行するとファイルが削除されるので「ファイルの全削除が完了」と返事が来ます。その後すぐにこれを再実行するとファイルを全削除した直後なので当然ディレクトリ内は空で、「既にディレクトリが空」と答えを返してくれそうなものなのですが、実際には先の返事と同じものが返ってきます。ディレクトリは空のはずなのに「ファイルの全削除が完了」と。 ページを更新しても変化はありませんが、新しいウィンドウで実行するとその変化が適用されています。これはなぜなのでしょうか?状態の変化で動作を変えるのが得意なAjaxなので、なんとか実行できて欲しいのですが・・・。

  • FC2の無料カウンターについて

    いつもお世話になっています。 初めて作成したホームページにFC2のカウンターを設置したところ、ホームページを立ち上げるたびに 「セキュリティ保護のため、このコンピュータにアクセスする可能性のあるスクリプトやActiveXコントロールを 実行しないよう、Internet Explorerで制限されています。~」とブロックされてしまいます。 カウンターを設置する前には表示されませんでした。 FC2のカウンターに広告が付いているせいなのか、オプションを変えればよいのかがわかりません。 試しにカウンターの広告部分のみを削除したいのですが、HTMLタグのどの部分を削ればよいのかもわかりません。 詳しい方がおりましたら、よろしくご指導のほどお願い致します。

  • アクセスカウンターの設置

    ホームページにアクセスカウンターを設置した際、 そのサイトを開くと、カウンターがスクリプトのモノのせいか、 セキュリティの警告が出てしまいます。 カウンターはfc2で無料公開されているものを使っています。 ↓ここでは表示上「h」を2つとも抜きました <script language="JavaScript" type="text/javascript" src="ttp://counter1.fc2.com/counter.php?id=1390153"></script><noscript><img src="ttp://counter1.fc2.com/counter_img.php?id=1390153"><br></noscript> 他者のカウンターを設置してあるホームページを開いても、 通常セキュリティの警告は出ません。 警告の出ない、何かよいカウンターを教えていただけませんか?

  • ODNのアクセスカウンタ

    アクセスカウンタをつけたくて昨日から何度かやってみましたが、わかりません。 教えてください。他の関連の質問も見ましたが回答がさっぱりわかりません。 ☆☆☆☆☆以下ODNの説明書き☆☆☆☆ (1)gifファイルは、お客様のホームディレクトリ (FTPソフト等でディレクトリを指定せずにログインした際に表示されているディレクトリ内。) にアップロードして下さい。 (2)gifファイルがきちんとアップロードされたかを 確認するには、ブラウザソフトのアドレスを入力する欄に、 http://www1(or2).odn.ne.jp/~(お客様のID)/0.gifを入力して下さい。 (3)カウンタを表示させたいページ(HTMLファイル) の中で下記のように記述してください。 あなたは <img SRC="/cgi-bin/counter.cgi?user=zaa00000&figure=6&mode=gif&address =zaa00000@pop01.odn.ne.jp&dtime=10"> 番目のお客様です。 ※なおzaa00000の部分はお客様のWWWID(ftp用ID) に変更してください。 ☆☆☆☆☆ここまで☆☆☆☆ ということで指示どおりに書いてアップロードしましたが ×が表示されるだけなのです。 どうしてなのだかわかりません。設定ですか? どこをどうチェック入れてどう治したらいいのか まったくわかりません。おねがいします。

    • ベストアンサー
    • CGI
  • シンプルカウンター設置について;

    徹夜してもわからなかったのでどなたか教えて下さい; 今携帯用ホームページにS-counterの超シンプルカウンター(http://www.phpweb.jp/scounter/ )を設置しようとしているのですが、どうやってもうまくいきません。 S-counterの利用方法にはこう書かれております ----------------------------------------------- 1.HTMLファイルのカウンターを表示したい部分に以下の通り記述してください。 <?include("./scounter/scounter.php");?> ※「;」はセミコロンです 2.HTMLファイルの拡張子を「.php」に変えて転送してください。 カウンターを表示したいページと同じディレクトリに、scounterのフォルダごと転送してください。 3.パーミッションの設定をします。 ディレクトリ構成とパーミッション ******.html カウンターを表示するページ scounter カウンターフォルダ + scounter.php [705] + counter.txt [606] + images [707] 画像版のみ     + 0.gif ~ 9.gif  カウンター画像は各自で差し替えてご使用いただくと良いと思います。(gifファイルのみ対応です) ---------------------------------------------- 私はまず、counter.txtとscounter.phpの入ったscounterフォルダをダウンロードし、index.shtml内のカウンターを設置をしたい場所に<?include("./scounter/scounter.php");?>と書き、FFFTPを使ってindex.shtmlと同じ階層にscounterフォルダをアップロードしました。 その後、FFFTPの属性変更よりscounter.phpの属性を705に、counter.txtの属性を606に変更しました。 利用方法に従うとこれで出来るような気がするのですが、なぜか表示できません…。どなたか原因がわかる方はいらっしゃらないでしょうか。

    • ベストアンサー
    • PHP
  • 総ページビューが分かるアクセスログ解析スクリプトを探してます!

    アクセスログ解析スクリプトですが、あるサイト(ディレクトリ)以下全ページに対してのアクセスログをとってくれるスクリプトを探しています。よくあるアクセスログ解析スクリプトは解析したいページにタグを追加するものですが、全ページに対してこのような作業を行う事が出来ません。「特定のディレクトリ以下の全HTMLファイルを対象にアクセスログをとる」仕様のスクリプトはどこかにないでしょうか?

    • 締切済み
    • CGI
  • 自前のアクセスカウンタを作成したいのですが

    会社で自分のホームページを運用?してます。 プログラムの実行ファイルを載せてユーザーにダウンロードさせるだけの簡単な物です。 これにアクセスカウンタを付けたいと思ってます。 他のサイトを参照するアクセスカウンタで無く社内のアクセスだけで済むカウンタが理想です。 ホームページ用のサーバーはWIN2000だと思います。 レンタルでもいいですがソースは社内サーバーにしたいです。出来れば自分で作成したいと思ってます。 何から始めたらいいですか?

    • ベストアンサー
    • CGI