【PHP】下らねぇ質問はここに書き込みやがれ 67
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/04/11(金) 06:38:35ID:???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カテゴリ)の各スレで
0397377
2008/04/21(月) 14:25:00ID:8HZkrnGU1日10件もお問い合わせがないので、送信規制にかかってなさそうです。
アクセスも多くて500PVほどですし。
結構、簡単に考えていたのですが、色々と考えるべき事が多いのですね。。
0398390
2008/04/21(月) 14:25:02ID:eazv5Nmh0399nobodyさん
2008/04/21(月) 14:27:24ID:???そこから送信されるメールは一切受け付けてくれなくなるよ。
インターネットで死亡宣告を受けるようなもの。
数件ならいいけど、数百件にもなったら危険水域。
0400nobodyさん
2008/04/21(月) 14:30:40ID:???(PHP_OS != 'WINNT') ? error_reporting(0) : error_reporting(E_ALL);
0401nobodyさん
2008/04/21(月) 15:55:39ID:tP2T0+Jy編集できるアプリってありますか?
0402nobodyさん
2008/04/21(月) 16:13:15ID:???http://phpsqliteadmin.sourceforge.net/
0403nobodyさん
2008/04/21(月) 16:21:47ID:tP2T0+Jy0404nobodyさん
2008/04/21(月) 16:46:56ID:???0405390
2008/04/21(月) 16:47:11ID:eazv5Nmhサンクスコ
0406366
2008/04/21(月) 16:53:15ID:???ありがとございました。
0407nobodyさん
2008/04/21(月) 21:40:04ID:???0408nobodyさん
2008/04/21(月) 21:56:39ID:???無限ループって何だよ。
Fromを入力可能にするとか?ありえないし。
メールヘッダーインジェクション可能だと、サーバー止められるかもだけど。
>>390
作る時はE_STRICTでやってる。
なんか、本番環境でdisplay_errorがonの所多過ぎない?
ちなみにdisplay_errorはini_setしてもあまり意味無い。
iniでdisplay_error offで、ini_setでonにすると、
パースエラーの時、ini_set自体が実行されないのでパースエラーが表示されない。
逆も然り。
まあ、逆の場合は本番環境でパースエラーは無いだろうから良いっちゃ良いけど、
精神衛生上良くない気がする。
0409のし図
2008/04/21(月) 23:17:05ID:YYj5TAUNhttp://mk-board.net/koukoku.pm
穴みたいです
セキュリティに詳しい方教えて下さい
0410nobodyさん
2008/04/21(月) 23:22:27ID:???cgiは関連付けされてるから見えないみたい!?
0411のし図
2008/04/21(月) 23:28:53ID:YYj5TAUN何かと方法ってないのですか?
0412nobodyさん
2008/04/22(火) 00:07:08ID:???0413nobodyさん
2008/04/22(火) 03:24:49ID:???0414nobodyさん
2008/04/22(火) 11:42:41ID:dlLjXVhcDBがMysqlのmyisam使わなきゃで、行ロックの代わりをやる必要が・・。
0415nobodyさん
2008/04/22(火) 11:49:33ID:???0418nobodyさん
2008/04/22(火) 12:41:18ID:???相手になりませんでした
0419nobodyさん
2008/04/22(火) 13:17:40ID:???0421nobodyさん
2008/04/22(火) 15:32:48ID:???wwwlangとかあゆ板とかなゆ板にもあるんだよな
0422nobodyさん
2008/04/22(火) 18:20:03ID:???0423nobodyさん
2008/04/22(火) 21:57:48ID:???何かいい手法はありますか?
tempnamでprefixじゃなくてsuffixの指定ができれば悩む必要なかったのだが
0424nobodyさん
2008/04/22(火) 22:30:17ID:???何故に?
0425nobodyさん
2008/04/22(火) 22:31:44ID:FtmTZwRrtime() . '.tmp' じゃだめ?
0426nobodyさん
2008/04/22(火) 22:39:33ID:???コミットしちゃえば正式なファイル名を振るんでユニークなIDも付けるんですが
time() . ".tmp"だと1秒以内に同時に作成されたときに一意性が保証されないですよね
microtime()を使ってファイルを作ってみてダメならリトライを数回やるってのは
よほどのアクセスが無ければ大丈夫な気はしますが泥くさいかなあ
0427nobodyさん
2008/04/22(火) 22:42:11ID:???0428nobodyさん
2008/04/22(火) 22:44:15ID:???0429nobodyさん
2008/04/22(火) 22:47:02ID:???ありがとうございました
0430nobodyさん
2008/04/23(水) 02:18:22ID:Wcjf8rbSすみませんが対処法をお分かりになられる方がおられましたら教授よろしくお願いいたします。
1.PHPでフォルダ(中にフォルダ・ファイルが入っています)を削除(unlinkやrmdir)しようとrmdirコマンドを実行しましたが、「中にファイルなどが入っているので消せません」とエラーになりました。再帰的にファイルを削除するしか方法はないのでしょうか?
参考になる再帰的にファイル・フォルダを削除するロジックを
ご存じでしたらご教授よろしくお願いいたします。
2.同様に、フォルダ(中にフォルダ・ファイルが入っています)をコピーしようとcopyコマンドを実行したら「権限がありません」とエラーが表示されました。
当方の環境はlinux環境ではなくwindows環境ですので権限とか関係ないように考えていたのですが、
windows環境でもディレクトリに権限の設定が必要なのでしょうか?
(また、chmod関数で0777権限を設定しましたがコピーできませんでした・・・)
0432nobodyさん
2008/04/23(水) 03:07:35ID:???そのあたりのファイル関数は単体に使うものなので再帰的に処理するのが普通
環境依存してもいいとかならsystem()で"rm -rf foo"等のCLIコマンドを叩く方法もあるけどオススメしない
opendir()とか使ってロジックを組んでみるといいよ
0433nobodyさん
2008/04/23(水) 05:14:59ID:???既出だが、異常系の処理をしっかりと対応するなら、JP1とかがお勧め。
そういうのを最初から実装するのは手間とお金が掛かるし、
なんでもphpという一つの技術だけで解決しない方がいい。
0434nobodyさん
2008/04/23(水) 05:26:30ID:???0435nobodyさん
2008/04/23(水) 05:51:15ID:???0436nobodyさん
2008/04/23(水) 06:25:52ID:???0437nobodyさん
2008/04/23(水) 08:33:19ID:???0438nobodyさん
2008/04/23(水) 09:06:47ID:???0439nobodyさん
2008/04/23(水) 10:30:51ID:???//  ̄ \\
//--.-- -─\\
// (● ●) ((●(●) \ 地震とかどこの田舎だよ
.| |.| ( . ((_人_人__) | _ _== =
\\ ⌒ ` /,/ | |  ̄ ̄ ̄  ̄| ||
ノ \\| | | | ||
/´ | | | |
| l | | |||
ヽ -一ー_~、⌒)^),-、 | |_________| |
ヽ ____,ノγ⌒ヽ)ニニ- ̄ | | | = =
0441nobodyさん
2008/04/23(水) 23:30:52ID:???のエラーが発生していて困っています。
具体的には、MYSQLに接続してmysql_queryを発行した後に結果セットが返却されません。
このエラーが発生した直後の接続は、半分程度の確率で以下のエラーが発生してDBへの接続エラーが発生します。
:mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Lost connection to MySQL server at 'reading initial communication packet', system error: 0
対処方法がありましたら、教えて下さい。
宜しくお願いします。
0442nobodyさん
2008/04/23(水) 23:31:14ID:k1ODucws0443nobodyさん
2008/04/23(水) 23:31:28ID:???0444nobodyさん
2008/04/24(木) 00:22:52ID:???$fp = fopen("./$abc.txt", "r");
if($fp != null)
処理〜
というように組んでいるのですが、
この時、ファイルが存在しておらず、$fpの値がnullだった場合でもfcloseで閉じる必要はあるのでしょうか?
0446nobodyさん
2008/04/24(木) 00:59:05ID:LaHdtlHM0447nobodyさん
2008/04/24(木) 00:59:25ID:???しかもfopenで失敗したのだからファイルは開けてないのに何故閉じる必要があるのだ
あけてないものを閉じる意味が理解不能
0448nobodyさん
2008/04/24(木) 01:01:45ID:???それは素人の意見ですね。
どうせfopenの前にfile_existsとかで調べろといっているのでしょうが、
file_existsとfopenの間にファイルが消されたらどうするんですか?
マルチタスクOSなのだからありえる話です。
0449nobodyさん
2008/04/24(木) 01:01:47ID:???0450nobodyさん
2008/04/24(木) 01:03:10ID:???0451nobodyさん
2008/04/24(木) 01:04:50ID:???0452nobodyさん
2008/04/24(木) 01:08:05ID:???ネタを持って来るんだ。
0453nobodyさん
2008/04/24(木) 01:09:47ID:???0455nobodyさん
2008/04/24(木) 01:28:00ID:???ダメ出しされてるのかよw
0456444
2008/04/24(木) 01:32:57ID:???ありがとうございました。fcloseは必要ないようですね。
fopenで処理を分けるのもよく無さそうなので再考してみます。
0457nobodyさん
2008/04/24(木) 02:08:48ID:???0458457
2008/04/24(木) 02:09:11ID:???0459nobodyさん
2008/04/24(木) 02:13:26ID:???0460nobodyさん
2008/04/24(木) 02:40:13ID:LhY+BYrBfloor(7/2) とするのが一般的ですか?
0461nobodyさん
2008/04/24(木) 03:19:38ID:???C99 と合わせたかったら 0 に近付くように丸める。
intval(7/2) か整数型へのキャスト (int)(7/2) で。
0462nobodyさん
2008/04/24(木) 04:00:47ID:???どっちの方法とか言ってる時点でウンコ。
0463nobodyさん
2008/04/24(木) 04:19:28ID:???0464nobodyさん
2008/04/24(木) 04:21:02ID:???それで満足気に話しているお前が痛々しいだけ。
file_existsで存在を確認した後に、fopenの処理をするまでの間に
ファイルが存在しなくなる可能性はある。
1日10万PV位のサイトを運営していると、そんなケースなんて日常茶飯事。
まぁ、素人に言ってもしょうがないがwww
0465nobodyさん
2008/04/24(木) 04:24:12ID:???0466nobodyさん
2008/04/24(木) 04:36:22ID:???煽りよりずっといいよ。
0468nobodyさん
2008/04/24(木) 05:26:59ID:???0469460
2008/04/24(木) 06:31:20ID:1f8tGK11ありがとうございます
0470nobodyさん
2008/04/24(木) 10:09:19ID:???やっぱそこまでファイルの存在の確実性を意識しないとダメ?
if(($IN = @fopen($file,'r+')) < 0)
これじゃダメ?
あと、書き込みの時は、物理的ロック(自作ロック)して、
ファイルオープンしてflockってしてるんだけど、これでもやっぱ不十分?
物理的ロックってのはロック用ファイル作成する方法です。
0471nobodyさん
2008/04/24(木) 10:32:12ID:???0472nobodyさん
2008/04/24(木) 11:29:16ID:???レインコートを着ながら、傘を差すようなものだな。
頭にウジでも湧いているじゃないだろうか?
0473nobodyさん
2008/04/24(木) 11:33:25ID:???0474470
2008/04/24(木) 11:47:44ID:???でもファイル使わないといけない時もあるしな。RSSとか。
0476nobodyさん
2008/04/24(木) 12:09:45ID:???データベースも実体はファイル。
ファイルを操作するI/Fが違うだけ。
使うばかりじゃなくて、仕組みを理解しないと、応用が効かないよ。
0477470
2008/04/24(木) 12:27:26ID:???> if(($IN = @fopen($file,'r+')) < 0)
これじゃまだダメだと思う?
0479nobodyさん
2008/04/24(木) 13:09:05ID:RVXwLuUyttp://example.com/KEYWORD
みたいなURLってPHPでどうやるの?
index.php?←消せるの?
0481479
2008/04/24(木) 13:17:47ID:RVXwLuUyPATH_INFOって↓みたくなるんじゃないの?
ttp://example.com/index.php/KEYWORD
0482nobodyさん
2008/04/24(木) 13:20:33ID:???0483nobodyさん
2008/04/24(木) 13:30:51ID:???0484nobodyさん
2008/04/24(木) 14:23:25ID:???> やっぱそこまでファイルの存在の確実性を意識しないとダメ?
それは要求次第。
単純に読み取りしたい時は調べても無駄だからやらない。
状態が分かってもそれは fopen() を呼んだ時点の状態ではないから。
>>444 が言う「ファイルが存在する場合のみ処理」の場合は
存在が分かればいいのだから file_exists() がより妥当っていうお話でしょう。
質問にまともに答えず別の話にもってく奴が悪いんだけどな。
あと fopen() の返り値はリソース型もしくは論理型の false なので
比較は fopen() !== false または is_resource(fopen()) で。
> ロック用ファイル作成する方法
システムコールのロックが使えない、欠陥がある場合や
mandatory lock したい時は使わる一つの手だね。
0485nobodyさん
2008/04/24(木) 14:37:34ID:WKXs89Yeヘッダとフッタだけ出力する.PHPに 中身のコンテンツを表示させる.PHPを
includeさせているとします。
このとき、中身のPHPにheader関数でリダイレクトさせる機能はつけられないんでしょうか?
この機能はそれより前に何も出力してないことが条件とありますが、
(親の.phpが)ヘッダを出力してるから無理?
テストしたところ動かないです。 これは上記の理由によるものですか?
0486nobodyさん
2008/04/24(木) 14:44:04ID:???test.phpの中身
フッタ
コンテンツ(ここは外部ファイルをインクルードして表示)
ヘッダ
んでtest.phpではじめの出力でheaderを送信させてリダイレクトさせたいということか?
0487nobodyさん
2008/04/24(木) 14:44:23ID:???0488485
2008/04/24(木) 14:57:52ID:WKXs89Ye<header></header>
<body>
<?php
include "nakami.php";//中身を読み込み。この中でリダイレクトさせてる(header()で)
?>
</body>
</html>
って感じです(外側の.php)
こういうやり方だと、リダイレクトしないんです。
0489485
2008/04/24(木) 15:02:12ID:WKXs89Yeどうもです
リダイレクトの関数を設置してるのは、読み込まれている側(コンテンツ部分)の
.phpです
0492nobodyさん
2008/04/24(木) 15:09:14ID:???で、なんでリダイレクトする必要があるわけ?
アフィ厨で不正やろうってわけじゃないよな
出力させたいページをそのコンテンツ部分に読み込ませればいいじゃん
0493485
2008/04/24(木) 15:14:28ID:WKXs89Ye結局ムリってことですよね、親のphpに出力されてるから…
この場合はjavascriptを中身の.phpに入れるしかないですよね?
>>492
フォームで、アンケート.php に「トップ.php」「確認.php」「完了.php」を
読み込ませてるんです。(ブラウザに表示されるURLは常にアンケート.php)
完了まで行ったら二重送信防止にリダイレクトさせたくて。。 って事情でした
0494nobodyさん
2008/04/24(木) 15:17:33ID:???アンケート.phpにいろんなファイルを読み込ませて一つのファイルで処理してるように見せかけたいの?
なんかあなたがやってるのは無駄な処理だな
0496nobodyさん
2008/04/24(木) 15:24:59ID:???■ このスレッドは過去ログ倉庫に格納されています