【PHP】下らねぇ質問はここに書き込みやがれ 60
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/12/01(土) 21:18:36ID:MnWwNIk0PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1195204145/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0773nobodyさん
2007/12/16(日) 06:22:24ID:???ID, Passwowd を POST で送信後、ページ情報が表示されるような仕組みでの
ログアウト後で、別の誰かが引き続きそれを利用した場合、
1. ブラウザにページキャッシュ許可してある
戻るボタンである程度履歴丸見え
2. キャッシュ拒否
戻るボタンでのフォームデータの再送信で認証なしログイン可
3. キャッシュ拒否、認証時トークン確認
戻るボタンなら基本的に大丈夫だが、アカウント情報自体は POST 送信している
(HTTP Header を見ればアカウント情報丸見え)
家族、もしくは第三者と共用した場合、3. を利用したとしても
完全にログアウト、アカウント情報を削除するには、結局ブラウザ再起動、
もしくは銀行サイトのように、別ウインドで操作させ、
終わったら閉じるような方法しかないのでしょうかね
(あくまでブラウザ上のみのことで、パケットモニタやロガー等は対象外での話です)
0774773
2007/12/16(日) 06:47:02ID:???いまちょっとIDの出し方調べますので舞っててください
0776773 ◆TUKbEoI4gE
2007/12/16(日) 07:17:08ID:???>>774
ご指摘ありがとうございます
>>775
認証が必要なページからログアウト後、ブラウザを再起動していない状態で、
1. 認証サイト内で表示したページ内容を閲覧することは不可
2. 戻るボタンのフォームの再送信で再ログイン不可
3. フォームの再送信処理の動作自体もさせたくない(戻るボタンを利用させない)
3. は、トークンを利用すれば、再送信したとしてもログインは出来ませんが、
ブラウザに保存されている正しいアカウント情報を
再送信している動作が個人的に気に入らないからです
この場合認証ページは別のウインドで表示させ、ログアウト後は
閉じるような動作で実現するしかないのかどうか、とった質問でした
0778773 ◇TUKbEoI4gE
2007/12/16(日) 07:23:10ID:???ご指摘どうもありがとうございます。
0780773 ◆TUKbEoI4gE
2007/12/16(日) 07:30:49ID:WyggOTQ8ネタみたいでなんかすみません
0781nobodyさん
2007/12/16(日) 07:32:02ID:???0782nobodyさん
2007/12/16(日) 10:15:50ID:???phpの創始者がyahooのエンジンニアとして働いてるからだよ
0785nobodyさん
2007/12/16(日) 11:22:36ID:???結局、技術力次第ってことだよね。
0786nobodyさん
2007/12/16(日) 15:18:56ID:dOagqU2Jしょせんホームページ、小規模も大規模もないんだな。
0787nobodyさん
2007/12/16(日) 18:16:50ID:+mFHJ4J51.入力フォーム(値はPOSTで送信)
↓
2.確認画面(POSTの値をサニタイズして確認画面に表示する、formのhiddenにPOSTの値をセット)
↓
3.書き込みました画面(POSTの値をサニタイズして書き込み)
そこで2の時点で、ソースを書き換えられて、hiddenの値が別のものに変えられてしまう可能性が
あるのですが、値のチェックは2と3で両方やったほうがいいでしょうか?
0788nobodyさん
2007/12/16(日) 18:20:00ID:EyVxjuhb何も表示されません・・・
<?php
header("Content-type: image/png");
$width = 300;
$height = 200;
$img = imagecreate($width, $height);
imagecolorallocate($img, 0, 0, 0);
imagepng($img);
?>
XPでXAMPPで作った環境なのですが、
どこがいけないのでしょうか?
よろしくお願いします。
0790788
2007/12/16(日) 18:28:57ID:EyVxjuhbphpinfo()で確認すると、
PNG Supportはenabledになっています。
どうかご指導ください。
0791nobodyさん
2007/12/16(日) 18:29:23ID:5CFEiBpt3でもサニタイズするなら、どうでもいい気がする。
0792nobodyさん
2007/12/16(日) 18:34:29ID:???hiddenで値を持ちまわすのじゃなくてsessionを使えばいい
http://jp.php.net/session
>>788
普通に表示される
<?php
var_dump(gd_info());
でgdがサポートされてるかとpngがサポートされてるかのチェック
あとエラーがでてないかもチェック。ついでに言うと最後の?>はつけない方が良い
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL);
header("Content-type: image/png");
$width = 300;
$height = 200;
$img = imagecreate($width, $height);
imagecolorallocate($img, 0, 0, 0);
imagepng($img);
0793788
2007/12/16(日) 18:40:45ID:EyVxjuhbありがとうございます。
gd_info()で確認しましたが、ちゃんとtrueになっていました。
提示していただいたコードも試しましたが、やはり何も表示されず・・・
エラーも何も出ないのでお手上げ状態です・・・
引き続きご指導お願いします。
0794nobodyさん
2007/12/16(日) 18:43:50ID:5CFEiBpthiddenに持たせるのは悪くないと思ってるけど、そういう考えは異端なの?
自分がセッション使うときは、ログインしてるユーザのIDと、若干のユーザ情報ぐらいしか
持たせてない。
0795nobodyさん
2007/12/16(日) 18:49:03ID:???0797nobodyさん
2007/12/16(日) 18:55:31ID:5CFEiBpt3の確認画面まで進めた状態(この状態をAとする)で、確認しないで URL直接指定とかで、
1の入力画面を再度開いて3の確認画面まで進めて(この状態をB)、やっぱりやめて
Aまで戻って登録すると Bが登録されたりしない?
間違ってたらごめん。
0798nobodyさん
2007/12/16(日) 18:59:12ID:5CFEiBpt片方でAを入力して、もう一方でBを入力して、Aの方を登録したつもりがBが登録
されたりとか。
0799788
2007/12/16(日) 19:02:48ID:EyVxjuhbこれは動作環境の問題でしょうか・・・
IEでテストしてたのですが、
今ためしにFirefoxでテストしたらちゃんと画像が表示されました。
単にブラウザの問題なのでしょうか・・・
0800788
2007/12/16(日) 19:03:56ID:EyVxjuhb>796
です
0803nobodyさん
2007/12/17(月) 02:02:01ID:???非効率も何も普通はセッション使う。
何をもって非効率と言っているのか意味不明。
俺は、こういうシステムはいくつも作ってきたけど、
このやり方でやって来ている。
一応、同期の中では一番最初に主任に昇進している。
今はSEとしてリーダーやっているけど、リーダーといいつつ、
工数管理だけじゃなくて、プログラマーの面倒もよく見ている。
上司からは、そんな仕事は君の仕事じゃないと言われるが、
品質管理の責任者としてプログラムまで俺はしっかり見ている。
ついで言うと、プロマネの仕事も俺がやっていたりするんだけどね。
実は、会社の中で最年少で係長になれるんじゃないかともいわれている。
大学では全然違う分野で、プログラムいじったのは会社に入ってから、
自分でも、よくココまでやったなぁと思っているよ。
まぁ、全く違う分野の俺でも出来るんだから、頑張ればできると思うよ。
0804nobodyさん
2007/12/17(月) 02:30:04ID:???0805nobodyさん
2007/12/17(月) 03:01:54ID:???0806nobodyさん
2007/12/17(月) 06:32:07ID:???2で出力した値と3で書き込むときの値が違うときはどうするんだよ?
0810nobodyさん
2007/12/17(月) 07:31:24ID:???0811nobodyさん
2007/12/17(月) 07:32:27ID:???0812nobodyさん
2007/12/17(月) 07:45:18ID:???それ以外に使う必要ない!絶対に余計なバグを増やす
チームでやってたらセッションIDがかぶらないよう管理するのも面倒
0814nobodyさん
2007/12/17(月) 07:59:37ID:???>>803
掲示板の書き込みにセッションとか言ってる時点で
素人丸出しですからw
809 :nobodyさん:2007/12/17(月) 07:24:43 ID:???
>>803
非効率も何も普通はセッション使う
2ちゃん掲示板の書き込みもセッション使ってるの?w
810 :nobodyさん:2007/12/17(月) 07:31:24 ID:???
セッションなんてやたらめったら使うもんじゃないよ
811 :nobodyさん:2007/12/17(月) 07:32:27 ID:???
セッションは必要最低限のデータだけ持ち回すものじゃない?
812 :nobodyさん:2007/12/17(月) 07:45:18 ID:???
セッションなんてログインしたときだけ値を持たせる
それ以外に使う必要ない!絶対に余計なバグを増やす
チームでやってたらセッションIDがかぶらないよう管理するのも面倒
0816nobodyさん
2007/12/17(月) 08:09:45ID:???普通チームリーダーには人事権まで無いだろ。ニートばればれ
0817nobodyさん
2007/12/17(月) 08:14:32ID:???0818nobodyさん
2007/12/17(月) 08:25:02ID:???ってのが質問でしょ。
両方やればいいじゃない、たいした手間でもないんだろうし。
> セッションしないと>>806の対策はできないと思うが
対策ってのの意味がわからんけど2の値が書き換えられたりして不正だったら
3でチェックして書き込まなきゃいいだけの話じゃないの。
セッションつかいたきゃ、使ってもいいと思うけどね。
本質的にはセッション使うかどうかはどうでもいい話(使わなくても問題ないって意味で)
0819nobodyさん
2007/12/17(月) 08:34:57ID:???0820nobodyさん
2007/12/17(月) 08:36:27ID:???> 片方でAを入力して、もう一方でBを入力して、Aの方を登録したつもりがBが登録
> されたりとか。
ところで「非効率も何も普通はセッション使う 」
とかいってるやつって、こういうのはどうするつもり?
0821nobodyさん
2007/12/17(月) 08:37:53ID:???pha氏よりレヴェルのひくいやつにひがまれたりして彼がうざがってる可能性はありますが
0823nobodyさん
2007/12/17(月) 08:40:21ID:???>> 片方でAを入力して、もう一方でBを入力して、Aの方を登録したつもり
ってのがマヌケ過ぎる。
でも、そんなバカチンの事も考えてあげなきゃね(爆)
0824nobodyさん
2007/12/17(月) 08:44:31ID:???確認画面表示時にsessionとhiddenに値をセットして
投稿時に確認
まぁhidden値書き換えとかしてくる確信犯相手の場合は
そのシステムの影響力とかにもよるが放置で登録するな
0825nobodyさん
2007/12/17(月) 08:48:33ID:???それ以外でセッション使うのは意味がない、余計な作業
0826nobodyさん
2007/12/17(月) 08:49:34ID:???0827nobodyさん
2007/12/17(月) 08:52:14ID:???0828nobodyさん
2007/12/17(月) 08:52:18ID:???最終画面で全てチェックするんだから
途中で書き換えられても関係ないじゃん
0829nobodyさん
2007/12/17(月) 08:52:53ID:???> でも、そんなバカチンの事も考えてあげなきゃね(爆)
これのどこがマヌケなんだろう。
マヌケだ「ということにしておきたい」ってやつか
> 結局セッションを使わないと値の書き換えには対応できなくない?
掲示板でしょ。書き換えたっても問題ないでしょ。「2」ってのは
書き込む人間が確認するための画面なんだから。
0830nobodyさん
2007/12/17(月) 08:55:04ID:???hidden値書き換えられても問題はないんだよな
禁止ワードとかのチェックは両方でやれば良い訳だし
>>825
それはスパム対策であって書き換えの対策になるとは思えない
0832nobodyさん
2007/12/17(月) 08:55:51ID:???> 投稿時に確認
掲示板で確認画面の内容と「3」で実際に投稿される内容が
同一でなければならない、とかいう仕様をおもいつくやつって、
頭悪いなあ
> そのシステムの影響力とかにもよるが放置で登録するな
影響力もクソもないよ。確認画面見るのは(もし値を書き換えるとしたら)
その書き換える当人だけなんだから
0833nobodyさん
2007/12/17(月) 08:56:50ID:???ものによりますね。
0835nobodyさん
2007/12/17(月) 08:57:54ID:???こういうこというやつって、掲示板での「2」の画面の意味が全くわかってないんだよね
0836nobodyさん
2007/12/17(月) 08:59:55ID:???0837nobodyさん
2007/12/17(月) 09:01:37ID:???思考停止してる頭悪いノータリンってことが証明されてる感じだよね。
よくいるけどこういうタイプのバカって
0838nobodyさん
2007/12/17(月) 09:08:11ID:???>掲示板で確認画面の内容と「3」で実際に投稿される内容が
>同一でなければならない、とかいう仕様をおもいつくやつって、
>頭悪いなあ
パケット改ざんされて、ユーザーが入力した値が第三者に書き換えられるケースも考えられないんですねw
0839nobodyさん
2007/12/17(月) 09:10:07ID:???数行のコードで済むのに。
そんな労力いるようなコードでもないと思うんだが
0840nobodyさん
2007/12/17(月) 09:11:46ID:???そんなケースはないですね
誰がおまえみたいなクズが書いたごみのような投稿を書き換えようと思うの?
0841nobodyさん
2007/12/17(月) 09:14:46ID:???0842nobodyさん
2007/12/17(月) 09:18:50ID:???>掲示板で確認画面の内容と「3」で実際に投稿される内容が
>同一でなければならない、
理由として
「パケット改ざんされて、ユーザーが入力した値が第三者に書き換えられるケース」
を防ぐため、と、言ってみたら。
恥かくだけだと思うけど(笑)
そんなこと考えて掲示板の確認画面見てるのはおまえぐらいだよ
0844nobodyさん
2007/12/17(月) 09:24:25ID:???確認画面がないから
パケット改ざんされて、入力した値が第三者に書き換えられるケース
が防ぎきれないもんなあ
0845nobodyさん
2007/12/17(月) 09:27:46ID:???何か裁判沙汰になったら不利になるっていう、ただそれだけ。
0847nobodyさん
2007/12/17(月) 10:32:21ID:???0848nobodyさん
2007/12/17(月) 10:35:39ID:???0849nobodyさん
2007/12/17(月) 10:54:42ID:???0850nobodyさん
2007/12/17(月) 10:55:44ID:???0851nobodyさん
2007/12/17(月) 11:11:58ID:???処理的に無駄なことは結果的にサーバー負荷になり
バグを増やす原因になる
どこからでもアクセスできるグローバル変数みたいなもんだから
メモリも食うし、キャッシュファイル容量も食う
0852nobodyさん
2007/12/17(月) 11:14:30ID:???簡単に判断する方法ってありますか?もしくは組み合わせのパターンとか。
mod_php4.c
mod_php5.c
mod_php.c
sapi_apache2.c
なんかBSDやらLinuxやらで違ったりするので…。
0853nobodyさん
2007/12/17(月) 11:20:11ID:???いまどきの性能を持ったマシンなら気にしなくてもいいんじゃないの
セッションを使ったらバグが増えるって・・・どんだけセッション嫌いなの?wあんたwww
0854nobodyさん
2007/12/17(月) 11:25:51ID:???個人で小さなサイト作ってる程度じゃわからないだろうな
早い話がグローバル変数は必要最低限に使えということだよ!
0855nobodyさん
2007/12/17(月) 11:27:38ID:???セッションを使わないってのには同意できない。
要は設計の問題だろ。
0856nobodyさん
2007/12/17(月) 11:27:53ID:???>>851じゃないけど、バグの原因になりやすそうなものを不用意に導入しないというのは当然。
データセンタの巨大さを考えれば、パフォーマンスの重要さは自明だとは思う。
ところで、PHPのセッション情報はファイルにシリアライズされて保存されるんでしょ。
明示的に廃棄しなかったら、ずっと残ってしまうの?誰か教えて。
0857nobodyさん
2007/12/17(月) 11:28:29ID:???0858nobodyさん
2007/12/17(月) 11:32:00ID:???書き込みのセッションIDと
IDが、かぶらないようにしないといけない
それだけで手間だよ!
0860nobodyさん
2007/12/17(月) 11:36:05ID:???セッションの変数名が同じじゃないように管理しないといけない
セッション使う数が増加するほど、変数の重複管理が面倒
チームで作業しにくくなる
0862nobodyさん
2007/12/17(月) 11:49:31ID:???1つのセッションに誇大なデータが入ってるということは
その誇大なデータを常に持ってページ移動するんだから
かなりメモリの無駄使いだね
0863nobodyさん
2007/12/17(月) 11:52:50ID:???0864856,859
2007/12/17(月) 11:57:48ID:8ZC8+hJ8バラバラにすればパフォーマンス上がるの?
確認はしてないけど、キャッシュファイルはセッション単位で作られるとすれば、$_SESSIONに対して
複数のキーを使用して分割しても、シリアライズに掛かる負荷は変わらない気がするんだけど。
0865nobodyさん
2007/12/17(月) 12:03:42ID:???キャッシュファイルはセッション単位でつくられるから
ばらばらにしないと
キャッシュファイル容量は大きくなるよ
セッションを取り出すときに大容量のキャッシュファイルを読むわけだから
その分、負荷がかかるよ
0866nobodyさん
2007/12/17(月) 12:06:31ID:???0867856,859
2007/12/17(月) 12:07:24ID:8ZC8+hJ8$_SESSION は、複数のキーを持っていても、それらのキー全体で一つのセッションでしょ?
仮に、キー毎にキャッシュファイルが作られているとしたら、ファイルI/Oの負荷の方が問題。
(多分、PHPはそんな実装されていないと思うが)
0868nobodyさん
2007/12/17(月) 12:07:31ID:???ログを1つのファイルで管理するより
日付順にわけて複数ファイルで管理した方が負荷が少ない
0869nobodyさん
2007/12/17(月) 12:11:11ID:???0870nobodyさん
2007/12/17(月) 12:11:37ID:???0871nobodyさん
2007/12/17(月) 12:17:29ID:???ひとつのファイルを開くのにプロセスが1つ必要
単純に考えても分割してある複数ファイルを開くことは
複数プロセスで処理させるマルチスレッドと同じことなので早い
■ このスレッドは過去ログ倉庫に格納されています