BANSYSTEMSBLOG

Load of the ○○○○PHP!?

ここ連日パソコン電源入りっぱなしです。
部屋は寒いはずなのですが、それ以上にMacがフル回転。
さすがに固まりそうになってしまったのにでとりあえず再起動しました。
あぶないあぶない。
Windowsも立ち上げてあるのですが、(両方ともノート)
やはりWindowsのCPUの方が熱分散に優れているのかどうか…?
詳しい方教えてください。パンチしてるときに左手の下が熱いので
気になってしまいます。

先方からのデータ待ちですが、まてどまてど返事がきません。
今日はもうだめか…。。
しょうがないから別の仕事しよう。

[テーブル名の取得]
SELECT * FROM pg_class WHERE pg_class.relnamespace = 2200 AND pg_class.reltype <> 0;

※2200の値は全てのPostgreSQLでの共通した値かどうかまでは調べておりません。

[カラム名の取得]
SELECT * FROM pg_attribute WHERE attrelid = pg_class.relfilenode AND attstattarget = 0;

※カラム名が取得できます。
うーん…。どうしましょう。データ早くください。…。待ちくたびれた…。

[konnoy@15jam konnoy]$ ftp 192.168.0.1
Connected to 192.168.0.1.
220 ProFTPD 1.2.10 Server (ProFTPD Default Installation) [192.168.0.1]
500 AUTH not understood
500 AUTH not understood
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:konnoy): konnoy
331 Password required for konnoy.
Password:
230 User konnoy logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

ログイン完了。
get で ダウンロード。
put で アップロード。
以上。Macといえどもunixなので何の問題もありませんね。

localhost:/Users root# ssh -l ユーザ名 IPアドレス
この後以下の文章が表示されるので yes と入力し Enter.
The authenticity of host ‘192.168.1.1 (192.168.1.1 )’ can’t be established.
RSA key fingerprint is aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa.
Are you sure you want to continue connecting (yes/no)? yes
パスワードを聞かれるので入力します。
以上でログインできます。
標準でターミナルが使えるので楽だよね。
MacOSXって、、いいな?。

在庫管理の仕事ですが、大幅な仕様変更があったため、とりあえず途中までで稼動することにしました。入出庫がわかる一覧表の作成ですが、AccessのレポートでExcelのような書式にするにはかなり苦労するのでAccessからExcelを作成してデータを埋めて行こうと思います。
その方が楽。
結局、お客様は「もともと自分たちが使っていたものが一番みやすい」(これ大事ですよね)と思うもので変に手を加えたりするのが嫌だと思います。人間なら誰でもそうですよね。
だからもともとの形をできる限りで再現し、効率化を図るのがベストだと思います。
その辺は逆らってもしょうがないですね。むろんそんなことはしませんが、やはり使う人に服従し仲良くなって自分が作ったものを使ってもらう。そして一番嬉しいことは、
「これ便利だなー」といわれることです。
直接言われると照れてしまってうまく返答できませんが、
「本当ですか、ありがとうございます」くらいですね。
もっと嬉しいのは、自然と耳に入ってきた時です。
それが一番報われる時です。
苦労した甲斐があるってもんです。
その時のために苦労しましょうか。
じゃー、もっと金下さい。
俺は金で動く人間だ!
あれ、、いい話だったのに…。。

ハッシュ変数の詳しい情報は以下のサイトで。
http://perl.misty.ne.jp/06.html
%ONISAN = (
    ’name’ => ‘おにやろう’,
    ’age’ => ‘32’,
    ’blood’ => ‘O’
);
ハッシュ変数の使い方は覚えたんだよね?
要は配列みたいなもんでしょ?
キーも文字列になるので便利ですね。
それとハッシュ結合は便利だね。
PHPでも似たようなことは可能。
VBの配列は数字のみだったっけ?
dim onisan(1 to 3) as string
onisan(1) = ‘くう’
onisan(2) = ‘ねる’
onisan(3) = ‘あそぶ’
Perlがテキスト処理に優れているのはハッシュ変数が使えるとか言う前に
スクリプト言語だからです。そして、正規表現です。
当時、Perlが開発された時はプログラマの方達が驚愕したんだと思います。
すごい言語だと。
今では、PHP、Rubyなどが有名になってきているのでPerlも陰が薄い存在になりつつありますが、
正規表現は健在なので、つい最近も知り合いが4000件レコードを変換しなくていけなくなり、
Perlを使ったとの報告を受けました。
ということでPerlを学からには正規表現を知ってください。
覚えるのではなく、知っておいてください。
覚えようとすると挫折するので、知っておくだけでいいです。
そして、いざ、難問に突き当たったときに、この処理はPerlだったら簡単だとか、いう選択肢ができるので
頭にひきだしを沢山作っておいてくださいね。では。
以下のサイトも勉強になるよ。
http://www.kent-web.com/perl/chap1.html

例 1. fgetcsv() によりCSV ファイルの内容全体を読み 込み、出力します。
$row = 1;
$handle = fopen ("test.csv","r");
while ($data = fgetcsv ($handle, 1000, ",")) {
?? $num = count ($data);
?? print "

$num fields in line $row:
?n”;
?? $row++;
?? for ($c=0; $c < $num; $c++) {
?? ? ? print $data[$c] . "
?n”;
?? }
}
fclose ($handle);
?>

ファイルのアップロード処理。
フォームのMethodはPOST
enctype=”multipart/form-data”を忘れずに。
例として、ファイル名はuserfiles
PHP部分
< ?
if (isset($HTTP_POST_FILES['userfiles'])){
if (!is_uploaded_file($HTTP_POST_FILES['userfiles']['tmp_name'])) {
echo "不正なファイルです。";
exit;
}
echo $_FILES['userfiles']['name'];
if (!move_uploaded_file ( $_FILES['userfiles']['tmp_name'], "./".$_FILES['userfiles']['name']) ){
echo "はエラーです";
} else {
echo "をコピーしました。";
}
}
?>
注)
$_FILES(グローバル変数)4.1.0以降
またphp.iniの設定 file_uploadsがonになっていないと動作しません。

Read the rest of this entry »

ログイン処理やアクセス管理(特にアダルト関連)にセッションを使用するとの事なので復習。
次段階のデータ作成待ちで先に進めないため別の構築部分のためのテストなど。
いつでも読めるように文章を引用。
/*
セッションとセキュリティ
**/
外部リンク: Session fixation
セッションモジュールは、セッションに保存した情報を見ることができる のがそのセッションを作成したユーザーだけであることを保証することが できません。セッションの完全性を積極的に守るには、そのセッションに 紐づく値に応じた追加措置が必要です。
セッションに運ばれるデータの重要性を評価し、必要な保護策を講じて 下さい。これには通常、お金があかり、ユーザの利便性を損なうことに なります。例えば、簡単な社会工学的な策略からユーザを守るためには、 session.use_only_cookiesを有効にして下さい。 この場合、ユーザ側でクッキーが常に有効となっている必要があり ます。そうでない場合、セッションは動作しません。
存在するセッションIDが第三者に洩れる手順は何種類かあります。 洩れたセッションIDにより、第三者が特定のIDに関連する全てのリソー スにアクセスできるようになります。まず、セッションIDがURLにより伝 送される場合です。外部サイトにリンクを張っている場合、外部サイト のreferrerログにセッションIDを含むURLが保存される可能性があります。 第二に、よりアクティブな攻撃者がネットワークのトラフィックをモニ ターしている可能性があります。セッションIDが暗号化されていない場 合、セッションIDはネットワーク上を平文テキストで伝送されます。 解決策はサーバ上にSSLを実装し、ユーザにSSLを必ず使用させることです。
/* **/
ユーザIDとセッションIDをDBに保存して認証するみたいなので、session_set_save_handlerを使って処理するといいかなと思った。しかし、それにしても眠い…。こりゃ限界…。

IEからソースの表示をする時にEUC-JPなどを使ってると
文字化けして表示されてるので非常に厄介。
だから別のエディタで起動したいね。
1>ファイル名を指定して実行から”regedit”
2>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
3>メニューから「編集」→「新規」→「キー」をクリック「新しいキー#1」を「View Source Editor」に変更
4>「View Source Editor」キーを選択した状態で、メニューから「編集」→「新規」→「キー」をクリック「新しいキー#1」を「View Source Editor」に変更
5>右の「(既定)」をダブルクリックして「文字列の編集」ダイアログボックスを開き、「値のデータ」に、
フルパスで使用プログラムを記述C:\Program files\mapleexe\maple.exe
文字コードに対応してるエディタであれば文字化けしないよ。