PHPで修行中の者です。


IPのログを取り
ログファイルと比較して、
マッチしたら
「毎度ありがとうございます!」と文字を出力。(IPが残っている方)

マッチしなかったら、
「当サイトにお越し頂き誠にありがとうございます」と文字を出力。(初めての方)

さらにIPをログして行き、
1000行に達したら
古い者から上書きしてゆくPHPを考えています。

1回ページ訪れた人とそうでない人を振り分け
効果的なコメントを表示する事が目的です。

以前にCGIで制作したのですが
他のphpと混在するページになり煩雑なので統一しています。

変換出来る方いらしたら
ご教授ください。

ログファイルはちなみにlog.csv、SQL等は使わないシンプルなものにしたいです。

CGIでの記述は以下にアップしました。
http://firestorage.jp/download/b28dd0f7e100c87d789657fc156df2d0bf07ce62

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2011/12/09 13:08:37
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Cherenkov No.2

回答回数1504ベストアンサー獲得回数493

ポイント100pt

修行として書いてみました。

<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>
他3件のコメントを見る
id:Cherenkov

log.csvが存在しない状態で実行すると一発目にエラーがでて、log.csvが生成されますね。

2011/12/09 10:52:46
id:admn

お返事ありがとうございます。
そうみたいですね。
今回はありがとうございました。
やりたいことが完成しました。

また、機会がございましたら宜しくお願い致します。

2011/12/09 13:08:11

その他の回答1件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

IPよりもcookieを使ったほうが適切だと思います。
とほほのCookie入門

id:admn

cookieは使いません。あくまでIPログで運用します。

2011/12/08 16:48:51
id:Cherenkov No.2

回答回数1504ベストアンサー獲得回数493ここでベストアンサー

ポイント100pt

修行として書いてみました。

<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>
他3件のコメントを見る
id:Cherenkov

log.csvが存在しない状態で実行すると一発目にエラーがでて、log.csvが生成されますね。

2011/12/09 10:52:46
id:admn

お返事ありがとうございます。
そうみたいですね。
今回はありがとうございました。
やりたいことが完成しました。

また、機会がございましたら宜しくお願い致します。

2011/12/09 13:08:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません