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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2008/04/11(金) 06:38:35ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ

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

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0823nobodyさん2008/05/01(木) 19:13:28ID:???
うーん、いまのとこないw
0824nobodyさん2008/05/01(木) 19:38:05ID:???
じゃ質問置いておきますね
http://pc11.2ch.net/test/read.cgi/php/1164731497/
08258162008/05/01(木) 19:42:34ID:Bd+Jl0DJ
自己解決しました。なんとかサーバーにアクセスしてもcryptされていたらダメなんですね。
やっとこの関数の重要性を理解しました。
結局ブルートフォースしかないんですね。
0826nobodyさん2008/05/01(木) 19:44:59ID:???
>>825
未来の犯罪者乙
08278162008/05/01(木) 20:06:55ID:Bd+Jl0DJ
怒られない程度に遊びたいだけで、三流クラッカーにさえなれない厨房です。
0828nobodyさん2008/05/01(木) 20:07:19ID:???
>>827
死ねクソガキ
0829nobodyさん2008/05/01(木) 20:15:14ID:???
4桁パスワードの掲示板で、手動で総当りアタックでもやればいいじゃない

0830nobodyさん2008/05/01(木) 20:19:19ID:???
http://sankei.jp.msn.com/affairs/crime/080124/crm0801241123005-n1.htm
0831nobodyさん2008/05/01(木) 20:21:37ID:???
まだいたのですね…
ブルートフォースアタックについて補足します

昨今の Firewall は統合型のものが多く、
侵入検知、自動防御などの機能が同居していることがほとんどです

外部から調査しても一見すると Firewall がないように感じる場合がありますが、
Stelth 機能を使って Firewall を隠蔽するような、無いように振る舞っているだけです

したがって、どこの企業、組織、レンタルサーバ類でも確実にログが採取されており、
ブルートフォースのようなことをしかければ確実に足跡を追跡できると覚えておいてください

つまり、潔く諦めることをお勧めします >>816=825
0832nobodyさん2008/05/01(木) 20:23:17ID:???
まあ、やらせといて捕まってもらえるほうがうれしいけどね
厨房は生きる価値ないから
0833nobodyさん2008/05/01(木) 20:26:49ID:???
4桁のパスワードか。

数字10個、アルファベット26個×2(大文字小文字)で62個の場合で考えると
総当りで14776336パターン。

俺が作ったシステムは、一回のパスワード認証で
一秒ウェイトを入れているから最悪でも171日で突破できるな。
記号も考慮すると1年ぐらいか。

だから何?といわれても困るがw
0834nobodyさん2008/05/01(木) 20:55:07ID:???
短時間に認証エラーを繰り返したIPはブラックに自動登録、
以降のアクセスは警視庁・インターポールにリダイレクトしてる漏れは天才。
0835nobodyさん2008/05/01(木) 21:05:11ID:???
>>833
そういうのが Firewall にとっては最も検知しやすかったりします

スレ違いな話題だし、問題児はそろそろネットワーク板にでも誘導するか…('A`)
0836nobodyさん2008/05/01(木) 21:18:32ID:???
最近はログイン条件にパスの他にプロバイダ入れるのが主流だな。
国内の特定のプロバイダからしかアクセスできないようにしておけば
万が一の時もすぐタイーホ。

銀行なんかは重要な手続きは携帯からやらせて、
端末ID使ってる所もあるね。
0837nobodyさん2008/05/01(木) 22:44:33ID:???
主流・・・なのか?
0838nobodyさん2008/05/01(木) 23:10:15ID:???
ログイン情報って無駄なものを入れないためにいつも1っていれて判断してたけど
プロバイダいれるメリットは?
0839nobodyさん2008/05/01(木) 23:36:23ID:???
主流かどうかは知らんが、アカウントに許可IPアドレスを設定するのは普通にある
メジャーなプロバイダならログもちゃんと管理してるだろうから、パスワード漏れ等でログインされても
追いやすいって話じゃね

つうか1で判断ってセッションハイジャック防止とかノーガードか?
0840nobodyさん2008/05/02(金) 00:09:18ID:???
国内の特定のプロバイダからしかアクセスできないようにする
大変すぎだろ?

海外からのアクセスなんて当たり前にあるし、
プロバイダが増えたり減ったりしたらどうするんだ?

個人ブログじゃないんだしさ。
0841nobodyさん2008/05/02(金) 00:09:57ID:???
>>839
セッションハイジャックおこるの?
0842nobodyさん2008/05/02(金) 00:16:59ID:???
>>840
認証ページ(ディレクトリ)だけにアクセス制限をかければいいだけですよ
0843nobodyさん2008/05/02(金) 00:32:23ID:ESOY+ESo
うまくすりぬける人はパスワードなんか無視してURLをゲットするの?
0844nobodyさん2008/05/02(金) 00:53:26ID:???
>>842
だからそれじゃ特定のプロバイダ人しか
認証できないだろ。

それに悪意のある人間が日本国内から
アタックしたらどうするんだ?

意味無いじゃんか。
0845nobodyさん2008/05/02(金) 01:39:52ID:71gb5g2D
遅レスだけど

>>654
えー!!!!こんなことできんの!?
プログラムはCから覚えた俺には強烈な型柔軟性に吃驚だよぅ
0846nobodyさん2008/05/02(金) 01:47:50ID:???
おまえらプログラムもいいがたまにはオンゲーでもしようぜ
対人がおもしろいMMOだから遊びにおいで

ロストオンライン
http://game13.2ch.net/test/read.cgi/mmo/1209016763/
0847nobodyさん2008/05/02(金) 02:11:59ID:???
>>846
なんでチョンゲーなん?
0848nobodyさん2008/05/02(金) 02:27:27ID:???
C言語でも、同じようなことはできるがな。
0849nobodyさん2008/05/02(金) 02:28:24ID:???
>>845
ほんとにCやった?
0850nobodyさん2008/05/02(金) 02:30:10ID:???
C言語に文字の配列はあっても文字列変数なんて概念はないぞ
ましてそれをインクリメントなんてできんの?
0851nobodyさん2008/05/02(金) 02:33:25ID:???
文字列をそのままできなくても文字のインクリメントはできる。
0852nobodyさん2008/05/02(金) 02:37:09ID:???
文字列のインクリメントができるのが驚きなんじゃないか
さらに言えばCは文字のインクリメントができるんじゃなくて
文字コードを数値としてインクリメントができるだけだし

ってまあスレ違いだからどうでもいいか
0853nobodyさん2008/05/02(金) 02:55:18ID:???
話してる内容自体には個人的には賛成なんだが

散々自分の意見言っといて
最後に「スレ違いだからここまで」って
典型的な荒らしの書き方じゃないか。
0854nobodyさん2008/05/02(金) 04:20:13ID:???
スレチは他所で。
まともな意見だと思うがな。
0855nobodyさん2008/05/02(金) 05:29:35ID:???
コンパイラとインタプリタをの優劣を論じても意味はない。
スレチ以前の話。
0856nobodyさん2008/05/02(金) 10:02:15ID:???
上で出ているPHPの認証画面とは任意の人間に認証させるようなページ?
わたしは管理者だけが認証できればよいと理解していました

何らかのサービスを管理するための認証画面だと思っていたのですが
例えば、掲示板の書き込みを一括削除したり等する画面への認証など

であれば、管理者だけが管理画面に対して認証できればよいだけなので、
特定のRemote host(日本国内の限定されたISP)からのアクセスのみを
.htaccessなどで許可しておけばさらに安心だと思うのですが
0857nobodyさん2008/05/02(金) 10:44:23ID:???
phpって文字列に対して(int)とか、
不正なキャストを行った場合の処理ってどうなる仕様なのでしょうか?
0858nobodyさん2008/05/02(金) 11:07:54ID:???
マヌアルの中からあなたのかわりに探してあげたよ!
http://jp.php.net/manual/ja/language.types.integer.php#language.types.integer.casting
0859nobodyさん2008/05/02(金) 13:06:24ID:???
うむ、ごくろう。
0860nobodyさん2008/05/02(金) 15:22:43ID:eCOkp8a7
変数名に変数を使うことって出来ないのでしょうか?

$hoge = "bcd"
$a$hoge = "abcd"

だとしたら、
$hogeの内容が変数名に代入されて

$hoge = "bcd"
$abcd = "abcd"

となるようにしたいのですが・・・やっぱ無理でしょうか?
別の方法があれば教えてほしいです。
0861nobodyさん2008/05/02(金) 15:28:29ID:???
あまり薦めないけど

$hoge = "bcd";
eval( "\$a$hoge = \"abcd\";" );

echo $abcd . "\n";
0862nobodyさん2008/05/02(金) 15:54:35ID:???
evalなんぞ使わなくても
${'a'.$hoge} = 'abcd';
0863nobodyさん2008/05/02(金) 16:00:10ID:???
>>862
なるほど、中括弧で括るのですか。
ありがとうございました。
0864nobodyさん2008/05/02(金) 16:00:44ID:???
>>860
可能だがしかしそれどんな設計だよ
0865nobodyさん2008/05/02(金) 16:38:44ID:1oP7bnHx
変数名に変数ねぇ。
やろうと思ったことすらない。 難読化に役立つんじゃねぇかなぁ。
0866nobodyさん2008/05/02(金) 16:43:12ID:???
変数名に変数か、考えた事すら無かったわ
0867nobodyさん2008/05/02(金) 16:53:31ID:???
同じく変数に関する質問なのですが、
「echo "あいうえお"; echo $ABC; $A=$C+$D」というプログラムをひとつの変数に収めることって出来ないんでしょうか?
0868nobodyさん2008/05/02(金) 16:55:06ID:???
>>867
>>1
0869nobodyさん2008/05/02(金) 16:58:20ID:???
>>868
氏ね
0870nobodyさん2008/05/02(金) 16:59:11ID:???
志村〜
0871nobodyさん2008/05/02(金) 17:08:21ID:???
>>867
$foo = 'echo "あいうえお"; echo $ABC; $A=$C+$D;';

で、なにがしたいんだ?
0872nobodyさん2008/05/02(金) 17:23:51ID:???
「eval したいんです!」
「だからなんで eval が要るんだ?」
「使ってみたいだけなのに、なんで要るのか訊かれても…」

こんな感じじゃないのかな。
0873nobodyさん2008/05/02(金) 17:36:09ID:???
変数名に変数、普通に使ってますが・・・だめですか・・
0874nobodyさん2008/05/02(金) 17:51:53ID:???
普通は連想配列(PHPだと配列と区別ないが)を使って $a[ $hoge ] = "abcd"; とか書く
変数名に変数を使うと便利な状況が思いつかない
0875nobodyさん2008/05/02(金) 17:56:08ID:???
こういうのは実際に"便利な状況"に遭遇してから分かるのであって、
初めから頭で考えても思いつかないだろ
0876nobodyさん2008/05/02(金) 18:19:24ID:nE3gn/Rr
Perl 関係のスレにも ${$varname} したい人がときどき来るんですけど
自分も>>874な感覚で $array[$key] (PHP) / $hash{$key} (Perl) で済むように
思うことが多いなあ。${$varname} したい状況がわからない。

でも、言語仕様としては用意されてるから駄目ではないし(…です。>>873
今の自分は「C のポインタって何が便利なんすか?」って人と変わらん状態なのかな。
0877nobodyさん2008/05/02(金) 18:52:31ID:???
うん、みんなが優しいのは分かったけど、
例外を作りつづけてもよくないと思うぞ?

>>1
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

質問者も質問するなら最低、
テンプレにくらい目は通そうぜ?
0878nobodyさん2008/05/02(金) 18:52:59ID:???
うぅ〜んまんだむ!
0879nobodyさん2008/05/02(金) 18:55:26ID:???
GETでもPOSTでも動くように可変変数使って書いたことがあるけど
それが最初で最後だなぁ
0880nobodyさん2008/05/02(金) 19:20:38ID:???
>>879
それは、二行にすりゃいいんじゃw
0881nobodyさん2008/05/02(金) 21:02:31ID:CcSXHmXb
動的に関数を定義するにはどうしたらいいですか?
0882nobodyさん2008/05/02(金) 21:03:05ID:???
if(){
function b(){}
} else {
function a(){}
}
0883ぬるぽ(^^)/2008/05/02(金) 21:37:24ID:???
PHPで、どんなセキュホがあれば、スクリプトみられたり するんですか?
教えて下さい。
http://z-z.jp/
なんでここはスクリプトみられてるのですか
教えて下さい
0884nobodyさん2008/05/02(金) 21:43:28ID:???
phpじゃないじゃん
0885nobodyさん2008/05/02(金) 21:48:36ID:???
そこのスクリプトの見方を教えてくれれば、
PHPのも教えてあげるよ
0886nobodyさん2008/05/02(金) 21:51:44ID:???
>>883,>>885
さあ厨房は帰った帰った
0887nobodyさん2008/05/02(金) 22:47:59ID:vDcZA+4C
おまえら友達居ないだろ?
0888nobodyさん2008/05/02(金) 22:57:12ID:???
>>887
自分を攻撃すると意味の分からない話にもってくゆとり乙
0889nobodyさん2008/05/02(金) 23:00:15ID:vDcZA+4C
>>888
俺はたしかにゆとり教育受けてるが、おまえみたいに友達いないよりはマシだ。
こんなところにずっと張り付いてて楽しいか?
0890nobodyさん2008/05/02(金) 23:01:31ID:???
>>889
会ったことも無いのに友達がいないといえるところがゆとりだな
0891nobodyさん2008/05/02(金) 23:08:42ID:???
友達いないけど彼女いるから
0892nobodyさん2008/05/02(金) 23:49:49ID:???
そこは PHP 使われていないですよ

スレ違いだから↓あっちで聞きなさい!

くだすれPerl(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1204488452/
0893nobodyさん2008/05/03(土) 00:38:01ID:cJNbL5n/
php 5.2.3 windows xp sp1 apache2な環境ですが
コマンドラインの php -l ファイル名 と同じ動作をする php 関数かなんかはないでしょうか。
プライベート用のテスト鯖でDBにソースを保存して簡易CMS的に使おうと考えており
DBに保存する前にソースが動くかどうかの確認をしたいのです。
0894ぬるぽ(^^)/2008/05/03(土) 00:55:21ID:???
PHPで、どんなセキュホがあれば、スクリプトみられたり するんですか?
教えて下さい。
http://z-z.jp/
なんでここはスクリプトみられてるのですか
教えて下さい
0895nobodyさん2008/05/03(土) 01:06:37ID:???
>>894
そこにPHPは使われていません
Perlが使われています

下のところ↓で聞いてください

くだすれPerl(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1204488452/
0896nobodyさん2008/05/03(土) 01:06:55ID:???
>>894
氏ねゆとり
0897nobodyさん2008/05/03(土) 01:17:15ID:3FEggVxI
ブログのテンプレートでよく見かける
<a href="{$BBSPATH}">掲示板トップ</a>
のようなことをしてデザインとプログラムを分けたいのですが、
どのような仕組みで作ればいいのでしょうか?
0898nobodyさん2008/05/03(土) 01:29:10ID:???
正規表現を覚えて\{(\$[A-Za-Z_-]+)\}でマッチングさせて\1で
帰ってきた変数名で、その部分を置き換える。


っていうのは#FF0000なFALSEで、何も考えずにincludeして使えば良い。
{$変数}の"{"と"}"は、周りの文字にくっつかない為の方法で表示はされない。
単に変数埋め込んでるだけ。
0899nobodyさん2008/05/03(土) 01:38:21ID:3FEggVxI
>>898さんの説明が難しくて私には・・・まだやすぎるのかな・・・

自分なりに考えたのですがこういうやり方はどうなんでしょうか?
プログラムファイルからスキンファイルをfile_get_contentsで読み込んで、
str_replaceを使ってスキンファイルに書かれている変数(たとえば{BBSPATH}など)を置換。
っていうのはダメですよね・・
0900nobodyさん2008/05/03(土) 01:47:21ID:???
>>899
それで問題ない
0901nobodyさん2008/05/03(土) 01:54:15ID:???
ありがとうございます。この方法なら自分にもできそうなので取り組んで見ます
0902nobodyさん2008/05/03(土) 02:06:58ID:???
・・・まだやすぎるのかな・・・
0903nobodyさん2008/05/03(土) 02:07:24ID:???
file_get_contentsでやっても、evalすれば
$varは展開されるけど、それで出来るのは、単一の値を持つスカラーしか置き換えられないから
smartyみたいなのはstr_replaceとか正規表現使ってるっぽい気がする。

ソース見てないけどあれってifとか使えるし、<option>タグで
中身ぞろぞろ引き出せるんだよね?…ってやっぱevalでも出来るかな?
まあ、自分で置換すれば、<option>で項目が増減するのも
タグに独自ルール作って扱えるよね。

ちなみにZendFrameworkは普通に<?php ?>だよ
<?php if(hoge): ?>
<?php endif; ?>って{}使わない方のもう一つのifの書き方を
使ってるのが見やすくてなるほどと思った。

常に表示枠固定じゃない限り、foreachはどうしても
使うことになると思うし、それ考えるとZendのやり方が良いと思う。
09049032008/05/03(土) 02:13:06ID:???
ごめん、開始タグと終了タグあるのはstr_replaceじゃ無理だ。
単に置き換えるだけなら出来るけど、それならevalした方が断然良い。
やっぱ正規表現必要。
0905nobodyさん2008/05/03(土) 02:18:04ID:???
>>901
PHPBlosxomとか参考にすれば?

ttp://sourceforge.net/projects/phpblosxom/
0906nobodyさん2008/05/03(土) 04:22:31ID:Bi5B2zuj
>>891
>友達いないけど彼女いるから
ワラタwww彼女いる事自体はなんの自慢にもなんないだろwww
妥協すればだれでもできるwww
0907nobodyさん2008/05/03(土) 08:52:05ID:IxjoBmKw
preg_match("/<title>(.*)<\/title>/",$file_data,$file_title);

これで読み込んだファイル内のtitleタグのテキストを取得しています。
しかし、<title></title>の間に改行が入ると取得できなくなります。
改行が入っていても、取得するにはどうすればいいのでしょうか?
改行を削除する方法以外でお願いします。
0908nobodyさん2008/05/03(土) 09:18:15ID:???
>>907

.
↑は改行を含んでませんよ
ちゃんと改行も含めないと
\nと.
09098732008/05/03(土) 11:22:48ID:???
遅レスだけど、変数名に変数を使うことってそんなに頻繁にはないけど
(言われてるように、連想配列で済む場合が多いから)
>>898みたいな正規表現と組み合わせる場合とか、変数と他の何かが
一定のルールで名称付けされてて、かつそれが膨大な量の時とか、
あとはリファレンス的に使ったりとか、そんな場合です。
これはPerlの時から使ってた。
確かにこれらの場合も、他のやり方とか、配列で済ませられるかもしれないけど、
簡単な方を選んでしまった。
0910nobodyさん2008/05/03(土) 11:45:38ID:???
>>907
http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
s (PCRE_DOTALL)
0911nobodyさん2008/05/03(土) 11:48:07ID:???
てか普通にsmarty使えばいいんじゃね?って言うのはなしなの?
なんでわざわざ車輪を再発明すんの?
0912nobodyさん2008/05/03(土) 12:13:39ID:???
phpのプログラマーって、論文とか書いたことがない奴ばかりか?

論理的思考もなく、単に関数と関数をパズルのような感覚でつなぎ合わせれば、
それなりのものが出来てきて、さぞ自分は有能なエンジニアだと錯覚を起こしているのではないですか?

有能か似非かを分ける方法は簡単。
設計書orテスト仕様書を書かせてみればすぐ分かる。
もっと言えば、作っているシステムを誰でも分かりように1枚の絵にまとめろ、という課題を出せばいい。

たちまち、化けの皮が剥がれる。
0913nobodyさん2008/05/03(土) 12:14:36ID:???
掲示板のスキソのように使うまでもない小物とか、
テンプレートエンジンがない環境とか

実は俺もスキソのためにSmartyをダウソして中を見てみた訳だが、
何が何だかワケワカメだったw
0914nobodyさん2008/05/03(土) 12:45:58ID:???
>>913
Smaryのコード自体は大してレベル高くないんだけどphp4仕様で書かれてるから非常に読みにくい
0915nobodyさん2008/05/03(土) 13:01:45ID:???
メカニズムが車輪の再発明でも、雪道に強いタイヤとか
自分の欲しい物を作るのは、間違いじゃないと思うよ。

smartyみたいに、大した事出来ないのに無駄に大きいライブラリは
拡張するより、一から書いた方が早いだろうし。

今の風潮で何作るのにも出来合いのライブラリを使っていく発想だと
9割のクラスが使われないまま読み込まれていたりとかおかしな事になる。
0916nobodyさん2008/05/03(土) 13:10:32ID:???
四角い車輪の再発明乙
0917nobodyさん2008/05/03(土) 13:13:26ID:???
>>916
雑誌とかに惑わされずにsmartyの中見てみれば、
smarty自体が四角い車輪な事がすぐわかるはずだけど。
あれは、個人が適当に作ったのを公開してるのとレベルあまり変わらない。
0918nobodyさん2008/05/03(土) 13:16:04ID:???
「見ればわかるはず論」はいらない。

理由を言え。
0919nobodyさん2008/05/03(土) 13:18:22ID:???
php自体で書かれてるんだから見て分らないやつは使うな。
0920nobodyさん2008/05/03(土) 13:20:55ID:???
>>919
そういう暇は無いんで、
どこを見ればよいかと、そこを教えてください。
0921nobodyさん2008/05/03(土) 13:22:46ID:???
>>917
どの辺が?
0922nobodyさん2008/05/03(土) 13:36:47ID:???
だから、君達は技術者じゃないだよ。単なる組み立て屋。
レス数が900を超えています。1000を超えると表示できなくなるよ。