私の本職は芸人でございます。
吉本に所属しておりますが、これがすこぶる売れていない。

IT芸人として売り出してはどうだろうってことで
今後は

ギーク芸人を目指すトクトミのブログ

http://d.hatena.ne.jp/geek_it/
新しいブログに移行いたします。
Linuxのユーザー名を変更したいときのコマンド

usermod -l 新しいユーザー名 旧ユーザー名

ユーザーのホームディレクトリなどは変更されないので

rename コマンドで別途変更する必要がある。
coreserverに自動でインストール出来るphpmyadminで
blob型のテーブルに行を追加しようとしたら以下のエラーが出た

Warning: mkdir() [function.mkdir]: Unable to access ./tmp/ in /virtual/*****/public_html/log/phpmyadmin/libraries/tbl_replace_fields.inc.php on line 100

tmpフォルダが見つからないと怒られています。

/virtual/*****/public_html/log/phpmyadmin/

にtmpと言う名前のフォルダを作ってパーミッションを777にしたらエラーが出なくなった。

※ ***** は ユーザー名
日時の設定方法はdateコマンドを使って設定する。

-s オプションを付けると設定になり
何も付けないとシステム設定日時を閲覧できる。

日付と時刻を2008年10月8日11時10分にセットする
# date -s "10/08 11:10 2008"
DBからリスト項目を取ってくる場合は
繰り返し作っていけば良いが
HTMLのみの場合 selected を付けるのに、いちいち

<option <?php if($_POST['Year'] == "2008"){echo "selected";} ?> value="2008" >2008</option>
<option <?php if($_POST['Year'] == "2009"){echo "selected";} ?> value="2009" >2009</option>
とやっていたのだが、これでは項目が多くなるとめんどくさいので

<option value="<?=$_POST['Year']?>" ><?=$_POST['Year']?></option>
<option value="2008" >2008</option>
<option value="2009" >2009</option>

optionタグの一番上にPOST値をvalueにしたoptionタグを付けることで
エラーによる再入力の時などに
すでに先ほど選んだ値が選択された状態になる。
Firefoxではまったのでメモ。

Sessionの特定の要素を削除するため

unset()を使ったのだが

なぜかFirefoxだけ二つの値が削除される。

プログラムの実行が二回されているようだ。

プログラムの先頭と一番後ろに

print_r($_SESSION);

としてもunset()は一回しか実行されていないのでなぜかと調べたら。

imgタグのsrc属性が空白だとfirefoxではそのURLを二回読みにいくようだ。

<img src="" >

こんな感じになっていた。

ここに適当な文字をいれたら複数削除されなくなった。

削除や登録などの実行プログラムでたまにあるミスのようだ。

バージョンはFirefox3だったが2でも同じ模様。
参照サイト:http://www.bnote.net/php/pear/ref_auth.shtml

PHPのPEAR Auth のコンストラクタ

認証された際のusernameを取得したくて調べてたら、これを見つけた。
最初は
$username = $authobj->username;
としていたがこれではもう一度読み込んだときに$usernameの値がからになっていた。

$username = $authobj->getUsername()
これで取得できた。

Auth::start() 認証の開始及び認証フォーム出力
Auth::logout() ログアウトします。
Auth::setExpire() 認証の有効期限を設定
Auth::setIdle() 最大アイドル時間の設定
Auth::setSessionname() カスタムセッション名の設定
Auth::setShowLogin() ログインページを表示するかどうかを指定します。

認証状態の取得

Auth::getAuth() ユーザが認証済みかどうか調べます。
Auth::getStatus() 現在の認証状況についての情報を返す。

コールバック

Auth::setLoginCallback() ログイン時のコールバック関数を登録します。
Auth::setFailedLoginCallback() ログインエラー時のコールバック関数を登録します。
Auth::setLogoutCallback() ログアウト時のコールバック関数を登録します。

その他のデータ

Auth::setAuthData() 認証ユーザーの補助情報を追加します。
Auth::getAuthData() 認証ユーザーの補助情報を取得します。
Auth::setAuth() 認証ユーザー名を設定します。ただし、session_start()は、行いません。
Auth::getUsername() 現在の認証セッションのユーザー名を取得
Auth::sessionValidThru() セッションの有効期限を取得

ユーザー管理

Auth::listUsers() ユーザー及び付属情報の一覧を取得します。
Auth::addUser() ユーザーを追加
Auth::removeUser() ユーザーの削除

includeファイルに直接アクセスされたくない時に
そのフォルダの特定の拡張子へのアクセスを禁止する.htaccess

<Files ~ "\.(php|inc)">
    Order allow,deny
    Deny from all
 </Files>

この例の場合、.php と.inc ファイルへのアクセスを禁止している。
またはインクルードするファイルの先頭に以下をたす方法もある。

//外部からのアクセス拒否
if(stristr($_SERVER['PHP_SELF'],basename(__FILE__))){
die("直接アクセスのため処理終了");
}
phpの定数_FILE_を記入してもファイルのフルパスとファイル名が反映されないと悩んでいたら
_FILE_ じゃなくて__FILE__ だった。
見えにくいがアンダーバーは二つ続きである。繋がって一つに見えていた。
単純なミスだ。いかんす。

phpにおいて画像を直接ブラウザに表示させたい場合は

mb_http_output("pass")をつけることによって

ブラウザが画像であると認識してブラウザに画像として表示される。


また

・ Content-Type の値
・ inline の指定
・ Content-Length

の値を設定したほうがよりブラウザが画像と認識して間違ってコード変換される事がなくなる。



例)

mb_http_output("pass");
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=image.jpg");
header("Content-length: " . filesize("/tmp/image.jpg"));
readfile("/tmp/image.jpg");