トップページ⇒php
1001コメント312KB

【PHP】下らねぇ質問はここに書き込みやがれpart18

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2006/03/15(水) 19:18:21ID:yiOrS10N
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/

過去スレは>>2-3あたり
0809nobodyさん2006/04/03(月) 23:55:43ID:???
自己解決した!
32文字ぴったりで一致する文字列が「$str に含まれていると」TRUEなのか!
畜生!
08108052006/04/04(火) 00:02:00ID:???
>>807
ご返答ありがとうございます。

申し訳ありません。重要な部分を抜かしていました。
以下のようにすれば希望の動作になるかと思われます。
(switchで理論演算ができるとした場合です。)
switch ($err){
case &1: echo "1のときのエラーメッセージ";
case &2: echo "2のときのエラーメッセージ";
・・・}
というように、break;を入れずにコーディングすればすべてのcaseと比較されますよね。
説明が足らず申し訳ありませんでした。

$errにはエラーによって既に1,2,4,8の和が入ってるので、$errを配列にしてしまうとまずくないですか?
foreach(array(1,2,4,8) as $b) if($err & $b) echo $message[$b];
$message[n] n=1,2,4,8 として、それぞれにエラーメッセージを入れればできますね。
ありがとうございます。
0811nobodyさん2006/04/04(火) 00:03:43ID:???
どう見ても32文字以上の場合です。
ほんとうにありがとうございました。
0812nobodyさん2006/04/04(火) 00:05:43ID:???
>>810
> 以下のようにすれば希望の動作になるかと思われます。
ならんでしょ。&1に該当した時点で以下全部実行されちゃうもの。
例えば1と8に該当するメッセージを出したい場合にswitchでどう処理すんの。
> すべてのcaseと比較されますよね。
最初に該当する場所が見つかった時点で以下は比較されません。
08138072006/04/04(火) 00:08:19ID:???
>>810
あー。スマソ
err1とかのdefineじゃ一括処理はしにくいんで配列化したんだが
変数名がバッティングしてるとこまで気にしてなかった。
0814nobodyさん2006/04/04(火) 01:07:13ID:???
うpしたファイルをrenameで任意の2バイトを含むファイル名を付けるのって無理ですかね?
Invalid argumentって出ちゃう
08158052006/04/04(火) 01:08:10ID:???
>>812
そうなのですか。それは知りませんでした。
一度真になった時点で、それ以下は真偽にかかわらず、
比較されずにすべて実行されてしまうのですね。
不思議な条件分岐ですね。浅学でした。ご指摘ありがとうございます。

>>813
私もややこしい文を書いてしまったので勘違いを招いてしまったのだと思います。
度々申し訳ありません。

$errに代入される数字は、1を除き2の累乗であることを思い出し考えつきました。
for($i=1; $i<=8; $i*=2) if($err & $i) echo $message[$i];
一般にはどのようなアルゴリズムでチェックをしているのでしょうか。
0816nobodyさん2006/04/04(火) 04:13:56ID:???
外部にfunctionばっか書いたphpファイルがあって、
それを使いたいファイルの最初でinclude使って呼び出してるんですけど。
一度呼び出したら全てのfunctionを読み込んじゃうのですか?
それともfunction ()と書いた時点で該当functionのみが呼び出されるのですか?
0817nobodyさん2006/04/04(火) 04:30:47ID:???
意味分かんないけど、読み込んだ時点で実行はされないよ。
日本語でぽk
0818nobodyさん2006/04/04(火) 04:33:05ID:???
>>816
>一度呼び出したら全てのfunctionを読み込んじゃうのですか?
「読み込んじゃう 」の意味が判らん。
同じファイルに複数のfunctionを記述してるなら、
そのファイルをincludeしたらメモリには「読み込んじゃう」よ。
ifで動的にincludeは、どうだったか忘れた。
0819nobodyさん2006/04/04(火) 07:35:49ID:???
>>815
お前が最初に書いた方法が一般的な方法だと思う
俺には無駄な方法とは思えないしこんな処理を簡略化しようとも思わないな
0820nobodyさん2006/04/04(火) 10:04:22ID:???
>>803
それは$i=0からはじめて$iが15の時だけ実行、だよ。
0821nobodyさん2006/04/04(火) 10:07:34ID:???
>>809
どうしても正規表現でやりたいなら/^[0-9a-zA-Z]{32}$/だな。
strlenつかったら?
08228052006/04/04(火) 10:11:09ID:???
>>819
そうですか。
あの方法はエラーが4パターンの場合ですが、
エラーのパターンがいくつもあった場合を考慮すれば、
すべてifですととても長くなってしまうと思いまして。

似通った部分をがあるとどうしても一つにまとめようとするタチなので・・・
たいして処理速度が変わるわけでもないですしね。
貴重なご意見ありがとうございました。
0823nobodyさん2006/04/04(火) 10:58:46ID:???
>>822
処理速度云々より、エラー発生時のメッセージ出力にバグが混入すると
最悪ケース時の保守効率が大きく落ちてしまって、致命傷になる場合がある。
単純なforeachくらいまでは許容できるが、数値演算のような手法は入れないのが吉。
0824nobodyさん2006/04/04(火) 11:01:06ID:???
>>822
処理速度で言ったらまとめたときの方がむしろ遅いだろう…
0825nobodyさん2006/04/04(火) 11:12:23ID:???
エラーの値を1、2、4、8の加算で表現しようとも思わないな。
元々そういう結果を返す関数があってそれを処理したいというならともかく。

$errを配列にしてエラーコードを順に格納するか、配列にしたくない場合は
「,」や「:」などの文字で連結するなどして、エラー内容を示す文字をセットして
それをループ→連想配列にセットしたメッセージを表示、とかにする。
その方が拡張性やメンテ効率が高くて扱いやすい。
0826nobodyさん2006/04/04(火) 11:22:09ID:???
PHP5.1.0の環境(mb有効)で「てすと」をstrlenしたら
3て返ってきたんだけどいつから6じゃなくなったんですか?
0827nobodyさん2006/04/04(火) 11:27:01ID:???
>>826
そりゃmbstring.func_overloadに2がセットされて
strlenでmb_strlenが呼び出されてないか?
0828nobodyさん2006/04/04(火) 13:27:51ID:???
突然ですが mysql_free_result() や mysql_close() って必要ですか?

今まで.phpの最後で常に mysql_free_result(); mysql_close(); exit; ってやってたのですが、
途中で mysql_close してその後も処理が長いのなら有効だけど、
最後におまじない感覚で付ける程度なら別にいらないですかね?
08298052006/04/04(火) 13:48:50ID:???
>>823
安全性を考慮すれば確かにifが一番ですね。
ややこしくて見難くなるという欠点もありますし。

>>824
よく考えると余分な処理が入るので確かに遅くなりますね・・・
短くするということに拘りすぎていました。

>>825
特にプログラムに制約はありません。
ただやってみたいだけだというか、論理積で判別するということに感動してしまったので・・・

効率の良いコーディングというのはただコードを短くするだけではないのですね。
後々のメンテナンスのことやエラーを最小限にとどめること。これが肝心ですね。
アドバイスありがとうございます。
0830nobodyさん2006/04/04(火) 16:19:31ID:???
小数点以下4桁を取得したいのですがうまくいきません

$a = 0.654338473287589
$a = sscanf($a,"%0.4f");

「Bad scan conversion character "."・・・」というエラーが出てしまいます
printfだと通るのでフォーマット部分は台状豚と思うのですが・・・
0831nobodyさん2006/04/04(火) 16:42:38ID:???
>>828
スクリプトの一番最後に記述するなら不要。
(PHPに自動で解放させた方が、見た目の処理時間は若干短くなる)
でも自分は気持ち悪いからcloseはしてる。freeは必要な時だけ(他の変数の場合も)
0832nobodyさん2006/04/04(火) 16:55:23ID:???
>>830
$a = 0.654338473287589;
echo intval($a * 10000)/10000 - intval($a);
08338322006/04/04(火) 16:57:03ID:???
わりい、後の - intval($a)は余計だ。
小数点以下だけの場合と勘違いした。

$a = 0.654338473287589;
echo intval($a * 10000)/10000;
0834nobodyさん2006/04/04(火) 17:04:55ID:???
>>830
sprintf(,"%0.4f", $a);
じゃいかんの
08358342006/04/04(火) 17:06:01ID:???
コピペで余計なコンマが入った
0836nobodyさん2006/04/04(火) 17:18:57ID:???
PHPってC言語みたいだね。
0837nobodyさん2006/04/04(火) 17:20:46ID:???
( ´д)ヒソ(´д`)ヒソ(д` )
08388302006/04/04(火) 17:29:36ID:???
>>832>>834
ありがとうございます

すみませんちょっと言葉足らずだったようです○凹
具体的には小数点以下二桁までの%表示が目的でした。(0.65438・・・であれば65.43%というように)
ifやらsplitやら駆使すればいけるとは思うんですが、勉強中の身なのでスマートな方法を模索してました・・・
08398322006/04/04(火) 17:45:30ID:???
>>838
んじゃ、これで
echo round($a * 100,2);
0840nobodyさん2006/04/04(火) 17:56:04ID:???
>>832
おおおおおお
ぜんぜん関数しらな過ぎですねおれ。

精進します!ありがとうございました
0841nobodyさん2006/04/04(火) 18:54:02ID:???
>>831
そうなんですよ。気持ち悪いんですよね

mysql_close();
exit;

と決まり文句のようにスクリプトの最後に付けてましたが、
実行速度面で差が出るならなくしたほうがスマートですね。
0842nobodyさん2006/04/04(火) 19:07:04ID:???
>>841
差が出ると言ったのは、その一行分をパースする時間の差のことだろ。
あくまで“差があるか無いかで言えば”ベースの話なんだから、実際には差なんて無いよ。
それより、プログラムを書く者として、自分で獲得したリソースを自分で解放するクセは付けた方がいいんじゃないかと思うよ。
それはすなわち、今どんなリソースが開かれてるかを意識するってことになると思う。
でないと、肝心なときにリソースリーク出しちゃうよ。
0843nobodyさん2006/04/04(火) 19:07:07ID:mQslQj05
PHP Version 4.3.11
正規表現の検索文字列が*だったりすると
エラーが出てしまいます。

mb_eregi(): mbregex compile err: invalid regular expression; there's no previous pattern, to which '*' would define cardinality

エスケープするのに、エラーが出る文字をいちいち探すのが大変なので
どこかに一覧とか有りますでしょうか。
0844nobodyさん2006/04/04(火) 19:16:29ID:???
eclipse とかIDE使ってれば閉じるの忘れたり少しは防げるんじゃ
0845nobodyさん2006/04/04(火) 19:46:43ID:???
>>842
いや、差があると言ったのは「見た目」の話。
出力を先にやってリソースの解放を後回しにできるので
例えばHTTPの出力を受け取る側から見ると若干レスポンスがよい。
(出力バッファの噛ませ方にもよるので一概には言えないけど)

>それはすなわち、今どんなリソースが開かれてるかを
>意識するってことになると思う。
だね。
0846nobodyさん2006/04/04(火) 20:13:47ID:???
>>827
7が設定されてたので戻しました。thx
0847nobodyさん2006/04/04(火) 22:35:01ID:ERhiveKK
なんでここの人はこんなにも国内PHPプログラマをバカにしているのでしょう?
ttp://project-p.jp/halt/anubis/blog_show/549
この人はそんなにすごいんか?
0848nobodyさん2006/04/04(火) 22:44:13ID:???
>>847
まじきもいなw
0849nobodyさん2006/04/04(火) 22:52:43ID:???
>>847
streemwrapper で検索しても何も出てこないと思ったらtypo
0850nobodyさん2006/04/05(水) 00:37:57ID:???
国内に限らずphp使ってる香具師はスキル低い香具師が多いよ。
そういうスキル低くても使えるように設計された言語ってのもあるけどな。
0851nobodyさん2006/04/05(水) 00:49:25ID:???
>>847
別にそんなにカチンとくるようなことは書いてなかったけど?
コミュニティの規模で言うと英語>日本語は当たり前だから、
その中のアホ(褒め言葉)な香具師の数も英語>日本語なだけ。
0852nobodyさん2006/04/05(水) 01:13:49ID:???
>>843
> どこかに一覧とか有りますでしょうか。
PHP公式サイトのオンラインマニュアル
0853nobodyさん2006/04/05(水) 06:17:09ID:???
>>850
そりゃあ習得コストが低い言語なんだから、裾野も広いわな
当然といえば当然
0854nobodyさん2006/04/05(水) 08:27:45ID:???
print $_SERVER['HTTP_USER_AGENT'];

たった一行のこのスクリプトに脆弱性はありますか?
あれば具体的にどういった方法による攻撃が可能か教
えてください。(単なる知的探究心)
0855nobodyさん2006/04/05(水) 09:00:46ID:NCTGlvjg
>>854
可能性があるとすれば、USER_AGENT にとてつもなく長い文字列が渡された時とか、
あるいは通常は含まれない文字が含まれている場合(\0 とか)に何か起こるかもしれない。
もしバッファオーバーフローによる脆弱性があるならば、USER_AGENT に何らかのコードを埋め込むことにより、
PHP の実行権限の範囲で任意のコマンドなどを実行できる可能性がある。

けど、そういうのはスクリプト自体の脆弱性とは言わないと思うよ。
スクリプトに脆弱性があるってのは、たとえば $_SERVER['HTTP_USER_AGENT'] をそのままSQLに埋め込んで
実行しちゃうようなコードについて言うんだと思う。
その点から言えば、そのスクリプトには脆弱性は無さそうだ、と言えるんじゃないかな。
08568542006/04/05(水) 09:08:56ID:???
>>855
なるほど。たった一行のスクリプトにもそんな問題点(厳密には言語依存の)があるん
ですね。非常に興味深いです。
SQLを発行したりする動作は、チェックを怠れば簡単に脆弱性を生んでしまうのであえ
て記述しなかったのですが、print命令一個でも弱点をつかれると危険かもしれません
ね。
ご回答ありがとうございました。

0857nobodyさん2006/04/05(水) 09:25:16ID:???
簡単に弄れるUAに対して何も警戒しない方がおかしい。
08588562006/04/05(水) 09:29:06ID:???
>>857
ごもっともデス。
0859nobodyさん2006/04/05(水) 09:36:09ID:???
>>845
でもサーバの負荷が高まってる場合にもそうだとはいえない。
マメに開放できる部分は開放したほうが、アクセス集中しているときの
処理は裁けるだろ。
08608552006/04/05(水) 09:37:29ID:???
蛇足かもしれないけどもう一点。基本中の基本を忘れてた。
もし >>854 の出力がブラウザに対してのものならば、USER_AGENT にタグを埋め込むことにより悪用できるね。
その場合には、そのスクリプトは脆弱だと言えるのかな。
0861nobodyさん2006/04/05(水) 09:42:38ID:???
>>854
>>855
>>856

シンプルな例だと、USER_AGENTがそのサイトのID、パスワードを入力させる
FORMのHTMLで、POSTの送信先が攻撃者の影響下のサーバだっら、ログイン情
報筒抜けになる。この場合だとID盗みたい相手のUSER_AGENT変えなきゃならんが、
容易に変えられるブラウザもあるし、変えた状態でそのブラウザ再配布することだっ
てできる。

もちろんこれは単純な例で、Javascriptとか組み合わせてもっと複雑なこと仕掛ける
事だって可能。
0862nobodyさん2006/04/05(水) 10:14:40ID:???
>>860
その場合、大抵被害を受けるのはクライアント側=UA偽装者
だね。
串系だとまた違うと思うけど。
0863nobodyさん2006/04/05(水) 10:49:37ID:???
>>862
UAが表示される掲示板とかだったらどうよ?
0864nobodyさん2006/04/05(水) 11:07:50ID:???
>>863
それは、UAを保存するってことであって、
>>854の単純なprintの事例には当てはまらない
0865nobodyさん2006/04/05(水) 18:39:28ID:???
メールで受信したものをmysqlに取り込みたいんだけど
どんな方法があるでっしゃろ?
0866nobodyさん2006/04/05(水) 18:47:45ID:???
1レコード1行ずつでも、1メールずつでも好きに入れればいいじゃん。
0867nobodyさん2006/04/05(水) 20:10:33ID:NCTGlvjg
>>865
スクリプトでメールを受信する方法について聞いてるの?
だったら、POP を話すスクリプトを書くか、.forward や .qmail 等で受信メールをスクリプトに引き渡すようにするといいんじゃないかな。
0868nobodyさん2006/04/05(水) 20:50:49ID:???
メールを取得するなら imap_open だろ
0869nobodyさん2006/04/05(水) 21:24:22ID:???
Amazonの特定のページに一定時間ごとにcron起動のPHPスクリプトから
アクセスしてページ内容を取得し、商品の値段とかランキング順位とかを自動で得たいんですけど、
ページ内容の取得ってどうやればいいのでしょうか・・・。
(これってつまり、検索エンジンとかのクローラーを作るのと同じ原理??)

ど素人過ぎて質問がおかしいかもしれませんが、どなたかヒントをください。
0870nobodyさん2006/04/05(水) 21:32:11ID:???
>>869
そのうちリモホ特定で灰汁禁になるから意味無いよ。
0871nobodyさん2006/04/05(水) 21:35:12ID:???
>>869
ひとまずこのスレを"ページ"で検索ぐらいはしたんだろうな?
0872nobodyさん2006/04/05(水) 21:52:16ID:???
>>854-855

おい、それ以前に、htmlspecialcharsを通さないとXSSの脆弱性があるだろーが。

08738722006/04/05(水) 21:53:56ID:???
って既出だったね
すまそ
0874nobodyさん2006/04/05(水) 22:36:48ID:???
>>869
AWS
0875nobodyさん2006/04/06(木) 00:40:20ID:???
>>855
>$_SERVER['HTTP_USER_AGENT'] をそのままSQLに
普通にやってるけどなぁ。
リスクとコスト、天秤にかけて、それをしなければならないケースなんてそんなにないんじゃね?
つか、漏れはそんなシビアな仕事は一生無縁だし、やりたいとも思わんな。
0876nobodyさん2006/04/06(木) 00:45:01ID:???
>>875
いや、いくらなんでもmysql_escape_string()くらいはかけてSQLに入れるでしょ。常識的に。
0877nobodyさん2006/04/06(木) 00:54:14ID:???
>>875
天秤にかけるほど高いコストじゃないじゃん。
0878nobodyさん2006/04/06(木) 02:21:51ID:???
>>871
はい、>>473からの流れを参考にやってみましたが、
アマゾンのページからは情報を取得できません。
ちなみに、他のサイトからは取得できたので、アマゾン側で何かしらクローラーみたいなのを
弾くようになっているのでしょうか??

AWSは、たかがこれだけのために登録するのも面倒で・・・
(ある一つの商品を自動で一週間くらいチェックしたいだけなんです)
0879nobodyさん2006/04/06(木) 02:26:52ID:???
>>875
SQLインジェクションって知ってる?
0880nobodyさん2006/04/06(木) 02:45:52ID:???
http://hogehoge.com/hoge.php?a=1234
これを
http://hogehoge.com/hoge/a/1234/
↑こんな感じにしたサイトをよく見ますが、
このやり方に名称があれば教えてください。
または、やり方を教えてください。
0881nobodyさん2006/04/06(木) 03:22:57ID:???
>>878
ユーザエージェントで弾いてんじゃね
と勝手な予想

php5 なら file または file_get_contents でUserAgentをいじれるみたいだけどね
0882nobodyさん2006/04/06(木) 03:37:09ID:???
>>878
特にしてない。勿論通常のナビゲーションでは色々やってるけど
<?php var_dump(file('http://www.amazon.co.jp/exec/obidos/ASIN/456966427X')); ?>

教科書的な書籍とかで、もう少し基礎力つけてチャレンジしたら?
0883nobodyさん2006/04/06(木) 04:07:45ID:???
特定のページとやらが検索結果だと出来るかどうか分かんないな
0884nobodyさん2006/04/06(木) 04:55:30ID:tcJKbNjs
<input name="int1" type="checkbox" <?php print $i; ?> >
と記述すると一番後ろのHTMLの「>」がHTML上で文字として表示されてしまいます。
何故でしょうか?どのように記述すれば解決しますか?
0885nobodyさん2006/04/06(木) 05:01:28ID:???
<input name="int1" type="checkbox"><?php print $i; ?>
0886nobodyさん2006/04/06(木) 05:06:46ID:???
>>885さんどうもありがとうございました!
0887nobodyさん2006/04/06(木) 05:47:16ID:???
>>882
あれ・・・ホントだ・・・
「file_get_contents」にこだわってて、なんで出来ないんだろ?って
思ってたら、「file」だとページの内容を取得できますね・・・。

でもアマゾン以外のサイトでは「file_get_contents」でも内容を取得できたのに、
なぜアマゾンだけは出来なかったんだろう? そしてなぜ「file」なら成功したんだろう??
大垣リファレンス本をいくら読んでもど素人な俺にはサッパリわかりません。
0888nobodyさん2006/04/06(木) 05:50:24ID:???
正規表現について質問です。

13<>ほげほげ<>ほげほげ<>
12<>ほげほげ<>ほげほげ<>
11<>ほげほげ<>ほげほげ<>

というような文字列の中から

12<>ほげほげ<>ほげほげ<>

だけ取り出したいとします。その場合

12<>(.)+

で取得できるのですが

012<>ほげほげ<>ほげほげ<>
112<>ほげほげ<>ほげほげ<>

このような文字列も取得してしまいます。
上記なような文字列が含まれる中

12<>ほげほげ<>ほげほげ<>

だけ取り出すにはどのように記述すれば良いのでしょうか。
08898882006/04/06(木) 05:53:57ID:???
申し訳ありません。先頭に^つけたらおkでした。お騒がせしました。
0890nobodyさん2006/04/06(木) 05:55:52ID:???
>>887
勉強がてらやろうと思ったら、思ったより時間がかかった・・
まぁ、趣味でやったので必要なくても構わないけどね・・
もっとこうしたらっていうのは腐るほどあると思うので前向きなアドバイスは頂けたら嬉しいです。
-------------------------------------------------
header("Content-Type: text/html;charset=Shift_JIS");

mb_detect_order(SJIS);

print "encode:" . mb_detect_encoding("新渡戸 稲造") . "<br>";
print "新渡戸 稲造" . "<br>";

$search = "新渡戸 稲造";
$search = mb_convert_encoding($search,"UTF-8","SJIS");
$search = urlencode($search);

print "エンコード後文字列:<br>" . $search . '<br><br>';

$search = urlencode($search);
$url = 'http://www.amazon.co.jp/exec/obidos/search-handle-url/index=books-jp&field-author=' . $search . '/';
print "アクセスするURL:<br>" . $url . "<br><br>";

$content = file_get_contents($url);
var_dump($content);
-------------------------------------------------
0891nobodyさん2006/04/06(木) 07:35:01ID:???
>>880
mod_rewrite
か
content negotiation(MultiViews) + path info
0892nobodyさん2006/04/06(木) 08:24:49ID:???
>>887
<?php var_dump(file_get_contents('http://www.amazon.co.jp/exec/obidos/ASIN/456966427X')); ?>
別に問題なく取れる。まあ中でやってること一緒だし。
上手くいかないスクリプトとURL(上手くいかない別のページので良い)晒してみ。
0893nobodyさん2006/04/06(木) 08:33:33ID:???
>>890
瑣末だがmb_detect_order('SJIS');
単に抜けただけだと思うけど。
0894nobodyさん2006/04/06(木) 09:12:14ID:tcJKbNjs
1桁数値(1)を2桁文字列(01)に変換して代入したいのですが
sprintfのようにデータを成形して
文字列変数に代入できる関数はありませんか?

0895nobodyさん2006/04/06(木) 09:22:03ID:???
>>894
...sprintf()?
0896nobodyさん2006/04/06(木) 09:25:34ID:???
>>894
PHPにもsprintfあるよ
0897nobodyさん2006/04/06(木) 09:49:06ID:???
>>875
DB破壊されたりダンプ取られておわりでんがな。
08988942006/04/06(木) 10:05:03ID:???
できました!どうもありがとうございました。
0899nobodyさん2006/04/06(木) 10:22:27ID:n7Il5xOB
if (ereg("hoge", $var)) とするのと if (preg_match("hoge", $var)) とするのでは
どちらが良いのでしょうか?
0900nobodyさん2006/04/06(木) 10:22:57ID:???
>>893
その通り!!

orz
0901nobodyさん2006/04/06(木) 10:32:01ID:iRMo+Utm
>>899
preg_ の方がパフォーマンスがいいというのがどっかに書いてあったと思った
0902nobodyさん2006/04/06(木) 10:40:08ID:???
>>901
それマニュアルじゃん。
0903nobodyさん2006/04/06(木) 11:05:23ID:???
>>899
サンプルで正規表現使ってないのかもしれないが
if (strpos( $var, "hoge") !== false)のほうがはるかに速いと思われる
0904nobodyさん2006/04/06(木) 11:57:37ID:???
>>879
実際のとこSQLインジェクションを実際に食らうケースが
ほとんど無い&狙ってやるような外基地が来たら諦めた方が早い
ってのがリスクとコストを天秤に、の話だとは思う。

だけどそれ以前の問題として、USER_AGENTって
たまに顔文字入れてたりするバカがいる(案外多い)ので、
「'」を含んでてそのままだとSQLがエラーになったりするのな。
そういう、一般ユーザレベルのトラブルとクレームを防ぐ目的から
その手の外部から取得するデータをエスケープするのは
「当たり前」という感覚にしとかないと、ごく普通の仕事でも
「とても金を払えるレベルの品質じゃない」という烙印を押されるのよ。
0905nobodyさん2006/04/06(木) 13:00:26ID:???
UserAgentを('A`)にしてるけど、SQLのエラー垂れ流しサイトが結構ある。多くは個人サイトのようだが。
「アクセスログを徹底的に取っています」と言われているみたいで、忍者のアク解並みにムカつく。
0906nobodyさん2006/04/06(木) 13:30:52ID:???
んなことでいちいち腹たてんな
禿るぞ
0907nobodyさん2006/04/06(木) 13:58:34ID:???
>>905
お前アレか、最近流行りの
「バカにされていると思い込んで」殺人事件とか起こすタイプか?
0908nobodyさん2006/04/06(木) 14:00:15ID:???
>>904
キーボードを少しタイプしてエスケープしたほうが楽じゃない?
レス数が900を超えています。1000を超えると表示できなくなるよ。