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

【PHP】下らねぇ質問はID出して書き込みやがれ 79

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/01/13(火) 21:48:25ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
01761702009/01/17(土) 01:00:35ID:???
>>175
返信ありがとうございます。
私自身も今までこの設定でやってきたんですが、
もしUTF-8で作った掲示板を誰かがブラウザの表示で
文字のエンコードを変えてPOSTで送信してきたら
セキュリティ的に大丈夫なのかなと思いまして・・

変な質問ですいません。
0177nobodyさん2009/01/17(土) 01:01:53ID:???
セキュリティ的に(笑)
0178nobodyさん2009/01/17(土) 01:19:40ID:sXvdxnWv
どういう意味でセキュリティー的に危ないの?
大丈夫だよ。
誰もphp.iniをのぞかないから。乗っ取られない限り
01791702009/01/17(土) 01:35:59ID:???
>>178
例えば先程書いた例の通り掲示板にSJISの文字コードで
こんにちはとPOST送信してきた場合その言葉を内部でUTF-8に
エンコードしない限りSJISとして処理され
データベースに格納されてしまうのかなと疑問に感じまして・・

今日確認目的でマルチバイトの設定ファイルの勉強を再度したら
頭がごちゃごちゃになってしまいました。
変な質問本当にすいません。
0180nobodyさん2009/01/17(土) 01:57:53ID:???
SJISで格納されることがセキュリティ的に危ないの?
0181nobodyさん2009/01/17(土) 02:12:55ID:???
対処法としてはsubmitにnameを持たせて
valueを日本語にして送信されたvalueと内部の値を比較する。
01821702009/01/17(土) 02:23:40ID:???
>>180
セキュリティというか文字化けですね。
掲示板の投稿やショッピングサイトのユーザ登録を作る時に
ブラウザから文字コードの違うテキストがPOST送信されてきた場合、
内部の文字コードに適切に処理するプログラムでいつも対処するべきなのか
疑問に感じました。

例えばIEのメニューから表示→エンコード→シフトJISに切り替えて
POST送信した場合、フォームに記述したモノは
全てシフトJISで送信されるんですかね?

なんか書きながらすごい自分自身幼稚な事を言ってる気がします。
読んでいただいてありがとうございます。
0183nobodyさん2009/01/17(土) 02:24:40ID:???
やってみ
聞いたことよりもやってみた結果のほうが何倍も信用できるだろ?
0184nobodyさん2009/01/17(土) 02:33:55ID:???
>>176
ブラウザ上でユーザーが明示的に
UTF-7にして、そのデーターを送信してきたら
アタッカーが意図的にjavascriptのコードを仕込んできて、
XSSやCSRFの原因になることがあるよ

詳しくはググれ
0185nobodyさん2009/01/17(土) 02:35:02ID:???
>>178
お前はバカ
会社もクビになったろ?
0186nobodyさん2009/01/17(土) 02:35:34ID:???
スレタイとテンプレすら読まない子にそれができるとは思えない
0187nobodyさん2009/01/17(土) 02:36:11ID:???
>>180
危ないだろ。
シフトJISでは防げない攻撃がある。
だからシフトJIS自体を使うのをやめましょうね、
って流れになってる。
0188nobodyさん2009/01/17(土) 02:38:46ID:???
それシフトJISじゃなくてエスケープやエンティティ化の問題じゃね?
0189nobodyさん2009/01/17(土) 02:39:41ID:???
ちなみにデーターベースに格納するときの危険性は
SQLインジェクションだけ考えればいい。

そっから取ってきたデーターを画面に
表示するときは、htmlspecialcharsでサニタイズが必要。
0190nobodyさん2009/01/17(土) 02:40:08ID:???
サニタイズw
0191nobodyさん2009/01/17(土) 02:41:14ID:???
また、ユーザーの入力値を、そのままOSにコマンドとして渡す場合は、
「OSコマンド・インジェクション」への注意が必要。

通常、ユーザーの入力値をそのままOSに渡したりしてはいけない。
バカがメール送信プログラムとかでよくやる。
01921532009/01/17(土) 02:46:02ID:ElVqoJ54
Parse error: syntax error, unexpected '?' in /home/ユーザー名/public_html/index.php on line 61
よろしくお願いします
0193nobodyさん2009/01/17(土) 02:46:54ID:uOghFGaK
phpでポータルサイト作るのに
・サイト内検索
・ログイン、ログアウト
・ユーザー登録
・データベース管理
あとどんな技術が必要?
0194nobodyさん2009/01/17(土) 02:47:51ID:???
>>192
syntax errorです
>>193
ID:cpRhXZRJ乙
0195nobodyさん2009/01/17(土) 02:58:31ID:???
>>192

が変なところに入っている。消せ。
0196nobodyさん2009/01/17(土) 02:59:09ID:???
>>194
病院に行け
これは命令だ。
0197nobodyさん2009/01/17(土) 03:00:05ID:???
命令w
01981702009/01/17(土) 03:02:18ID:qiM85KnN
色々な意見本当にありがとうございました。
まだまだ勉強不足なのでこれから一層努力していきます。
0199nobodyさん2009/01/17(土) 03:03:20ID:???
努力するなんて言う奴が実際に努力するのを見た試しがない
0200nobodyさん2009/01/17(土) 04:17:01ID:???
fputcsv($fp, $data)で、CSVに書き込まれる値が"で囲まれない
んですけど、なぜでしょう?デフォルトの挙動ではないのか。
ちなみに,
fputcsv($fp, $data, ',', '"')としても結果は同じだた。
0201nobodyさん2009/01/17(土) 04:26:55ID:???
まずスレタイに注意することから
0202nobodyさん2009/01/17(土) 05:31:32ID:3kZEDG7g
2chとか掲示板の本文検索とかってmysql使ってるの?
レス番、名前、メール欄、・・・・、本文、、
みたいな感じでテーブルにずらーと管理されてるのかな
想像絶するようなデータ量だと思うんだけど、そのようなことが本当に行われているのか。
それともphpでdatからこの部分参照、検索みたいなことやってるのかな。
気になってしょうがないので、なんとなくでいいので教えてください
0203nobodyさん2009/01/17(土) 08:35:28ID:???
2ch自体に検索機能はない
未来検索ブラジルってとこが2chのログをインデックス化して
検索できるようにしてるだけ
なんのDBが使われてるかはしらないが当然DBは使われている
簡単にいえばGoogleみたいなもんだ
0204nobodyさん2009/01/17(土) 09:52:48ID:???
未来検索ブラジルは全文検索エンジンsennaの開発元だな。
詳細はぐぐれば分かる(もしくは説明しても分からない)から大雑把に言うと、
DBからインデックス(本の末尾に単語とページ数の対応表があるだろ、あんな感じ)を事前に生成し、そいつを使って検索する。
(もしかしたら公開版のsennaより高性能なものを使っているかもな)

まあ、その辺は内部処理なので、呼ぶ側からは普通にSQLで検索かけているように見えるんだけどな。
昔の2chはMySQLだったので、いまもそうじゃないかと思うが、断言は出来ない。
それと、2chはPHPではなくPerlで動いている。
サーバー側の仕組みからして普通のwebサーバーとは異なるので、その辺のスクリプトと比較はできないけどな。
0205nobodyさん2009/01/17(土) 09:56:44ID:???
誰もperlで動いてることなんて聞いてないのに
0206nobodyさん2009/01/17(土) 10:00:53ID:???
>>205
>>202
0207nobodyさん2009/01/17(土) 10:03:16ID:???
説明下手でフイタw
0208nobodyさん2009/01/17(土) 12:22:02ID:???
>>202
DBに何使ってるのかは俺はシラネ。
他の人のレスにもあるように、大規模データのindex化の手法っていうのは色々あるので、
sennaの開発元でもあるし、頭の良い人は何かえーよーにやっとるのでしょう。
俺みたいな凡人は、頭の良い人が考えた技術を後からありがたーく使わせてもらうまでw

ちなみにgoogleなんかはDBのエンジンからして自社開発だけどね。
0209nobodyさん2009/01/17(土) 12:32:22ID:???
>ちなみにgoogleなんかはDBのエンジンからして自社開発だけどね。

(゚Д゚)ポカーン
0210nobodyさん2009/01/17(土) 12:33:54ID:???
>>208
無知お疲れ
ttp://ja.wikipedia.org/wiki/BigTable
0211nobodyさん2009/01/17(土) 12:44:29ID:???
>>210
無知はお前さんどすえ。
googleの講演会に1回ぐらい参加してみろ。
0212nobodyさん2009/01/17(土) 12:45:10ID:???
お前は何を言ってるんだ
0213nobodyさん2009/01/17(土) 12:47:16ID:???
2chってそんなに特殊なサーバー環境で動いてるのか。
0214nobodyさん2009/01/17(土) 12:51:01ID:???
そんなにってどこを指してそういってるんだw
0215nobodyさん2009/01/17(土) 13:02:38ID:???
>>211
盲目お疲れリンク先嫁
0216nobodyさん2009/01/17(土) 14:28:31ID:???
糞ばっか!
0217nobodyさん2009/01/17(土) 14:30:28ID:???
そんなんだから恥ずかしいコード書くんだよお前は
0218nobodyさん2009/01/17(土) 14:44:09ID:???
まあ、広い意味じゃBigTableもDBだから間違っちゃいないだろ。
MySQLとリプレース可能なものだと思われても困るがな。
分散DBですらない、OSIでの複数層をぶち抜くような謎システムだし。
0219nobodyさん2009/01/17(土) 14:48:15ID:???
2chがmysqlて初耳なんだけど。
だとしたらdat要らないんじゃ
0220nobodyさん2009/01/17(土) 14:54:25ID:???
>>218
別スレも荒らしてる融通の利かない馬鹿共みたいなので放置推奨

確かにあれは色々謎だらけだ。
0221nobodyさん2009/01/17(土) 15:01:47ID:???
>>219
誰もそんなことは書いてないが場を和ませる為に書いてくれたんだよな。うん。
0222nobodyさん2009/01/17(土) 17:43:22ID:???
2chのような1スレ1000レスできるスレを、1000スレほど管理し、本文や名前などを検索したいとき
php+MySQLで、datの場所だけはsqlで管理して、本文なんかはdatからphpで検索するのと
あらかじめdatの内容がMySQLにインポートされたものを、phpで検索するのとでは
どれくらい差が出てくるんだろうか
0223nobodyさん2009/01/17(土) 17:59:37ID:???
さんざん既出

というかファイルベースとDBの基礎
0224nobodyさん2009/01/17(土) 18:03:21ID:???
>>221
>>204
02251782009/01/17(土) 18:19:04ID:sXvdxnWv
おれの馬鹿ーーーーーー
utf-8は携帯も如徐に対応してきているからな。
utf8で行こう。
もちろんサニタライズとmysql_real_escape_stringはしような
0226nobodyさん2009/01/17(土) 18:25:47ID:???
>225
あうーはいまだにUTF-8を安心して使えないのだが。
0227nobodyさん2009/01/17(土) 18:30:17ID:sXvdxnWv
euc-jpだと携帯はみられないとちゃうん?
0228nobodyさん2009/01/17(土) 19:11:59ID:???
低レベルなやつばっかだなここは
0229nobodyさん2009/01/17(土) 19:44:31ID:???
おまえは低レベルのスレのおかげでここまで成長してこれたろ
0230nobodyさん2009/01/17(土) 21:55:20ID:???
>>227
最近は実はeucでも大抵対応してたりします。
でも、やはり携帯向けの出力はSJISが良いです。
携帯については、docomoがSJIS大好きでその過去の遺産を引きずり続けてるので仕方ない。

>>226
PHP側のソースコードはUTF-8で書いて、出力をSJISにすればいいです
入出力をSJISで扱う際は、SoftBank(3G)の絵文字がdocomoやauの絵文字とコードが被ってるのでご注意を
0231nobodyさん2009/01/17(土) 23:06:48ID:sXvdxnWv
携帯もちゃんとeuc-jpに対応せいや
0232nobodyさん2009/01/17(土) 23:13:45ID:???
>>226
詳しく
0233nobodyさん2009/01/17(土) 23:50:41ID:???
文字コードで思ったけど。

オレはおまじない的にSJISじゃなくてSJIS
0234nobodyさん2009/01/17(土) 23:51:38ID:Bf8FDb6Y
PHP入門者です。
PHPの仕事がしたいのですが、どんな試験に合格すればPHPの仕事が来ますか?
0235nobodyさん2009/01/17(土) 23:52:06ID:???
>>233
途中で送ってしもた。
SJISwinとかにするなぁ。

EUCもwin
0236nobodyさん2009/01/18(日) 01:18:16ID:8k82vHSn
>>234
試験なんかいらんよ。
趣味でPHPでサイトとか作ってみて、そこそこ作れるようになったら
未経験可のネットベンチャーに潜り込んでプログラマとしての実務経験を積む。
実務経験ができたら好きなとこに転職。ここらへんは努力次第。
0237nobodyさん2009/01/18(日) 01:59:05ID:NtnUHZUG
PHPの仕事か?
あるぞ。
少なくともrubyよりは
02381922009/01/18(日) 02:55:33ID:ahiVKrb+
どうすればいいですか?
0239nobodyさん2009/01/18(日) 02:58:30ID:???

が変なところに入っている。消せ。
0240nobodyさん2009/01/18(日) 03:00:42ID:???
*.php以外のファイルでphpを動作させる方法ってありますか?
具体的にはcssにphpを埋め込んで動的にWebページのレイアウト(背景画像など)を変えたいです
0241nobodyさん2009/01/18(日) 03:21:09ID:???
>>240
アパッチの設定で、
拡張子cssのファイルで
PHPが動作するように設定すればできるかも。
0242nobodyさん2009/01/18(日) 04:07:10ID:FyU5dhg9
PHP5でClass変数のアクセス権限(public, protected, private)が設定出来ますが、
これらの権限を確認する関数などはありますか?(クラス名と変数名を受け取って権限を返すような)
0243nobodyさん2009/01/18(日) 04:19:01ID:???
>>242
http://www.php.net/manual/ja/language.oop5.reflection.php
0244nobodyさん2009/01/18(日) 05:02:37ID:???
>>240
別に拡張子phpで指定して適切なcontent-type出力すればおk
0245nobodyさん2009/01/18(日) 08:08:39ID:5/8C6AIC
http://634.ayumu-baby.com/pukiwiki/index.php?PHP%2FPDO%2F%B9%B9%BF%B7(insert%2Cupdate%2Cdelete)

このページに

「bindParamは値が実行時評価なので、
コードがトリッキーに見える。保守性があ
まりよくない。よって、bindValue推奨。」

、、、って書いてあるのだが、本当?
0246nobodyさん2009/01/18(日) 08:56:31ID:FY9pgzCK
winXP, PHP5.2.3, Shift_Jis

「ソ」が入った単語がfalseになるみたいだけど、
マッチさせる方法ありますか?

<?php
error_reporting(E_ALL | E_STRICT);
mb_internal_encoding('Shift_Jis');

$str = 'ソウル在住のペーが主演する冬ソナはNGワードにする';
echo '<pre>';
var_dump(mb_ereg('ソウル|冬ソナ', $str));
die;

0247nobodyさん2009/01/18(日) 09:07:41ID:???
表とか能とかもチェックしてみたらどうよ
0248nobodyさん2009/01/18(日) 10:12:35ID:???
>>246
$strをutfに変換してからmb_eregにかける
0249nobodyさん2009/01/18(日) 10:20:35ID:???
>>248
それなんてエスパー?内部エンコ無視してUTFで処理できんの?
mb周りの他の設定がないと正しいアドバイスなんてできないだろ。
0250nobodyさん2009/01/18(日) 10:29:03ID:???
>それなんてエスパー?内部エンコ無視してUTFで処理できんの?

(゚Д゚)・・・・
0251nobodyさん2009/01/18(日) 10:35:03ID:???
>>246
sjisとeregをやめる。が正解
0252nobodyさん2009/01/18(日) 12:41:04ID:???
>>246
SJIS止めましょうというのが正解だけど、取りあえずは
mb_regex_encoding()
の指定で何とかなるかも。

知ってるかもしれないけど、SJISは2byte目に\x5c(要するに「\」)を含む文字があるので、
理由についてはその辺りを調べておくといいよ。
0253nobodyさん2009/01/18(日) 12:47:54ID:???
>>245
確かに、複雑な正規表現と一緒で、第三者が見るとパッと見で何やってる
のか分かり難い事はあるよ。でもそれってコードの書き方やコメントで
幾らでも回避出来るので、bindParamの利便性を否定する理由にはならないと思う。
0254nobodyさん2009/01/18(日) 12:50:23ID:???
>>233,235
携帯なら○-winは必須ですね〜

例えば、SJIS-win=cp932なので、
携帯絵文字を含む文字列を変換する際、○-winを付けておかないと上手くいかない。

○-winを付ける理由というのは、要するに扱う文字列の範囲が変わるって事だけど、
携帯向けの開発経験が無くて知らない人もいるかと思い、一応補足してみた。
0255nobodyさん2009/01/18(日) 12:59:52ID:2lVr2uZS
httpの領域から、httpsの領域にある.phpファイルをinclude()しようとしていますができません
これは仕様なんでしょうか?
サーバのドメイン(hoge.jp)は同じです

http://www.hoge.jp/m/hoge.php中で、以下のようにしてます
require_once('https://www.hoge.jp/m/hoge.inc.php');

0256nobodyさん2009/01/18(日) 13:08:49ID:???
hoge.inc.phpの結果が返ってくるけどそれでいいのかい
0257nobodyさん2009/01/18(日) 13:11:31ID:???
includeってURLは開けないんじゃなかったけ
0258nobodyさん2009/01/18(日) 13:12:23ID:???
あ、なんでもない今の発言取り消し
0259nobodyさん2009/01/18(日) 14:13:15ID:???
>>255
どっちでもいいがそもそもSSL通す意味あんの?
URLをインクルードした時点で帰ってくるのはテキストかHTMLなわけだけど
0260nobodyさん2009/01/18(日) 14:15:08ID:???
>>259
256で既出
0261nobodyさん2009/01/18(日) 16:01:53ID:2lVr2uZS
>>259
定数を設定してるただの設定ファイルなんで、、問題ないかなと。。
他にも答えてくれた方、ありがとうございました
0262nobodyさん2009/01/18(日) 16:35:33ID:???
>>252
「パソコン」
とか
「表示」とかね。
0263nobodyさん2009/01/18(日) 17:23:15ID:???
mb_*系は文字コード変換以外は使わない。
正規表現で使いたければ16進表記でpreg
0264nobodyさん2009/01/18(日) 21:25:09ID:SRgQAS5C
二つ質問があるんですが
$a="アホ";
という変数があって
それが既にある配列の中にあるかどうかを調べてその配列内の文字列のキーを取得したいんですがいい関数ある?

$array(1=>"バカ",500=>"アホ",960=>"クソ",)

で、「アホ」を返したい。


あと関係ない質問だが
md5()ってマジで重複した文字列にならないんですか?
0265nobodyさん2009/01/18(日) 21:29:43ID:???
>>264
array_search("アホ",$array);

ごく稀に重複する。心配ならSHA-1使え。
0266nobodyさん2009/01/18(日) 21:45:52ID:???
極当たり前なことを、知らない奴もいるんじゃまいかと妄想するアホな質問者にまともに答える必要なんぞない
0267nobodyさん2009/01/18(日) 21:48:14ID:???
>>264
質問が矛盾してる、アホは値であってキーではない。
array(264=> "バカ", 500=>"アホ", 268 =>"クソ")
0268nobodyさん2009/01/18(日) 21:57:35ID:???
>>265
SHA-1でも衝突する可能性はあるでしょ。天文学的に低い確率でだが
暗号学的ハッシュ関数を期待するなら、最近はSHA-1も攻撃に成功しちゃったので
SHA-2系列が無難
0269nobodyさん2009/01/18(日) 22:28:00ID:???
おいおい、何に使うのか知らんが、用途にみあった強度ってことを考えろよ
0270nobodyさん2009/01/18(日) 22:32:18ID:???
オヌヌメの開発環境教えて^^
0271nobodyさん2009/01/18(日) 22:32:34ID:???
EmEditor
0272nobodyさん2009/01/18(日) 22:34:39ID:???
サンキューベジータ^^
0273nobodyさん2009/01/18(日) 22:48:54ID:SRgQAS5C
>>265ー269
サンキュー
とりあえずやってみるわ
0274nobodyさん2009/01/18(日) 23:38:37ID:2lVr2uZS
PHP5で、PEARやFWを使わずにAtomを解析したいと思います
何か便利なツールをご存じないでしょうか?

よろしくお願いします
0275nobodyさん2009/01/18(日) 23:56:19ID:???
なんで使わずに?
■ このスレッドは過去ログ倉庫に格納されています