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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/09/29(土) 18:35:56ID:YlkpEUW6
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで


0067nobodyさん2007/09/30(日) 17:40:48ID:???
trim使うと前後のスペースが強制的に取り除かれる。
つまりスペースを使ったパスワードに問題になる
0068nobodyさん2007/09/30(日) 17:45:27ID:hOfwjY6s
>>66
はい。66の通り試してみたのですがうまく動作しませんでした。
とりあえず、動いたので今度は暗号化したものをテキストファイルに書き込んで
パスワードの妥当性チェックに挑戦したいと思います。
0069nobodyさん2007/09/30(日) 17:52:46ID:???
>>67
前後に空白入りのパスワード使わせるの?
それだと空白行チェックも必要にならないかい?
0070nobodyさん2007/09/30(日) 17:53:27ID:hOfwjY6s
素人目の判断なのでこういう記述が正しいのかわかりませんが、とりあえず形になったので書きます。
これでパスワードをmd5ハッシュで暗号化してテキストファイルにかきこみ、これを比較することで使用中のパスワードか比較することができました。*まだサニタイズ等してないので当然このままのスクリプトでアップすることはできませんが。。。
//pass.phpから比較対象のパスワードを取得
//もしこのファイルが直接読み出された場合に$_POST["md5"]はなにもはいってないので初期化
if(isset($_POST["md5"])){
$pass=$_POST["md5"];
}else{
$_POST["md5"]="";
$pass="";
}
//変数の初期化
$error="";
//テキストファイルからデータを一行ずつ読み込み
$fp = @fopen("dat.txt", "r") or die("読み込みファイルオープンエラー");
while($str = fgets($fp)) {
// 文字列比較(trimで空白を削除)
$str = trim($str);
if ( crypt($pass,$str) == $str ) {
$error="error";
}
}
fclose($fp);
//もし$errorにerrorが入っていればそのパスワードは使用中。それ以外ならば使えるパスワード
if($error){
print "現在使用中のパスワードです<br><a href=\"pass.php\">戻る</a>";
}else{
//if条件を満たしていればファイルにパスワードを書き込み
$fp=@fopen("dat.txt","a") or die("追加書き込みオープンエラー");
fputs($fp,crypt($pass)."\r\n");
fclose($fp);
print "パスワードが登録されました<br><a href=\"pass.php\">戻る</a>";
}
0071nobodyさん2007/09/30(日) 18:05:02ID:???
>>70
$_POSTの$pass代入時にtrimしないと$str = trim($str)と整合取れない可能性あり。
$pass=trim($_POST["md5"]);

それと$_POST に代入させるのは止めた方がいい。
以後使用するなら移した$passで。

あと多分判ってるだろうけどパス未設定ならメッセージ出力して終了
0072nobodyさん2007/09/30(日) 18:23:20ID:hOfwjY6s
>>71
おおっと、ナイスアドバイスありがとうございます。
$_POSTの$pass代入時にtrimしないと$str = trim($str)と整合取れない可能性あり。
$pass=trim($_POST["md5"]);
の件については知りませんでしたので助かりました。
0073nobodyさん2007/09/30(日) 19:03:56ID:hOfwjY6s
>>69
勿論このままだと空白もパスワードとして登録されてしまいすので、空白は入らないように
しますよ。
0074nobodyさん2007/09/30(日) 19:05:07ID:???
>>55
その程度のスクリプトでcoreを吐くようじゃ環境に依存しているんで
自分で原因を追究するしかないんじゃないの?

#つか、これだけでわかる奴いるのかよ…
0075nobodyさん2007/09/30(日) 19:18:44ID:???
>>21の処理が理解できてなさそうな発言といい、自分で書いたスクリプトの
動作を把握できてなさ具合といい、プログラミングの基礎を固めるところから
やらないと後々苦労するんじゃないかと他人事ながら心配になる
0076nobodyさん2007/09/30(日) 19:41:18ID:a9TKVxAS
Vistaにxamppを入れたんですけど、
phpでcURLというのが使えないんです。
どうやってインストールするのでしょうか?
0077nobodyさん2007/09/30(日) 19:51:53ID:???
>>76
>>1にも書いてあるけどマニュアルをまず読め
該当するページを読め
http://www.php.net/manual/ja/ref.curl.php
0078nobodyさん2007/09/30(日) 20:56:19ID:a9TKVxAS
見てもよくわからなかったんですよ。
xamppでインストールされたのでphpのコンパイルって
どうやってやるんだろ?みたいな。
0079nobodyさん2007/09/30(日) 21:36:10ID:4K+ZGFPD
すみませんbmpからjpgへの変換はどうすればいいんでしょうか?
GDでは出来ませんでした。
imagemagickはレンタル鯖なので使えません。
教えてください。お願いします。
0080nobodyさん2007/09/30(日) 21:38:44ID:???
>>79
GDで出来ます。コードを晒せば間違いを指摘してくれる素敵な人が現れるでしょう。
0081792007/09/30(日) 21:43:46ID:4K+ZGFPD
>>80
すみません。もうできねえやってあきらめて試したスクリプト消してしまいました・・・
せめてどの関数使うかだけでも教えていただけないでしょうか?
0082nobodyさん2007/09/30(日) 21:52:06ID:???
間違えた答えは消さないで赤ペンで訂正って先生に教わらなかったかい?
0083nobodyさん2007/09/30(日) 21:52:32ID:???
>>81
内容まったく見てないけど、こんなんでてきた
ttp://www.dabun-doumei.com/topix/imageConvertSource.php
0084792007/09/30(日) 22:16:32ID:4K+ZGFPD
GDではbmpは使えないんです。
0085nobodyさん2007/09/30(日) 23:28:06ID:???
>>78
http://www.php.net/manual/ja/ref.curl.phpから抜粋
Win32 ユーザへの注意: このモジュールを Windows 環境で使用可能とするには、
libeay32.dll および ssleay32.dll が PATH の通った場所に存在する必要があります。

これが理解出来ない頭の構造ってのを見てみたい
PHP本家のwindows用配布物に両dllは含まれているのに何故コンパイル?
xamppには含まれないならそんな物に頼るな
0086nobodyさん2007/10/01(月) 10:43:50ID:nNJ7ChTV
メールをトリガーにしてメールの内容を解析しているのですが、
fopen("php://stdin", "r")
で、メールの内容を解析できますが、これは一体何なんでしょ?

メール送信しなくただ単にスクリプトを実行させただけでは、
中身が空っぽです。
ただ単にHTTPリクエストを受けたときに、その受けた内容を一時的に保存しているのでしょうか。
(それだと、普通にアクセスしても情報が残りそうですが・・・。)
0087nobodyさん2007/10/01(月) 10:50:10ID:i+Hfwjq6
>>86
それは標準入力取得。
スクリプトをSSHとかからコマンドで引数に何か与えて実行してみればわかる

php ./test.php "aiueo"

とかやれば"aiueo"が渡される
0088nobodyさん2007/10/01(月) 10:52:51ID:nNJ7ChTV
readfile("php://stdin");
って書いたらPHPが動かなくなったorz
0089nobodyさん2007/10/01(月) 10:56:16ID:???
>>86
標準入力です。
ですから何も入力が無ければ中身が空っぽなのは当然です。
0090nobodyさん2007/10/01(月) 12:16:45ID:???
PHPで文字列の複合可能暗号化はロジックを自作するしかないですか?
0091nobodyさん2007/10/01(月) 12:20:32ID:???
>>90
>>1
0092nobodyさん2007/10/01(月) 12:53:17ID:???
こんにちは
情報が欲しいログインするタイプのサイトへ
phpで自動化しようと思ったんですけど…

返ってきたHTTPレスポンスが
------------------------------
…サインインするには JavaScript が必要です
このブラウザでは JavaScript をサポートしていないか
現在スクリプトの使用が禁止されています。…
--------------------------------
と

これはもしかしてphpでは無理ですか?
0093nobodyさん2007/10/01(月) 12:59:35ID:???
>>92
>>1
0094nobodyさん2007/10/01(月) 13:03:59ID:???
なんでISOじゃないの
0095nobodyさん2007/10/01(月) 13:45:06ID:???
>>92
ログイン画面のJavaScriptで何やってるか解析すれば
0096nobodyさん2007/10/01(月) 13:53:58ID:???
>>91,93
>>1
0097nobodyさん2007/10/01(月) 14:23:07ID:???
>>96
>>1のどこを読めと?
0098nobodyさん2007/10/01(月) 14:29:23ID:???
>>97
ID表示とか環境晒すとか基本的なことじゃない?
0099nobodyさん2007/10/01(月) 14:31:45ID:???
>>98
それだったら安価先が違うだろ
0100nobodyさん2007/10/01(月) 14:40:06ID:MMTKck5h
get_magic_quotes_gpcのように、register_globalsの設定を取得したいのですが
phpinfoや設定ファイルを目視する以外にやり方ございませんか?
0101nobodyさん2007/10/01(月) 14:42:47ID:???
ini_get()
0102nobodyさん2007/10/01(月) 14:43:33ID:???
変数名いきなり使って受け取れてるかどうか試してみたら?
0103nobodyさん2007/10/01(月) 14:51:19ID:???
>>101
あたまいいな。

>>102
おまえはばか
01041022007/10/01(月) 14:59:24ID:???
>>103
設定を取得できたならいいけど。
0105nobodyさん2007/10/01(月) 15:20:50ID:???
>>100は例も言わずに消えたか
0106nobodyさん2007/10/01(月) 15:51:28ID:???
>>99
どこがちがうの?
>>1のテンプレに入ってるのにわけわかんね

だいたい質問以前の基本的なことができてないのに相手してもらえるわきゃないわな
0107nobodyさん2007/10/01(月) 15:55:36ID:???
>>106
だから、>>96の安価が>>91と>>93になってんだよ
それくらい見たらわかるだろ
0108nobodyさん2007/10/01(月) 15:59:45ID:???
>>107
おまえ頭固いな〜
こいつら全員基本的なことができてないだろーがよ
「おまえらまとめて>>1の基本的なことやってから質問しろ」って意味じゃねーの?
もうちょっと自分で考えてみろよ
0109nobodyさん2007/10/01(月) 16:03:53ID:???
>>108
論破されて悔しかったの?wwwwwwwww悔しかったの?wwwwww
0110nobodyさん2007/10/01(月) 16:07:05ID:???
どうせ>>109=>>107 だろ
どこが論破なんかと小一時間(ry
こんな基地外どうでもいいわ
0111nobodyさん2007/10/01(月) 16:12:58ID:???
どうでもいいのにわざわざレス返す>>110は何がしたいんだろ・・・
0112nobodyさん2007/10/01(月) 16:26:07ID:???
>>111
お前も答えてもらえなかったからって粘着するなボケ
0113nobodyさん2007/10/01(月) 16:29:50ID:???
>>112
勘違いしてるかもしれんが
俺の質問は答えてもらってるわけだが

ID見えないのに特定しちゃったフリですかwww
0114nobodyさん2007/10/01(月) 16:38:03ID:???
>>113
はあ?
しかし、反論できないと笑ってごまかすんですね
0115nobodyさん2007/10/01(月) 16:41:00ID:???
>>114
何?お前の書いたレスに反論されるような文章書いたつもりなの?www
ただの煽りなのにwwww
0116nobodyさん2007/10/01(月) 16:42:22ID:???
基地外がいると聞いて飛んできました!
0117nobodyさん2007/10/01(月) 16:58:44ID:???
>>115
日本語でおkですよ^^
0118nobodyさん2007/10/01(月) 17:06:53ID:???
自演粘着うざい
0119nobodyさん2007/10/01(月) 17:07:01ID:???
無駄にレスの進行が早いなw
0120nobodyさん2007/10/01(月) 18:14:33ID:???
>>108
なんで回答側までID出さなきゃいけないんだよ
91と93はID出す必要ないだろ
0121nobodyさん2007/10/01(月) 19:27:40ID:???
>>120
>「おまえらまとめて>>1の基本的なことやってから質問しろ」って意味じゃねーの?
0122nobodyさん2007/10/01(月) 19:28:37ID:???
質問と関係ない話題でレス消費するなよ
0123nobodyさん2007/10/01(月) 19:40:00ID:???
>>122
自演乙
0124nobodyさん2007/10/01(月) 19:46:58ID:???
>>121
だから質問してないじゃん。
ID出さないで質問したやつに>>1嫁って指摘しただけじゃん。
0125nobodyさん2007/10/01(月) 20:34:46ID:J4jr6C1B
久しぶりなのでID忘れていました。
情報が欲しいログインするタイプのサイトへ
phpで自動化しようと思ったんですけど…

返ってきたHTTPレスポンスが
------------------------------
…サインインするには JavaScript が必要です
このブラウザでは JavaScript をサポートしていないか
現在スクリプトの使用が禁止されています。…
--------------------------------
と、これはもしかしてphpでは無理ですか?

>>ログイン画面のJavaScriptで何やってるか解析すれば
まず有効無効のチェックに対して
phpではクッキーを持つぐらいしかできる事がありませんよね?
0126nobodyさん2007/10/01(月) 20:49:04ID:???
んなことはない。処理次第。
0127nobodyさん2007/10/01(月) 21:22:39ID:???
通常ブラウザで実行されているJavaScriptと同じ処理(入出力データだけでも可能かもしれない)
PHPなりRubyなり好きな言語でエミュレートしてやればいいが
JavaScriptで生成されるデータが多かったり、
セキュリティ上の制約に引っかかったりしたら難しいだろうな。
0128nobodyさん2007/10/01(月) 22:23:27ID:???
>>125
とりあえずJavaScriptが何をしてるのかを確認すべき。
普通、JavaScriptでログイン処理なんてやらない・できないので、
それは単にユーザI/Fを構築してるに過ぎないはずなのよ。
なので、最終的なログイン方法を見つけてそれをPHPで
処理してやれば、ちゃんとログインできるはず。
0129nobodyさん2007/10/01(月) 22:42:17ID:???
>>128
>JavaScriptでログイン処理なんてやらない・できないので
やらないのは確かだが一応できるよ
ただ非効率だしパスワードなんかもソース見れば丸見えだし
ユーザの追加やパスワードの追加は手作業で行うことになるし
(手作業でやらない場合PHP等を通すことになるのでJavaScriptでやる意味がない)
普通は誰もやらない
5年ぐらい前ならたまに見かけたけどね

>…サインインするには JavaScript が必要です
>このブラウザでは JavaScript をサポートしていないか
>現在スクリプトの使用が禁止されています。…

考えられるのはJavaScriptで取得したいなんらかの情報があるか
ログイン後の操作や処理にJavaScriptが必要だったりするからログイン前に警告出してるか
だと思う
0130nobodyさん2007/10/01(月) 22:48:33ID:???
ログイン自体は自動でできるようになるかもしれないが、
ログイン後のアクセスは結局JavaScriptが必要である可能性が高いよな。
0131nobodyさん2007/10/01(月) 23:00:27ID:???
JavaScriptって視覚効果を高めるための言語なんじゃないの?
0132nobodyさん2007/10/01(月) 23:09:23ID:???
>>131
(・д・)ぽか〜ん
0133nobodyさん2007/10/01(月) 23:30:45ID:6BDl/Ymp
凄くくだらないと思うけど質問させて
あのさ、県名で絞込みってのをフォームのプルダウンでやろうと思うんだけど、
valueの値を“北海道”と日本語にするのと“1”って数値にするのは
どう使い分けたらいいの?
DBが安定して日本語対応してたら日本語でいいのかな?
みんなはどうしてるの?
0134nobodyさん2007/10/01(月) 23:42:42ID:???
>>133
郵便局にあったCSVをDBにつっこんでつかってるけど日本語でやってる。
何から何までUTF-8に統一して設定してるからかもしれんけど特に問題はないよ
phpはEUC、DBはUTF8とかばらばらだったらPKつけてやった方が無難かもしれない
0135nobodyさん2007/10/01(月) 23:43:41ID:UmsoE0s2
>>133
「蝦夷」 から 「北海道」 に変わったように、 「北海道」 から別の名称に変わるかもしれませんので、
数値にすべきでしょう。
0136nobodyさん2007/10/02(火) 00:02:18ID:???
>>129
>やらないのは確かだが一応できるよ
>ただ非効率だしパスワードなんかもソース見れば丸見えだし
(・д・)ぽか〜ん
パスワード丸見えなのにログイン処理が「一応できる」と思ってるなんて凄いな。尊敬するよ。
0137nobodyさん2007/10/02(火) 00:03:46ID:???
>>134-135
なるほど  ありがとう
よくわかりました
0138nobodyさん2007/10/02(火) 00:20:34ID:???
>>136
技術的にどうかという問題なわけでセキュア云々ではない
セキュアだとやらないというだけで技術的にできることには変わりはない
気休めだが一応暗号化もできるしな
PHPでSQLインジェクション抱えてるようなサイトとたいしてかわらんだろw
0139nobodyさん2007/10/02(火) 00:24:01ID:???
もともとネットはスカスカだからな、SSLでカバーしてもサーバー側に悪い奴がいたらお終いw
0140nobodyさん2007/10/02(火) 01:05:03ID:ykBGND+D
東京都新宿区あああ1丁目2-3 101号室
大阪府大阪市中央区いいい2丁目3-4 202号室

こういう住所があるとして、「○○○号室」だけを取り出すには
どのように正規表現のコードを書けばいいのでしょうか?
0141nobodyさん2007/10/02(火) 01:14:12ID:???
preg_match('/[1-9][0-9]{2,3}号室/', $address, $matches);
0142nobodyさん2007/10/02(火) 01:22:06ID:???
なんでそんなことやりたいのか意味分からんが、それ以前に正規表現だけの話だったらスレ違い
0143nobodyさん2007/10/02(火) 01:48:53ID:???
正規表現の質問ならここかね?

正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0144nobodyさん2007/10/02(火) 01:51:57ID:???
「下つき・ミミズ天井」とか「カリ太・右曲がり」とかだなそれ
0145nobodyさん2007/10/02(火) 01:53:07ID:???
…名器表現?
01461402007/10/02(火) 02:11:24ID:???
>>141
出来ました!非常に勉強になりました。ありがとうございました。
0147nobodyさん2007/10/02(火) 10:31:53ID:???
俺んちは「E号室」だけどなw
0148nobodyさん2007/10/02(火) 10:55:06ID:???
PHPからC言語のライブラリ関数をコールする事は出来ますか?
0149nobodyさん2007/10/02(火) 10:58:26ID:???
はい
0150phpでJSありのサイトへログイン2007/10/02(火) 11:05:23ID:NjRsQqKR
皆さんありがとうございます。
とりあえずJSの解読からはじめます。
01511482007/10/02(火) 11:10:47ID:???
>>149
もし良ければ、その方法を教えていただけませんでしょうか。
PHPのマニュアルを探しましたが、それらしき記述は見つけられませんでした。
0152nobodyさん2007/10/02(火) 12:17:34ID:???
Exceptionクラスはどのファイルに定義されていますか?
OSはFreeBSD 6.1-RELEASE
phpはPHP 5.2.0です。

この環境に限らずここら辺みろやっていうあたりでも教えていただけると幸いです。
0153nobodyさん2007/10/02(火) 12:42:31ID:???
>>148
マニュアルに書いてあるよ!
ttp://www.php.net/manual/ja/internals2.php

...けどmysqlとかのエクステンションを読んだ方が早いかもね。
0154nobodyさん2007/10/02(火) 12:45:27ID:???
>>150
そのJS必要なサイトを晒した方が早い気がするが反則?
0155nobodyさん2007/10/02(火) 12:54:05ID:???
>>152
多分ソースのext/spl/spl.php
0156nobodyさん2007/10/02(火) 13:08:56ID:sEvSh0XV
>>153
ありがとうございます。<(_ _)>
ちょっと読んでみます。
0157nobodyさん2007/10/02(火) 13:11:34ID:vuWCHJUh
MySQLでPHPの関数を(ry
01581522007/10/02(火) 14:10:05ID:???
>>155 ばっちり完璧にその場所へありました、ありがとうございます。
0159nobodyさん2007/10/02(火) 14:36:45ID:NjRsQqKR
>>154
それは…挫折してからにします。
0160nobodyさん2007/10/02(火) 16:13:41ID:vuWCHJUh
ISO-2022-JPって半角カナ対応してないの?
UTF-8から変換すると??になるんだが・・・
0161nobodyさん2007/10/02(火) 16:15:37ID:???
>>160
携帯で半角カナ使えるか試してみればわかる
0162nobodyさん2007/10/02(火) 16:17:23ID:vuWCHJUh
使えなかった
携帯で半角カナが使えないというのはこういうことか・・・
0163nobodyさん2007/10/02(火) 16:35:12ID:???
>>162
ISO-2022-JP=7ビットコード体系
使用可能=ASCII, JISX0201, JISX0208-1978, JISX0208-1983
除外=JISX0201(片仮名)
0164nobodyさん2007/10/02(火) 16:41:05ID:???
ISO-2022-JP-MS
0165nobodyさん2007/10/02(火) 16:41:05ID:???
うちではEUC-JPでdocomoの大抵の携帯なら文字化けなく処理できるけど
固体識別情報にezwebを吐く携帯が文字化けを引き起こしてる
mb_convert_encodingでEUC-JPにするも全くダメ
自分がその携帯を持ってないのでなんともむず痒い
0166nobodyさん2007/10/02(火) 16:44:44ID:???
>>165
携帯サイトでEUC-JP使ってるってこと?
いや、まさかそれはないよな
■ このスレッドは過去ログ倉庫に格納されています