IPのログを取り
ログファイルと比較して、
マッチしたら
「毎度ありがとうございます!」と文字を出力。(IPが残っている方)
マッチしなかったら、
「当サイトにお越し頂き誠にありがとうございます」と文字を出力。(初めての方)
さらにIPをログして行き、
1000行に達したら
古い者から上書きしてゆくPHPを考えています。
1回ページ訪れた人とそうでない人を振り分け
効果的なコメントを表示する事が目的です。
以前にCGIで制作したのですが
他のphpと混在するページになり煩雑なので統一しています。
変換出来る方いらしたら
ご教授ください。
ログファイルはちなみにlog.csv、SQL等は使わないシンプルなものにしたいです。
CGIでの記述は以下にアップしました。
http://firestorage.jp/download/b28dd0f7e100c87d789657fc156df2d0bf07ce62
修行として書いてみました。
<html> <head> <meta charset="UTF-8" /> </head> <body> <?php $filename = './log.csv'; $ipLogArray = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $userIp = $_SERVER["REMOTE_ADDR"]; if (in_array($userIp, $ipLogArray)) { echo '毎度ありがとうございます!'; } else { if (count($ipLogArray) >= 1000) { unset($ipLogArray[0]); } $ipLogArray[] = $userIp; $ipLog = join("\n", $ipLogArray); file_put_contents($filename, $ipLog); echo '当サイトにお越し頂き誠にありがとうございます'; } ?> </body> </html>
修行として書いてみました。
<html> <head> <meta charset="UTF-8" /> </head> <body> <?php $filename = './log.csv'; $ipLogArray = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $userIp = $_SERVER["REMOTE_ADDR"]; if (in_array($userIp, $ipLogArray)) { echo '毎度ありがとうございます!'; } else { if (count($ipLogArray) >= 1000) { unset($ipLogArray[0]); } $ipLogArray[] = $userIp; $ipLog = join("\n", $ipLogArray); file_put_contents($filename, $ipLog); echo '当サイトにお越し頂き誠にありがとうございます'; } ?> </body> </html>
log.csvが存在しない状態で実行すると一発目にエラーがでて、log.csvが生成されますね。
お返事ありがとうございます。
そうみたいですね。
今回はありがとうございました。
やりたいことが完成しました。
また、機会がございましたら宜しくお願い致します。
log.csvが存在しない状態で実行すると一発目にエラーがでて、log.csvが生成されますね。
2011/12/09 10:52:46お返事ありがとうございます。
2011/12/09 13:08:11そうみたいですね。
今回はありがとうございました。
やりたいことが完成しました。
また、機会がございましたら宜しくお願い致します。