【PHP】下らねぇ質問はここに書き込みやがれ 45
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/12(土) 16:42:48ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0521nobodyさん
2007/06/02(土) 22:54:57ID:???入力チェックってjavascriptでやるほうが簡単なの?
0522441
2007/06/02(土) 22:59:43ID:4co9FcJHttp://php.benscom.com/manual/ja/function.flock.php
例 623. flock() の例
<?php
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 排他ロックを行います
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // ロックを解放します
} else {
echo "ファイルをロックできません!";
}
fclose($fp);
?>
だな ロックを掛けたら解除しる ってとこか
0523nobodyさん
2007/06/02(土) 23:00:02ID:???だから、そんなもんは、phpだろうとjavascriptだろうとperlだろうと何だってできるんだよ。
迷ってないで、まずは作れよ。
0524nobodyさん
2007/06/02(土) 23:02:14ID:???どっちがいいか?と言われれば、両方組み合わせるのが一番いいのは言うまでもない。
javascriptは画面遷移を伴わないでチェックできる利便性があるが、
クライアント環境に依存するので、javascriptオンリーは避けたほうがいい。
0527nobodyさん
2007/06/02(土) 23:28:05ID:???読みとりの時は排他ロックじゃなくて、LOCK_SH LOCK_UN か、
書き込みの時は LOCK_EX LOCK_UN だね
getData();とかは素直にそのままreturnでカウンタの値(or 戻り値を含むarray)を返した方が良いと思う
この辺は上で他の人もいっていたけど、Javaの入門の方を見た方がいいか、、setter getterあたりとか
0528nobodyさん
2007/06/02(土) 23:30:45ID:???>>521の言い方だとjsかphpかどっちか片方にしか掛けなさそうだから言ったまでさ
確かに俺も入門者に接する態度じゃなかったな、言い直すか
>>521
どっちでもやっても大差は無いよ
でも、jsで入力チェックしただけだと悪意の有るユーザーが不正な文字列を簡単に送る事が出来てしまう、だからphp側でもチェックするのは必須
0529441=522=527
2007/06/02(土) 23:31:09ID:4co9FcJH全部>>456に対してのレスです
0530nobodyさん
2007/06/02(土) 23:43:52ID:???0532nobodyさん
2007/06/03(日) 02:27:21ID:V2jBxdII0533nobodyさん
2007/06/03(日) 02:31:49ID:???0534nobodyさん
2007/06/03(日) 02:33:06ID:???0535nobodyさん
2007/06/03(日) 03:09:39ID:QBl67X/1一時作業用ファイルを作成して
別のプロセス間で共有させたいのですが、
どうやりゃいいですか?
0536nobodyさん
2007/06/03(日) 03:17:59ID:???教えてもらってもセキュリティつかれるだけ。
おまえにはまだ早い
0537nobodyさん
2007/06/03(日) 03:29:24ID:QBl67X/1共有鯖ではないので多分大丈夫です
session.save_pathというのがありました
これを使えばいいと思うのですが
もしかしてセッションを削除する時に
同時に削除されてしまったりするのでしょうか
ワイルドカード使って削除しているのか
ただ単に全削除しているのかによると思いますが
0538nobodyさん
2007/06/03(日) 03:31:44ID:???おれならおまえの鯖をクラックするのにそう時間はかからないよ
0539nobodyさん
2007/06/03(日) 03:41:19ID:???0541nobodyさん
2007/06/03(日) 04:49:53ID:???( =д=) 世の中は質問があれば答えがある。その2つしかないんだっ!
ハ∨/^ヽ
ノ::[三ノ :.'、
i)、_;|*く; ノ
|!: ::.".T~
ハ、___|
0544nobodyさん
2007/06/03(日) 12:17:38ID:yVYYmrsT不定期にエラーが発生してしまって困っています。
ここ1ヶ月試行錯誤でコードをあれこれいじったのですが、どうしてもエラーが消えないんです。
アドバイス頂けないでしょうか?宣しくお願いします。
【コード】
$fp = @fopen($fileName, 'r');
if ($fp) {
while ($line = @fgets($fp)) {
if ($line == FALSE || $line == "") {
break;
} else {
// ファイル処理
}
}
@fclose($fp);
}
【エラーメッセージ】
「while ($line = @fgets($fp)) {」の部分で発生
メッセージ「fgets(): 10 is not a valid stream resource」
【発生頻度】
1000アクセスに2,3回程度
【再現性】
アクセス負荷、時間帯、処理の内容に関係なく不定期に発生
0545nobodyさん
2007/06/03(日) 12:56:46ID:XtY/sQS4(初期化処理とかなんですが・・)
2回目以降にリクエストされても、その処理は通したくないのです。
0547nobodyさん
2007/06/03(日) 13:01:47ID:???「試行錯誤であれこれいじった」とかいう情報に何の意味があるの?
頑張ったんですけどだめでしたとかいうポーズ?
0550nobodyさん
2007/06/03(日) 13:17:57ID:XtY/sQS4それって処理終わったら消すってこと?(ファイル自体を)
PHPってそんな方法でしか実装できないの?
0552nobodyさん
2007/06/03(日) 13:23:01ID:???要件があいまいすぎてわけわからん。
本当に一回しか実行しないなら、一回実行して消せばいいのはあたりまえすぎだし。
セッションごとに一回って意味にとれなくもないし、妙に回答のしづらい質問だな。
0553nobodyさん
2007/06/03(日) 13:24:46ID:XtY/sQS40554nobodyさん
2007/06/03(日) 13:31:53ID:???pconnectとかだったらDBがやってくれるよ
2回目以降の接続なら自動的に既存の接続を使いまわしてくれる
それ以外でも1回目だけとか考えるより、対象の処理が完了していたら
実行しないとかそういう風に考えるのがまあ普通だな例外もあるが
0555nobodyさん
2007/06/03(日) 13:32:47ID:???あと何でいきなり口調が偉そうになってんの?
0556nobodyさん
2007/06/03(日) 13:33:10ID:???0557nobodyさん
2007/06/03(日) 13:36:21ID:XtY/sQS4ありがとうございます。
参考になりました。
0558nobodyさん
2007/06/03(日) 13:37:34ID:XtY/sQS4いや特にコネクションプーリングがやりたいわけじゃなく、PHP使って初期化処理って普通どうすんのかなぁと気になって。
上でも書いたけどコネクションプーリングは例えです。
0559nobodyさん
2007/06/03(日) 13:55:14ID:9Yu/VUSy0560nobodyさん
2007/06/03(日) 14:30:00ID:???0561nobodyさん
2007/06/03(日) 14:36:04ID:9Yu/VUSy存在しないメソッドが呼ばれたときに、呼ばれるメソッドを定義できて、
そのメソッド名とパラメータがえられれば実装できます。
が、今一度マニュアルを漁ってみたところそのような機構はないようです。
0562nobodyさん
2007/06/03(日) 14:43:05ID:???一応PHP4にもある、4.3.0以降オンリーで5のより使いにくいけどな
http://jp.php.net/overload
でも5でやるのがおすすめだな
0563nobodyさん
2007/06/03(日) 14:50:10ID:9Yu/VUSyありがとうございます。こんなところにあるは思いませんでした。
一応リファレンスは通読していたつもりだったんですが…。
確かにPHP5でやると楽なんですが、PHP4が要件なんです。
これで何とかなりそうです。本当にありがとうございました。
0564nobodyさん
2007/06/03(日) 16:12:50ID:???sendmail関数をforでループさせても3万通位が限界です。
これってphpの仕様?
できれば、100万通じゃなくても多ければ多いほどよくて1億通でも送ることが可能なら送りたいです。
よろぴく♪
0569nobodyさん
2007/06/03(日) 16:25:09ID:???0570nobodyさん
2007/06/03(日) 16:30:02ID:???javaはphpと違って言語レベルで並行処理ができる。
※ こういうことが出来ないのが、phpがスクリプト言語と言われる由縁だけど。
詳しくは、javaのスレでメールの送信方法と、マルチスレッドの方法を聴いて。
※ その前に、googleで検索するように。すぐ見つかる。
あとは、サーバーによって一時間当たりのメール送信数に制限掛けているところがあるから、
複数の安いサーバーと契約して送信すればできるんじゃないか?
0571nobodyさん
2007/06/03(日) 16:34:57ID:???0572nobodyさん
2007/06/03(日) 16:37:13ID:???0573nobodyさん
2007/06/03(日) 16:41:15ID:???jjavaもよくわからんけど、わかんかったらまたききに来るわ。
0574nobodyさん
2007/06/03(日) 16:43:27ID:???0575nobodyさん
2007/06/03(日) 16:43:45ID:9Yu/VUSy0576nobodyさん
2007/06/03(日) 16:46:36ID:???もうここには、聞きに来ないでくれ。
javaなら、下のメールリストに高木さんという親切な管理人さんがいらっしゃるから、
何も分からないから、メールで大量送信できるようなプログラムを至急作って送って下さい。
と送れば、すぐ作ってくれるんじゃないかなぁ。
ttp://java-house.jp/ml/
0578nobodyさん
2007/06/03(日) 16:50:31ID:???0579nobodyさん
2007/06/03(日) 16:56:48ID:???0580nobodyさん
2007/06/03(日) 16:57:59ID:???session_destroyすると
Message: session_destroy() [function.session-destroy]: Session object destruction failed
になります。
セッションが切れているかどうかを判定する方法はないですか?
0581nobodyさん
2007/06/03(日) 19:08:19ID:???ある処理が一定時間経っても終了しなかった場合に、次以降の処理に進むような処理はどうやって実装するのでしょうか。
具体的にやりたいのは、数件のRSSファイルをネットワーク経由で持ってくる場合、n秒以上応答が無い場合は
次のURLに移る・・・というような処理です。
宜しくお願いいたします。
0583581
2007/06/03(日) 20:48:31ID:ngQVF/3a環境はWindows、Apache、PHP5.2.1です。
0584nobodyさん
2007/06/03(日) 20:51:34ID:???session_destroyしてるってことは、そのスクリプトの前の方で
session_startしてるわけだわな
んで、session_destroyの時点でセッションのデータが削除されてるってことは
(session_destroyの時間 - session_startの時間) < session.gc_maxlifetime
になるわけだと思うが、いったい何をしたらそうなるのかこっちが聞きたいわ
>>581
RSSをHTTPでもってくるにしても色々やり方があるわけで
それによって答えも変わるわな
0585nobodyさん
2007/06/03(日) 22:19:08ID:3VqHHU9G0586nobodyさん
2007/06/03(日) 22:25:30ID:???日本語でおk&スレ違い&
http://pc11.2ch.net/test/read.cgi/php/1180181033/41
これお前だろ
0589nobodyさん
2007/06/03(日) 22:52:53ID:???>>585じゃないけど、その仕様だと例えばHTMLを知らないユーザーとかだとアップできなくない?
HTMLの説明書きとかを注釈で加えるとか?
0592nobodyさん
2007/06/03(日) 23:04:52ID:BrDIy+5Hぐぐってもなんらかのプログラム知識ある人向けに書かれてるページばかりで
さっぱりわかりません。
0593592
2007/06/03(日) 23:11:19ID:BrDIy+5HWarning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\security\htdocs\index.php on line 13
https://localhost/xampp/
でセキュリティを押すと上のようなページ表示されてるけど
解説ページ探してもちょっと違うんだよね
なんか間違えてインストールしてるのかな?
0594nobodyさん
2007/06/03(日) 23:12:09ID:???aho-
どう見ても>>588は「自分でコメント欄もどき作っておけ」っていう冗談じゃねーか
日本語大丈夫か?
0595581
2007/06/03(日) 23:13:38ID:ngQVF/3a返信ありがとうございます。
RSSを持ってくる手段についてはfopenを使うか、もしくはRSS読み込みまでやってくれるモジュールを使うか
決めてはいませんでした。仮にfopenで持ってくる場合にどうすれば良いかお聞きしたいです。
0596nobodyさん
2007/06/03(日) 23:25:52ID:???検索すればいくらでも出てくると思うが、、、
jpの言語ファイルがないってインストーラで入れるときに
japanese選んだのかい?
0597588
2007/06/03(日) 23:31:58ID:???くそ、ID出しておけばよかった・・・
0598592
2007/06/03(日) 23:38:39ID:BrDIy+5Hインストール自体が失敗してたのかな?
0599592
2007/06/04(月) 00:07:17ID:fJ2k7ySqDLしたXampp自体のバグだったようです
http://support.exxaxon.co.jp/index.php?topic=30.0
のようにjp.phpってのをコピーしたら表示できました
しかしまぁ1.5.5の時のバグが1.6.2でも解決されてないんですね
これだけで今日6時間かかった危うく挫折するところだったorz
0600nobodyさん
2007/06/04(月) 00:41:14ID:???>しかしまぁ1.5.5の時のバグが1.6.2でも解決されてないんですね
はい、そこ。ちょっと問題が解決したからって、気を大きくしない
逆に言われてしまえば「既知のバグも確認せずにインストールするなんて」ってなるんだから、
正直見苦しいよ
0601nobodyさん
2007/06/04(月) 00:53:50ID:???0603nobodyさん
2007/06/04(月) 01:06:16ID:???どうやって調べればいいでしょうか。
0604nobodyさん
2007/06/04(月) 01:09:03ID:???http://jp.php.net/debug_backtrace
0605nobodyさん
2007/06/04(月) 02:41:59ID:???stream_set_timeout($fp, $idle);
http://php.mirror.camelnetwork.com/manual/ja/function.stream-set-timeout.php
だな
0606nobodyさん
2007/06/04(月) 10:20:36ID:???そんな関数があったのか。前に同じことをしようとしたときはわざわざforkしてた...
でも、スレッド使いたいな。
0607nobodyさん
2007/06/04(月) 11:14:34ID:xiuS9z/Z連想配列内の配列を取り出す方法を考えています。
例えば以下の配列
$a = array(0=>array(0=>"AA",1=>array("A","B")),1=>array("C","D"),2=>array("E","F"));
から$a[0][1]を取り出したい場合どのようなスクリプトならできるのか悩んでいます。
array_slice($a,0,1)だとarray(0=>array(0=>"AA",1=>array("A","B")))のみです。
$aからarray("A","B")の部分を取り出すにはどのようにすればいいのか教えていただけませんか。
0608nobodyさん
2007/06/04(月) 11:17:18ID:???0609581
2007/06/04(月) 11:36:37ID:JYPog2pEどうもありがとうございます。早速試してみます。
0610nobodyさん
2007/06/04(月) 12:00:59ID:DwHDHcMtフォームから、GETでデータをhoge.phpに渡しているんですが、
データが、'を\'にしたり\を\\にしたりと、サニタイズされています。
hoge.phpのインクルードしているプログラム間でそういう記述があると思ったのですが、
hoge.phpの一番上(処理が何もされていないだろうと思う場所)で、
print_r($_GET);
exit;
としても、サニタイズされているんです。
javascriptでも何もしていませんでした。
これってありえますかね?(現にありえてるんで悩んでいるんですが・・・)
アドバイスお願いいたします。
0612nobodyさん
2007/06/04(月) 12:26:25ID:???ってわかってるやつは切ればいいんだけど。
サーバをいじれない環境だと.htaccessでやるしかなくて、
できるかどうか確認するのまでどきどきしちゃうw
0614nobodyさん
2007/06/04(月) 12:38:17ID:???0617nobodyさん
2007/06/04(月) 16:47:52ID:???あれは、脳の中にcronの仕組みがあるという認識で間違っていませんか?
0619nobodyさん
2007/06/04(月) 17:48:34ID:6QRX92pz>中身を隠蔽しておいた方が後で使い回せるし
classに隠蔽したほうが使いまわせれるというのはどういうことですか?
毎回オブジェクトをつくらないといけないですよね?
>>画面遷移が増えてきたり
フォームかurlでしか次の表示に変数は渡せないですよね?
0620nobodyさん
2007/06/04(月) 18:14:19ID:N4khH+faセッションはクッキーと違い、変数をサーバー上に保存しておくものだと本で読みました
ということは、あるユーザーが取得したセッションで管理されてる変数を、
同じページを開いた別のユーザーも共有できるのかと思い、試してみましたができませんでした
これはなぜでしょうか?
ちなみに下記の方法で試してみました
↓ソース
test.php
<?php
session_start();
if(!isset($_SESSION["count"])){
$_SESSION["count"] = 0;
}
else{
$_SESSION["count"] ++;
}
echo $_SESSION["count"];
?>
PCが一台しかないので、同じPC内の2種類のブラウザ(IEとファイアーフォックス)で実験
1 IEで開いてF5を連打し、カウントを適当な数まで増やす
2 ファイアーフォックスで同じページを開く
ファイアーフォックスで開いたとき、IEで表示されているカウント数に関係なく 0 が表示されました
なぜでしょうか?
0621nobodyさん
2007/06/04(月) 18:33:08ID:lLfrP8Zc■ このスレッドは過去ログ倉庫に格納されています