カテゴリー別アーカイブ: PHP

さくらインターネット

の、レンタルサーバであれこれつくって動かしておけという業務命令。
はいはい。
えええええええええ
PDOつかえない。
mysqliさえない。
あたしの使い方が悪いんじゃないよ。もともとダメなの。
このご時世、mysql_connectってどこの田舎の話だ。
PHPのバージョンだけは5系って笑うところですよね……。
なんかWikiとかみると、自分でインストールしなおすとかハードコアな話がズラズラ。
PEARも古いとか。意味分かんないよ?
えっと、使いやすいように保守、設定しておきますねという概念はないのか。
もともとphp対応が恐ろしく遅かったサーバという記憶は確かにあるんだけど、ここまでひどいのか。
分かる人は勝手にやってという雰囲気だけは漂わせているけれど、こりゃ単なる怠慢だと思うよ。
社長には鯖変えさせてくれと言おう。
xreaたんだいすきー

php5さわりはじめました

Xreaに対応サーバ上がってたので移設したんですけど。
なにからなにまで矢印(->)の嵐だわー
ドキュメントも揃ってなかったりでカンでやりくり中。
レスポンス分割攻撃への対応も5.1.2で完了とのことで、すばらしい。まだ試してないけど。
レスポンス分割攻撃にかんしてはCRLF二個使うってのは知ってたけど、Content-Length: 0も同じ効果を生むんだとか。
やばいよやばいよ不勉強だった!
#こっちも対応済とのこと
mysqliクラスでプリペアードステートメントも使えるようになったし、おっかなびっくり書いてる他人のソースを見ることも少なくなるのかも。
とはいえ、またいろいろ出てくるんだろうなあ。
セキュリティ意識は高く保ちたいものでゴザイマス
【PHPウォッチ】第23回 セキュリティ上の問題などを修正したPHP 5.1.2,PHP 4.4.2リリース
http://itpro.nikkeibp.co.jp/article/COLUMN/20060117/227354/?ST=itpro_print

もはび?

お仕事でMojaviをつかうことに。
あーれーうごかないよーねーおねーさんちのもはびがー
出勤6分前にやっとハローワールドみたいなのが動作。
おおこういうつくりか!
ってこんなので仕事になるのか!
#なんかどうもSymfonyとかいうのが人気?
 ほっぽらかしてないで勉強再開なり。

XOOPSに関する、よくありそうな幻想?

お仕事ですこし、Xoopsをさわりました。
大規模サイトがかんたんに作れちゃうよみたいな触れ込みで、わりとポピュラーなスクリプトなのです。書籍もいろいろ出ていて、頼りにする人も多いみたい。
えーそんなのいじるのー大変そー
うん。
めちゃくちゃ大変でした。
コアファイルはほぼ手を付けずにすませましたが、モジュールいくつかを新規に作って、従来あるモジュールをいくつかカスタマイズ。
……だったのですけど、手を付ける前に思っていたのとはまったく違うベクトルでの苦労を強いられたのでした。
コード規約とかポリシーとか、ないのかな。
好き放題、とりあえず動きますし的な作り。
それぞれのモジュール(どころか、わりと中心ファイルにいたるまで)書き口がてんでばらばら。あちこちでぐろーばるぐろーばるぐろーばる。循環参照かと思うような多重呼び出しの果てにあるちんまい関数。
誰かがひどい書き方をしたソースの一部を流用して作られた、悪循環の申し子みたいなスクリプトの山。
ナニコレw
お仕事で一緒だった人々は口を揃えてこういいましたとさ。
「お客さんの要望で使うことになったけど、これスクラッチのほうがよっぽどいいね・・・」
よくあるよくある。
ソースの品質をちゃんと分かってる人が、自分で手を入れることを前提で使うものなのね、きっと。
品質はともあれ、あの分量のコードを(作ったのは一人ではないけど)書いたこと自体は偉いと思います。
ただ、個人的には、必要があっても使おうとは思わなくなりました。
奥さん、これをレンタルサーバとかで「かんたんに使えます!」なんて宣伝してる会社がたくさんあるのよ。うわぁ。
公式のBBSみてみれば、結局個々人が「ハック」とか称して手を入れてる。しちじゅうに。
バージョンが上がったら差分とって毎度直すの?
そういうもんだよっていうならそうなんだろうけど。
見かけ上かんたんに始められるだけで、よくわからんで使うにはあまりにも危険だよ。
とかいいつつNucleus半端な状態で使ってたりするあたくしなのでした。
だって暇が。

LDAP

phpでLDAP使う人の情報ってあんまり出てこない。
Java屋さんとかは割と使ってるみたいだ。うにっくすやさんとか。
今お仕事でLDAPの理不尽さ(というか感覚的なわかりにくさ)にいらいらしながらコード書いてるわけですが、これを機にちゃんと勉強しておこうと思います。
知人でPHP触る人は「あー便利そうだけどねーなかなかねー」なんてことを言っている。
うー。
せっかくの機会だしね。。

大まじめにLinuxにとりくむ

(自分用の覚書です)
お勉強のせいで忙しいのかお仕事のせいなのか、はたまた大航海時代オンラインで忙しいのかよく判らないデイズです。
醤油は?
ダイズ?
ぶぶー
まるだいずー
あたしの脳のレベルはこういうラインにまで後退しています。知恵熱ああん。
自宅の鯖のHTMLがやっと見えた!
なんのことはない、linux側でポートを開けていないだけの話だった。なるほどなるほど。
そうだよねえ外からターミナルだけ使えてたんだもんねえ。
おそらく一番最初にうまく行ったときは、逆に全てががら空きの設定だったのでせう。危なひ。くわばら。
httpとsshとftpだけ許可。うん。
つぎはー?
1:PHPの設定見直し。なんかデフォルトの状態はひどい。使う部品が–withoutとかかいてあるよううう
オプション指定しなおしてコンパイルするとかいうのがいるらしい。
2:MySQLもいつの間にかちゃんと動いている(←これはこれで問題だと思うんだが)ので、こっちもちゃんとしてあげないと。
3:今回のキモ、LDAPのセットアップ。できるのかほんとに。

続きを読む

はまる

まえに書いていた、
「いまネトラジ放送中だよ」表示のツール書いているわけです。
動かないわけです。単体だと動くんだけど、
「どうせならNucleusのプラグインにしちゃうといいじゃん(゚∇゚)」
この思いつきがまずかった。
なんかテスト用にいれたプラグインも動かないしネー
つうわけでBlogの画面の一部に「DISALLOWED」とかでていても、気にしないで下さい。
しかしDISALLOWEDて。インストールしたよ!他のは動いてるのにどういうこっちゃ。
くだらないミスなんだろうけど見えてない。
これおえたらJavaScriptからこういうの呼べるのつくるうう
でもやりかたわかんないいい
大商戦のトコのひとのとか、JavaScriptでやってるじゃんね鯖側では別のが動いているわけだけど。
アレやり方覚えたらすごく便利なんだけどなあ。
でも今聞くと教えてくん確定。これはまずい。
さくさく勉強中。
・・・まずは人並みの質問が出来るように。
追記:
できねえできねえとおもってたら
できてたーーーーーーーーーーーーーー
放送中はネトラジの案内のバナーが切り替わって、クリックすると聞けるようになるなり!

すこし判明

吠えています。
うー。
わん。
あいも変わらず某L(D)ivedoorさんとこのネトラジ番組情報を引いてきてはなんちゃらって仕掛けをいじっているのですけど、やり方によってうまく動いてくれなかったり、酷いのになると動いてくれていたのにあるときは動いてくれなくなったりという貞子な状況に恐れおののく日々が続いておりました。ただでさえよく判らずにエイヤッでやってるもんだからパニックです。
まだテストプログラムなんですけど。
で、やっと「あ、これかも」というアタリが判明。したとおもう。
XMLというファイルを配信しているのを見つけたので、勉強がてらこれでいこうとしていたんですけど、
どうもXMLの書式が不正であるときがあるようだ
との結論に。
XMLで不正な書式ってアンタw
(書式というか、正確にはそのまま使っちゃだめな文字が入ってるような感じなんだとおもう)
で、はたと思いつく。
パーサとか便利そうだけどさ、そういうよくわかんないの使わなきゃいいんじゃん!
すごく後ろ向きな閃きキタワーーーーーーー
んでこの一行を書いてみる。
mb_split(“^<|<\/|>“, $tmp);
解決してやんの(-_-;
わーいわーい進むぞーw
すごく大事な何かを学習しないまま進んでる気もします。
だってパーサが怒るんだもん。

きづいたら

一枚(1File)1000行とか普通に超えてる状態のソースがあちこちに。
そんなに書くやつは頭おかしいとか思ってたんだけど、慣れなのね。
1000行でもたんない。
コメントも含む上にコメントすごい多いんだけど。
備忘の意味も含めてダウンローダーのソース。
————–
/**
* Downloader
**/
//下準備
if(!$_GET[‘docid’]){
exit();
} else {
$docid = (int)$_GET[‘docid’];
unset($_GET[‘docid’]);
}
$file = New hoge($db);
$file->pullFile($docid);
//$file->file 中身
//HTTP Header send * S T A R T *
header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
header(“Last-Modified: ” . gmdate(“D, d M Y H:i:s”) . ” GMT”);
header(“Content-Type: application/octet-stream”);
//File名を別途格納している場合の処理(に限る。BLOBとかで。
if(ereg(“Macintosh” , $_SERVER[“HTTP_USER_AGENT”])){
header(“Content-disposition: inline”);
} elseif(ereg(“Opera” , $_SERVER[“HTTP_USER_AGENT”])){
header(“Content-disposition: inline; filename=”.
mb_convert_encoding( $file->file[‘filename’],”SJIS”,”EUC-JP”));
} elseif(ereg(“MSIE” , $_SERVER[“HTTP_USER_AGENT”])){
header(“Content-Disposition: attachment; filename=” .
mb_convert_encoding($file->file[‘filename’],”SJIS”,”EUC-JP”));
} else {
header(“Content-disposition: inline; filename*=ISO-2022-JP”” .
urlencode(mb_convert_encoding($file->file[‘filename’],”ISO-2022-JP”,”EUC-JP”)));
}
header(“Content-Length: “.$file->file[‘cont_length’]); //デコード済みのデータ本体
header(“Content-Transfer-Encoding: binary”);
print($file->fileinfo[‘filedata’]); //ファイルの中身吐き出し