tetsunosukeのnotebook

tetsunosukeのメモです

[PHP] 書き込めないときは

"PHPで作成したアクセスログが開かないレポ"

<?php
print(date("Y/m/d H:i:s ") . "<br /> \n");
print("<p> access log : </p> \n");
$filepointer=fopen("./log/php-accesslog", "a+");
flock($filepointer, LOCK_EX);
fputs($filepointer,date("Y/m/d H:i:s ") . $_SERVER["REMOTE_ADDR"] . "\n");
flock($filepointer, LOCK_UN);
rewind($filepointer);
while(!feof($filepointer)){
    $fileline = fgets($filepointer);
    print($fileline . "<br />");
}
fclose($filepointer);
?> 

を思い出して、./log/php-accesslogの属性を777にしてみました。

書き込むだけなら666でいいだろうと。ていうかlogフォルダがカレントの下にあるってことは直接見れちゃうよね。これは微妙。.htaccessおくとかの対策をするならいいけど。

それと、書き込めないかどうかのテストにはPHPis_writable関数使えばいい。

ついでに、$filepointerはさすがに長過ぎるでしょう。$fpでおk

もう一点、プログラムないで二回date関数を読んでるけど、これはよろしくない。一回目の結果を変数$dateとかにしまっておいて、それを再利用すべき。