【PHP】下らねぇ質問はここに書き込みやがれ 67 at PHP
[2ch|▼Menu]
[前50を表示]
350:nobodyさん
08/04/20 16:53:26
亜鈴魚喰

351:Defort
08/04/20 17:11:16 QNOTdt2p
フリーページ
URLリンク(tool-1.net)
について聞きたいのですが、index.cgiのスクリプトが丸見えみたいなのですが、どうやったらみれるのですか?
ヌルバイト攻撃使っているのですか?


352:nobodyさん
08/04/20 17:31:23
gethostbyaddr()
で得られるホスト名って信頼できる?

たとえば、gethostbyaddr($hoge)
で ***.yahoo.co.jp みたいなのが
でたら、 $hoge は yahoo関連のIPと断定できる?
yahooとは関係ない第三者のIPが ***.yahoo.co.jp みたいなホスト名を
返すことってありえませんか?


353:352
08/04/20 17:33:32
自己解決しました

354:nobodyさん
08/04/20 17:57:34 Tze2JaW2
セッションのGCの挙動を変えたくて、session_set_save_handlerを使って
gc_test()に置き換えようと思っています。
session_set_save_handler("", "", "", "", "", "gc_test");
session_set_save_handler(null, null, null, null, null, "gc_test");
と試してみましたが
Warning: session_set_save_handler() [function.session-set-save-handler]: Argument 1 is not a valid callback in xxx.php on line 3

というwarningが出て目的が達成できません。
openその他の関数をデフォルトのままにするにはどのようにすれば良いでしょうか?



355:320
08/04/20 18:38:39
>>321
ありがとうございました!
magic_quotes_gpcがずっとわからなかったのですが
.htaccessで設定できるのですね!
文字化けの心配がなくなりました。

356:nobodyさん
08/04/20 19:26:38 8958Dk4L
<form method="post" enctype="multipart/form-data" action="./uploader.php">
<input type="file" name="data" size="30">
<input type="submit" value="アップロード">
</form>
<?php
$filedir = "./file/";
$filename = $_FILES['data']['name'];
if(file_exists($_FILES['data']['tmp_name'])){
$filesize = filesize($_FILES['data']['tmp_name']);
if($filesize <= 1050000){
if(move_uploaded_file($_FILES['data']['tmp_name'],$filedir.$filename)){
echo "アップロードしたファイル・・・ファイル名:".$filename." ファイルサイズ:".$filesize."Byte";
echo "<br><br>";
}
}
else{
echo "ファイルサイズが大きすぎます!";
}
}
if($filename){
echo "<img src='./$filedir/$filename'>";
}
?>

このような感じでアップローダーを作ってるのですが、
ファイル名がそのまま保存されるのをfile0001みたいな感じで保存することはできますか?

357:nobodyさん
08/04/20 19:33:38
それ自分で書いたコード?

358:nobodyさん
08/04/20 19:46:33
自分で書いてたらはじめから連番を振る仕様になってそうだね。

まあ、どっかのサイトとか本が $filename = $_FILES['data']['name']; で説明してたのを
使い回してるのかもしれない。

359:nobodyさん
08/04/20 19:47:01 8958Dk4L
友達から教えてもらったです。

360:nobodyさん
08/04/20 19:59:36
きめぇw

361:nobodyさん
08/04/20 20:00:21
>>360
きめぇw

362:nobodyさん
08/04/20 20:08:01
ら、らめぇ

363:nobodyさん
08/04/20 20:11:57
じゃその友達に聞けばいいじゃん

364:nobodyさん
08/04/20 20:51:05
めでたしめでたし

365:nobodyさん
08/04/20 21:28:40
くだらない質問、お願いします。

OSはWinXP、webサーバはapacheです。
perl、phpは実行できる環境です。

ダウンローダーからのアクセスをhttpステータス403で
返したいです。その為、webサーバのログをcronで
調査し、ある条件(例えば1分間に60回アクセス)
に合致したホスト(IPアドレス)を.htaccessの
deny fromに追加したいです。
そのような、perl,PHPはあるでしょうか?

366:nobodyさん
08/04/20 21:29:20 PJ8uyzSs
age忘れました。

くだらない質問、お願いします。

OSはWinXP、webサーバはapacheです。
perl、phpは実行できる環境です。

ダウンローダーからのアクセスをhttpステータス403で
返したいです。その為、webサーバのログをcronで
調査し、ある条件(例えば1分間に60回アクセス)
に合致したホスト(IPアドレス)を.htaccessの
deny fromに追加したいです。
そのような、perl,PHPはあるでしょうか?

367:nobodyさん
08/04/20 21:42:41
WinXPでcron動いてるのか?

368:nobodyさん
08/04/20 22:10:51 PJ8uyzSs
>>367
pycron.exeってやつで、
unixのcron相当を動かしてます。

369:nobodyさん
08/04/20 22:21:56
cronって、結局時間で動かすだけのプログラムだろ、
本気でやるならJP1とか使えよ。

本気じゃねーのかよ。

370:nobodyさん
08/04/20 23:16:26
>>369
ここは下らねぇ回答者のスレではありません。

371:nobodyさん
08/04/20 23:52:57
>>370
異常系の処理も考慮しない馬鹿ですか?w

372:nobodyさん
08/04/21 00:51:15
パソコンの電源がつかないのですけどどうしたらいいですか?

373:nobodyさん
08/04/21 00:55:33
>>371-372
スレリンク(utu板)

374:366
08/04/21 07:24:16 f7rHed3v
JP1とかはどうでもいいんで、
私の質問に対して、良い案は
ありますか?
お願いします。

375:nobodyさん
08/04/21 07:37:38
phpでいくらでも.htaccess編集したればいいじゃん

376:nobodyさん
08/04/21 07:56:46
なかったら作れよ

>>375

377:nobodyさん
08/04/21 12:32:43 8HZkrnGU
mail関数を連続で実行することで、
メールの遅延が発生したりするのでしょうか?

お問い合わせフォームを作った時、管理者・問い合わせ者・保存用と
3つの箇所に送信するのですが、たまにメールの受信が遅かったり
バラバラに受信したりします。

378:nobodyさん
08/04/21 12:41:06
>>377
だから、そういう時のためJP1を使ってジョブの異常系を制御しろよ。

379:nobodyさん
08/04/21 12:50:44
>>377
メールってそんなもんだろ


380:377
08/04/21 13:08:39 8HZkrnGU
>>378
「JP1」と言うのを検索しましたが、
メール処理とあまり関連しないような気が・・・。
>>379
「そんなもんだ」とは思っているのですが、
メールが届かない事による語弊もありますし、
プログラムに詳しくない人は「メールは必ず届くものだ」と
考えるので、お問い合わせフォームでそれが起きると不安がられます。

381:nobodyさん
08/04/21 13:16:15
「遅れることがあるよん」と謳っておけ

いつでもラグレスで届くシステム作ったらそれだけで億万長者になれるわw

382:nobodyさん
08/04/21 13:20:19
>>377
SMTPサーバのログとキューを確認したら?
きちんとmail関数で送信できる?
それとPOP/IMAPサーバの方もチェックした?


>>378
JP1は無関係だろ?
一応は送信できているんだからジョブは生きてるだろ


383:nobodyさん
08/04/21 13:26:25
週末から今日までのログを読んで笑わせてもらった。
ありがとう。

384:377
08/04/21 13:36:11 8HZkrnGU
>>381
それは注意事項に記載しているのですが、
いかんせん電話までしてくる人が多くて‥。

>>382
サーバの事は疎くてSMTPサーバのログとキューは確認してないです。
また、mail関数(厳密に言えばmb_send_mail関数)を使っていて
これまで問題なく送信、一括配信など行えていたのですが、
なぜか今作っているサイトでは遅延が発生します。

やっぱりサーバの問題もあるんですかね?
さくらインターネットのサーバなんですが。

385:377
08/04/21 13:38:55
少しググったのですが、もしかして
サーバのPHPが4.3.9なのが原因なのかも・・・。

386:nobodyさん
08/04/21 13:48:07
>>384
> これまで問題なく送信、一括配信など行えていたのですが、
> なぜか今作っているサイトでは遅延が発生します。

どちらも正常な動作ですよ。電話鳴らされるのはご愁傷様としか言えない。
メール配送の仕組みや MTA のご機嫌の問題を PHP で解決するのは大変そう。

387:nobodyさん
08/04/21 13:53:45
てか、メール遅延なんて、自分の鯖だけで解決する問題じゃないだろ

388:nobodyさん
08/04/21 13:54:56
その気持ちは分かるけど、俺も人を疑うことを止めて、
人を信じることから接してみたら?

俺もそうしたら、幸せなことが増えたと思う。
苦情をネガティブに考えないで、感謝する気持ちで捉えてみて。

389:377
08/04/21 14:01:16
>>386
やっぱり「普通のこと」なんですね。
さっきサーバに詳しい友人にも電話して聞いてみたのですが、
「メールの遅延や送られないことはある。でもPHPのバージョンを変えるとか
 サーバの設定を変えるとかそういう操作は時期早々。やらない方が良い」

と言われました。ですので、このまま静観します。
ご回答いただいた方、ありがとうございました。

390:nobodyさん
08/04/21 14:01:53 eazv5Nmh
error_reportingの設定って、みんなE_ALLとかE_STRICT使ってる?

391:nobodyさん
08/04/21 14:05:44
送信数が多いならキューを分割してプロセスをリッスンして心太方式にするのもいいカモメ

392:nobodyさん
08/04/21 14:06:06
>>389
プロなら、しょうがないで済まさないぞ。
メールが送信できないケースには様々な原因が考えられるが、
リターンメールが帰ってくるケースではそれに対処するプログラムを組む必要がある。
でないと、到達不能メールが無限ループを繰り返し、相手のサーバーは中継サーバーもダウンさせる。
そうなったら、威力業務妨害で捜査を受ける場合もあるし、賠償問題にも発展する。
かかる観点まで見通して実装するかどうかが、プロとアマの分水嶺だよ。

393:nobodyさん
08/04/21 14:08:42
>>384
ログ解析したら、だいたのボトルネックが分かるものだよ


394:nobodyさん
08/04/21 14:18:19
「問い合わせフォーム」にMAILER-DAEMONさんへ自動返信する機能を
実装するかどうかが分水嶺なのですね。わかります。

395:377
08/04/21 14:19:08
mb_send_mail関数を使ってもサーバのメールログに情報が残るんですか?
お恥ずかしながら、sendmail送信の場合、ログが残らないと思っていました・・。

と言うことは、そのログを閲覧できるレンタルサーバを借りなければ
いけないと言うことですよね?さくらじゃ無理そうだ・・・

396:nobodyさん
08/04/21 14:22:38
共有レンサバじゃ厳しいだろな
送信関連の規制にひっかかってるんじゃね?
スクリプトである程度調整できるかもしれないけど。

397:377
08/04/21 14:25:00 8HZkrnGU
>>396
1日10件もお問い合わせがないので、送信規制にかかってなさそうです。
アクセスも多くて500PVほどですし。

結構、簡単に考えていたのですが、色々と考えるべき事が多いのですね。。

398:390
08/04/21 14:25:02 eazv5Nmh
漏れの質問はスルーですか、そうですか。

399:nobodyさん
08/04/21 14:27:24
スパムメールサーバーとして、ルートサーバーに登録されてしまったら、
そこから送信されるメールは一切受け付けてくれなくなるよ。
インターネットで死亡宣告を受けるようなもの。

数件ならいいけど、数百件にもなったら危険水域。

400:nobodyさん
08/04/21 14:30:40
>>390
(PHP_OS != 'WINNT') ? error_reporting(0) : error_reporting(E_ALL);

401:nobodyさん
08/04/21 15:55:39 tP2T0+Jy
phpmyadminのようにサーバ上のSQLiteデータベースファイルをブラウザで
編集できるアプリってありますか?


402:nobodyさん
08/04/21 16:13:15
探したら、あった
URLリンク(phpsqliteadmin.sourceforge.net)

403:nobodyさん
08/04/21 16:21:47 tP2T0+Jy
>>402 ありがトン!早速試します。

404:nobodyさん
08/04/21 16:46:56
JP1JP1って日立の中の人なのか?

405:390
08/04/21 16:47:11 eazv5Nmh
>>400
サンクスコ

406:366
08/04/21 16:53:15
自分で作りました。
ありがとございました。

407:nobodyさん
08/04/21 21:40:04
粘着キティは通院日かな?

408:nobodyさん
08/04/21 21:56:39
このスレ、回答者が釣りなのかマジなのかわかんねぇ。
無限ループって何だよ。
Fromを入力可能にするとか?ありえないし。
メールヘッダーインジェクション可能だと、サーバー止められるかもだけど。

>>390
作る時はE_STRICTでやってる。

なんか、本番環境でdisplay_errorがonの所多過ぎない?
ちなみにdisplay_errorはini_setしてもあまり意味無い。
iniでdisplay_error offで、ini_setでonにすると、
パースエラーの時、ini_set自体が実行されないのでパースエラーが表示されない。
逆も然り。
まあ、逆の場合は本番環境でパースエラーは無いだろうから良いっちゃ良いけど、
精神衛生上良くない気がする。

409:のし図
08/04/21 23:17:05 YYj5TAUN
mkでこんなセキュホみつけたのですが、ここからindex.cgiのソースを見るにはどうすればよいのでしょうか?
URLリンク(mk-board.net)
穴みたいです
セキュリティに詳しい方教えて下さい

410:nobodyさん
08/04/21 23:22:27
ここはperlじゃないよ。

cgiは関連付けされてるから見えないみたい!?

411:のし図
08/04/21 23:28:53 YYj5TAUN
>>410
何かと方法ってないのですか?

412:nobodyさん
08/04/22 00:07:08
ここはperlじゃないよ。

413:nobodyさん
08/04/22 03:24:49
そんな穴じゃ抜けない

414:nobodyさん
08/04/22 11:42:41 dlLjXVhc
phpのsymlinkってアトミックなんでしたっけ・・・?
DBがMysqlのmyisam使わなきゃで、行ロックの代わりをやる必要が・・。

415:nobodyさん
08/04/22 11:49:33
アトミックで鉄腕アトム的ってこと?

416:nobodyさん
08/04/22 11:50:02
>>415
ちょーーー受けるwwwww

417:nobodyさん
08/04/22 11:50:32
>>415
その発想はなかったわwwww

418:nobodyさん
08/04/22 12:41:18
このスレもこの程度か
相手になりませんでした

419:nobodyさん
08/04/22 13:17:40
クォリティ高須クリニック

420:nobodyさん
08/04/22 14:11:59
>>415-419
無職ニート池沼うざい

421:nobodyさん
08/04/22 15:32:48
mkboardの穴なつかしすぐるw
wwwlangとかあゆ板とかなゆ板にもあるんだよな

422:nobodyさん
08/04/22 18:20:03
mkタクシュリティ

423:nobodyさん
08/04/22 21:57:48
固定の拡張子を付けてテンポラリファイルを作りたいんですけど
何かいい手法はありますか?

tempnamでprefixじゃなくてsuffixの指定ができれば悩む必要なかったのだが

424:nobodyさん
08/04/22 22:30:17
>固定の拡張子を付けてテンポラリファイルを作りたい
何故に?

425:nobodyさん
08/04/22 22:31:44 FtmTZwRr
一意の名前ということなら
time() . '.tmp' じゃだめ?


426:nobodyさん
08/04/22 22:39:33
一時的なファイルではあるんですけど、セッションの途中でブラウザに渡す必要があったもので
コミットしちゃえば正式なファイル名を振るんでユニークなIDも付けるんですが

time() . ".tmp"だと1秒以内に同時に作成されたときに一意性が保証されないですよね
microtime()を使ってファイルを作ってみてダメならリトライを数回やるってのは
よほどのアクセスが無ければ大丈夫な気はしますが泥くさいかなあ

427:nobodyさん
08/04/22 22:42:11
uniqidは?

428:nobodyさん
08/04/22 22:44:15
あ、microtimeを使うならuniqidでも一緒でしたね

429:nobodyさん
08/04/22 22:47:02
uniqidでやってみます
ありがとうございました

430:nobodyさん
08/04/23 02:18:22 Wcjf8rbS
すみません、下記の2点がわからなくて困っています。
すみませんが対処法をお分かりになられる方がおられましたら教授よろしくお願いいたします。

1.PHPでフォルダ(中にフォルダ・ファイルが入っています)を削除(unlinkやrmdir)しようとrmdirコマンドを実行しましたが、「中にファイルなどが入っているので消せません」とエラーになりました。再帰的にファイルを削除するしか方法はないのでしょうか?
参考になる再帰的にファイル・フォルダを削除するロジックを
ご存じでしたらご教授よろしくお願いいたします。


2.同様に、フォルダ(中にフォルダ・ファイルが入っています)をコピーしようとcopyコマンドを実行したら「権限がありません」とエラーが表示されました。
当方の環境はlinux環境ではなくwindows環境ですので権限とか関係ないように考えていたのですが、
windows環境でもディレクトリに権限の設定が必要なのでしょうか?
(また、chmod関数で0777権限を設定しましたがコピーできませんでした・・・)



431:nobodyさん
08/04/23 02:23:13
>>430
1.いい経験になるから自分で考えられるところまで作ってみるべし

432:nobodyさん
08/04/23 03:07:35
>>430
そのあたりのファイル関数は単体に使うものなので再帰的に処理するのが普通
環境依存してもいいとかならsystem()で"rm -rf foo"等のCLIコマンドを叩く方法もあるけどオススメしない
opendir()とか使ってロジックを組んでみるといいよ

433:nobodyさん
08/04/23 05:14:59
>>430
既出だが、異常系の処理をしっかりと対応するなら、JP1とかがお勧め。

そういうのを最初から実装するのは手間とお金が掛かるし、
なんでもphpという一つの技術だけで解決しない方がいい。

434:nobodyさん
08/04/23 05:26:30
あらやだ。JP1君がいらしたわ。

435:nobodyさん
08/04/23 05:51:15
JP1に敵意むき出しの富士通社員がいるね。

436:nobodyさん
08/04/23 06:25:52
jp1にこだわりをみせるフリをした新米se君がいるスレですね

437:nobodyさん
08/04/23 08:33:19
日本一()笑言語w

438:nobodyさん
08/04/23 09:06:47
phpも極めてる人のソースはすごいけどね

439:nobodyさん
08/04/23 10:30:51
         __ ____
      //   ̄  \\    
     //--.--  -─\\    
   //  (● ●) ((●(●) \            地震とかどこの田舎だよ
 .| |.|    ( . ((_人_人__)    | _ _== =   
     \\    ⌒ ` /,/ | |    ̄ ̄ ̄  ̄| ||
    ノ         \\| | | |           ||
  /´                 | |          | |
 |    l                | |          |||
 ヽ    -一ー_~、⌒)^),-、   | |_________| |
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  | = =

440:nobodyさん
08/04/23 19:54:20
>>439の画像、より目にして、
黒の目玉を二つにすると、
なんと画像が立体に見えません。

441:nobodyさん
08/04/23 23:30:52
php5を使っていると、不定期に「Out of memory (Needed 2095360 bytes)」
のエラーが発生していて困っています。

具体的には、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

対処方法がありましたら、教えて下さい。
宜しくお願いします。

442:nobodyさん
08/04/23 23:31:14 k1ODucws
441です。sageてました。

443:nobodyさん
08/04/23 23:31:28
メモリ食いすぎの部分を直す

444:nobodyさん
08/04/24 00:22:52
ファイルが存在する場合のみ処理を実行するため、
$fp = fopen("./$abc.txt", "r");
if($fp != null)
処理〜

というように組んでいるのですが、
この時、ファイルが存在しておらず、$fpの値がnullだった場合でもfcloseで閉じる必要はあるのでしょうか?

445:nobodyさん
08/04/24 00:58:17
>>444
fopenでファイルの存在確認するのはお行儀が悪いですね

446:nobodyさん
08/04/24 00:59:05 LaHdtlHM
>>439の画像、目玉をトリプルクリックするとなんと目からビームを発射しません。

447:nobodyさん
08/04/24 00:59:25
>>444
しかもfopenで失敗したのだからファイルは開けてないのに何故閉じる必要があるのだ
あけてないものを閉じる意味が理解不能

448:nobodyさん
08/04/24 01:01:45
> fopenでファイルの存在確認するのはお行儀が悪いですね
それは素人の意見ですね。

どうせfopenの前にfile_existsとかで調べろといっているのでしょうが、
file_existsとfopenの間にファイルが消されたらどうするんですか?
マルチタスクOSなのだからありえる話です。

449:nobodyさん
08/04/24 01:01:47
とりあえず・・・そんなあなたにfile_exist()

450:nobodyさん
08/04/24 01:03:10
書く前に否定された。

451:nobodyさん
08/04/24 01:04:50
file_exists(笑)

452:nobodyさん
08/04/24 01:08:05
なんで最後に「マルチタスクOSだから!OSがマルチタスクなんだから!」という
ネタを持って来るんだ。

453:nobodyさん
08/04/24 01:09:47
どうでもいいところに突っ込むな

454:nobodyさん
08/04/24 01:26:58
>>>444=448

455:nobodyさん
08/04/24 01:28:00
つーことは、お前、質問者に
ダメ出しされてるのかよw

456:444
08/04/24 01:32:57
>>445-
ありがとうございました。fcloseは必要ないようですね。
fopenで処理を分けるのもよく無さそうなので再考してみます。

457:nobodyさん
08/04/24 02:08:48
ファイルの存在確認後に削除されてたなら、それが正しい「Worning」たる理由なんじゃね?

458:457
08/04/24 02:09:11
Warning.

459:nobodyさん
08/04/24 02:13:26
何を言いたいのかさっぱりわからんw

460:nobodyさん
08/04/24 02:40:13 LhY+BYrB
PHPでCのように 7 / 2 で整数の 3 が欲しい時は
floor(7/2) とするのが一般的ですか?

461:nobodyさん
08/04/24 03:19:38
>>460
C99 と合わせたかったら 0 に近付くように丸める。
intval(7/2) か整数型へのキャスト (int)(7/2) で。

462:nobodyさん
08/04/24 04:00:47
file_exists、fopen、 両方で判別するのが大人。

どっちの方法とか言ってる時点でウンコ。

463:nobodyさん
08/04/24 04:19:28
セーフモードも考慮するとfile_existsなんて使わないで別の関数があるだろ

464:nobodyさん
08/04/24 04:21:02
>>462
それで満足気に話しているお前が痛々しいだけ。

file_existsで存在を確認した後に、fopenの処理をするまでの間に
ファイルが存在しなくなる可能性はある。
1日10万PV位のサイトを運営していると、そんなケースなんて日常茶飯事。

まぁ、素人に言ってもしょうがないがwww

465:nobodyさん
08/04/24 04:24:12
煽りたいだけの奴はよそいってくれ

466:nobodyさん
08/04/24 04:36:22
素人ども向けに「俺様がてめえらに教えてやる排他制御」でも書いてくれたほうが
煽りよりずっといいよ。

467:nobodyさん
08/04/24 04:41:32
>>462
JP1は黙れ。

468:nobodyさん
08/04/24 05:26:59
レスが増えてると思ったら煽るだけで提案しないバカがまた沸いたのか

469:460
08/04/24 06:31:20 1f8tGK11
>>461
ありがとうございます

470:nobodyさん
08/04/24 10:09:19
俺はPerl出身なんだけど、普通、ファイルオープンするだけでも
やっぱそこまでファイルの存在の確実性を意識しないとダメ?
if(($IN = @fopen($file,'r+')) < 0)
これじゃダメ?

あと、書き込みの時は、物理的ロック(自作ロック)して、
ファイルオープンしてflockってしてるんだけど、これでもやっぱ不十分?
物理的ロックってのはロック用ファイル作成する方法です。

471:nobodyさん
08/04/24 10:32:12
おれはデータベース使ってロックする方法を取り入れてる

472:nobodyさん
08/04/24 11:29:16
データベースのロック機構使いながらファイル使うって、
レインコートを着ながら、傘を差すようなものだな。
頭にウジでも湧いているじゃないだろうか?

473:nobodyさん
08/04/24 11:33:25
頭に蛆は湧いていないけど、風呂場に蛆が湧いているよw

474:470
08/04/24 11:47:44
いや、俺も最近はデータベースばっかだけど、
でもファイル使わないといけない時もあるしな。RSSとか。

475:nobodyさん
08/04/24 11:56:29
>>472
君はいろんなものを作って知識を貯めたほうがいいよ
自分の無知を晒すことになるから

476:nobodyさん
08/04/24 12:09:45
無知をさらしているのはお前だよw
データベースも実体はファイル。
ファイルを操作するI/Fが違うだけ。

使うばかりじゃなくて、仕組みを理解しないと、応用が効かないよ。

477:470
08/04/24 12:27:26

> if(($IN = @fopen($file,'r+')) < 0)
これじゃまだダメだと思う?

478:nobodyさん
08/04/24 12:34:58
>>477
う〜ん、なんかごまかしって感じ

479:nobodyさん
08/04/24 13:09:05 RVXwLuUy
Wikipediaみたいな
URLリンク(example.com)
みたいなURLってPHPでどうやるの?
index.php?←消せるの?

480:nobodyさん
08/04/24 13:11:46
>>479
$_server['path_info']

481:479
08/04/24 13:17:47 RVXwLuUy
>>480
PATH_INFOって↓みたくなるんじゃないの?
URLリンク(example.com)

482:nobodyさん
08/04/24 13:20:33
それかrewrite

483:nobodyさん
08/04/24 13:30:51
こういう口の利き方の質問者は教えても感謝をしないから教えなくて良いよ

484:nobodyさん
08/04/24 14:23:25
>>470
> やっぱそこまでファイルの存在の確実性を意識しないとダメ?
それは要求次第。
単純に読み取りしたい時は調べても無駄だからやらない。
状態が分かってもそれは fopen() を呼んだ時点の状態ではないから。
>>444 が言う「ファイルが存在する場合のみ処理」の場合は
存在が分かればいいのだから file_exists() がより妥当っていうお話でしょう。
質問にまともに答えず別の話にもってく奴が悪いんだけどな。

あと fopen() の返り値はリソース型もしくは論理型の false なので
比較は fopen() !== false または is_resource(fopen()) で。

> ロック用ファイル作成する方法
システムコールのロックが使えない、欠陥がある場合や
mandatory lock したい時は使わる一つの手だね。


485:nobodyさん
08/04/24 14:37:34 WKXs89Ye
質問させてください
ヘッダとフッタだけ出力する.PHPに 中身のコンテンツを表示させる.PHPを
includeさせているとします。
このとき、中身のPHPにheader関数でリダイレクトさせる機能はつけられないんでしょうか?
この機能はそれより前に何も出力してないことが条件とありますが、
(親の.phpが)ヘッダを出力してるから無理?
テストしたところ動かないです。 これは上記の理由によるものですか?

486:nobodyさん
08/04/24 14:44:04
こういう図か
test.phpの中身
フッタ
コンテンツ(ここは外部ファイルをインクルードして表示)
ヘッダ

んでtest.phpではじめの出力でheaderを送信させてリダイレクトさせたいということか?

487:nobodyさん
08/04/24 14:44:23
質問の仕方としては15点

488:485
08/04/24 14:57:52 WKXs89Ye
<html>
<header></header>
<body>
<?php
include "nakami.php";//中身を読み込み。この中でリダイレクトさせてる(header()で)
?>
</body>
</html>
って感じです(外側の.php)
こういうやり方だと、リダイレクトしないんです。

489:485
08/04/24 15:02:12 WKXs89Ye
>>486
どうもです
リダイレクトの関数を設置してるのは、読み込まれている側(コンテンツ部分)の
.phpです

490:nobodyさん
08/04/24 15:05:25
>>485 yes

491:nobodyさん
08/04/24 15:07:19
>>488
nakami.phpを読み込んでheader関数使う前にタグが出力されてんじゃん

492:nobodyさん
08/04/24 15:09:14
>>488
で、なんでリダイレクトする必要があるわけ?
アフィ厨で不正やろうってわけじゃないよな
出力させたいページをそのコンテンツ部分に読み込ませればいいじゃん

493:485
08/04/24 15:14:28 WKXs89Ye
すみません、沢山の人に答えてもらって感謝してます
結局ムリってことですよね、親のphpに出力されてるから…
この場合はjavascriptを中身の.phpに入れるしかないですよね?

>>492
フォームで、アンケート.php に「トップ.php」「確認.php」「完了.php」を
読み込ませてるんです。(ブラウザに表示されるURLは常にアンケート.php)
完了まで行ったら二重送信防止にリダイレクトさせたくて。。 って事情でした

494:nobodyさん
08/04/24 15:17:33
ファイルを分けたいのなら

アンケート.phpにいろんなファイルを読み込ませて一つのファイルで処理してるように見せかけたいの?
なんかあなたがやってるのは無駄な処理だな

495:485
08/04/24 15:21:36
>>494
どんなやり方がオススメですか? 良かったら聞かせてください

496:nobodyさん
08/04/24 15:24:59
id隠れてるのは偽者?

497:nobodyさん
08/04/24 15:26:08
>>485
ここまでの回答の流れをぶったぎってレス
ob_start 使えば実現できる

498:nobodyさん
08/04/24 15:34:24
Smarty使えば一発で解決する

499:485
08/04/24 15:36:55 WKXs89Ye
>>496
僕のことですか? >>495も僕ですよ
本題とずれてきたのでsageたほうがいいかなと思いました
enq_top.php > enq_conf.php > enq_rewrite.php > enq_finish.php と、
トップから完了まで全パターンの.phpを(使いまわせるはずのヘッダやフッタ含めて)
作るのがめんどくさいのでincludeさせたんですが、、 他にどんな良い方法があったんだろうと
気になってます。 smarty使えば、ヘッダやフッタをテンプレートとして効率よく管理できるとは思いますが…

>>497
ありがとうございます 調べてみます
なんだか特殊な機能みたいで難しそうですが、、 ありがとう

500:485
08/04/24 15:39:29 WKXs89Ye
>>498
あ、やっぱりsmartyですか…
一度勉強し始めて、基礎も出来てないのによしておこうと思ってやめました
またやってみようかなぁ。。 プロはみんな使ってるんでしょうか?>smarty

501:nobodyさん
08/04/24 17:02:09
ob_*なんてデフォで使えるようになってるだろ

502:nobodyさん
08/04/24 17:57:45
$url="hoge"; を<a href=hoge>hoge</a>にする楽なやりかたないでしょうか?

503:nobodyさん
08/04/24 18:22:27
echo "<a href=\"$url\">$url</a>";が面倒ですと?


504:nobodyさん
08/04/24 18:40:44
こういうときは間違った方向に走るもんじゃないのか。

$str = '$url="hoge"; がいっぱい出てくる $url="hoge"; だらけの文字列';
echo str_replace('$url="hoge";', '<a href=hoge>hoge</a>', $str);

505:nobodyさん
08/04/24 18:45:03
俺は printf( "<a href=\"%s\">%s</a>", $url, $url ); の人

506:nobodyさん
08/04/24 18:59:23
メソッドっていうのか
echo linkfy($url);
こうできませんかね。。。

507:nobodyさん
08/04/24 19:01:45
jibunndekannsuuwotukurebaiijannka

508:nobodyさん
08/04/24 19:01:56
メソッドは知ってるけど関数は知らないのか?

509:nobodyさん
08/04/24 19:09:35
ということはVBの人か。

510:nobodyさん
08/04/24 19:15:05
>>506
URLリンク(www.php.net)
ここ読んで function linkfy($arg) 作ればいいよ。
sprintf( "<a href=\"%s\">%s</a>", $arg, $arg) を return するだけの関数。

511:nobodyさん
08/04/24 19:16:46
なんだこの流れ・・・

512:nobodyさん
08/04/24 19:22:07
素質ある技術者の技術的な考察とかJP1よりは、のどかでいいよ。

513:nobodyさん
08/04/24 19:26:21
>>510
キモイ書き方薦めるのやめれ

514:nobodyさん
08/04/24 20:18:10 1f8tGK11
このマニュアルってオフラインで使えるダウンロード版はありますか?
URLリンク(www.php.net)

515:nobodyさん
08/04/24 20:39:33
ここから好きなの落として使って

URLリンク(www.php.net)



516:nobodyさん
08/04/24 21:15:56 mjxa+9jc
本当にくだらない質問で申し訳ございません。

リンク先のa.phpに文法エラーが存在する場合、IE6:500エラー Firefox:syntax error が
表示されます。
上記の場合、IEでsyntax errorを出現させる設定等あるのでしょうか?

どなたかご教示くださいませ。


517:nobodyさん
08/04/24 21:25:59
IE側の設定だった気がす

518:nobodyさん
08/04/24 21:30:32
メニューの
[ツール] - [オプション]

[詳細設定]タブ
ブラウズ カテゴリの
 HTTP エラー メッセージを簡易表示する
のチェックを外す

これIE6ね。IE7はワカンネ

519:516
08/04/24 21:35:25 mjxa+9jc
>>517-518

IE6です。>>518の設定方法を試してみたところ syntax error が表示されました。
本当にありがとうございました。


520:nobodyさん
08/04/24 21:44:51
どういたしまして。

521:nobodyさん
08/04/24 21:46:13
>>518
IE7でも同じ設定項目があるyo

522:nobodyさん
08/04/24 22:50:12
>>518
JP1でも同じ設定項目があるyo

523:nobodyさん
08/04/25 07:00:29
JP1って流行っているの?
何なの、このJP1、JP1ってレス?

524:nobodyさん
08/04/25 08:22:49
JP1を売り込む営業さんが数字伸ばすためにここで宣伝してるんだろ
営業へただからここで宣伝してるんだろ

525:nobodyさん
08/04/25 15:18:13 ETeE5V7l
PHPからcronにジョブを足したり消したりできませんか?

526:nobodyさん
08/04/25 15:19:24
>>525
それができたらどうなるかわかりますか

527:nobodyさん
08/04/25 15:31:54
>526が何を懸念してるのか知らないが、system使えば出来るんじゃ?
やったことねーけど

528:nobodyさん
08/04/25 15:40:10
>>526
PHPでスケジューラーが作れます

529:nobodyさん
08/04/25 20:54:21
phpでもperlでも、良いんですが、
フリーの掲示板のcgiを探しています。
条件は
1.英語の掲示板であること。
2.投稿時にCAPTCHA認証すること。
です。
知ってましたら、教えてください。

530:nobodyさん
08/04/25 20:55:42
>>529
kentにcaptchaがついてた
日本語は自分で英語にすりゃできる

531:nobodyさん
08/04/25 21:06:33
大文字JPはゆうメイトを思い出すからやめれくれ

532:nobodyさん
08/04/26 00:43:34
とりあえずPHPエディタというエディタのスタンドアローン版でも使ってみたら?

533:nobodyさん
08/04/26 00:45:30
>>532
phpspotさん乙

534:nobodyさん
08/04/26 00:50:37
あれは使えん

535:nobodyさん
08/04/26 01:10:46
Emacs使ってるけど、ヒアドキュメントがちと書きにくい。

536:nobodyさん
08/04/26 01:52:48
FlashDevelopは意外と快適。

537:nobodyさん
08/04/26 06:10:19
JP1、JP1ってもういいよ。
確かに、一流のソフトであることは間違いないし、
色々な公共機関、金融システムで使われているし、
そんなことは周知の事実だと思うよ。

538:nobodyさん
08/04/26 10:59:49
>>537
ってか、そういうレスしているのが逆に宣伝になっていると思うんだが・・・

539:nobodyさん
08/04/26 11:18:17
>>538
537はJP1JP1ってうるさい奴だろ
批判するような感じで宣伝してるんだ

540:nobodyさん
08/04/26 12:50:06
PHPからうまくメールが送れません。
というか、maillogをみると、Fromが変わらないので、localhost.localhostからメールが飛んでしまい
受信先に拒否されてる感じです。

もともと、ZendFramwork使っていたのですが、問題を特定するために
mail("hoge@hoge.jp",'test','body','From: info@hoge.net' . "\r\n");
という最小限のコードで試しました。

php.iniのsendmail_from=なんかもいじってみましたが、Fromがlocalhost.localhostになってしまいます。

他になんか送らなきゃいけないheaderとかあるのでしょうか?

541:nobodyさん
08/04/26 12:59:44
営業成績上げないと夏ボが危ういんじゃね?w

542:nobodyさん
08/04/26 13:20:52 ZONOtLDh
URLリンク(jp.youtube.com)

543:nobodyさん
08/04/26 13:21:44
>>542
グロ注意

544:nobodyさん
08/04/26 13:42:04
>>540
そういうのは環境依存の可能性が高いんだから、環境を書くべき。
あと、騙られる前にあげとけ。

545:nobodyさん
08/04/26 14:13:17
>>544
お前に、そんな偉そうにレスされる覚えはない。

546:nobodyさん
08/04/26 14:28:18
>>545
質問者なのに、随分と偉そうですね。
そういう人には、誰も答えないと思いますよ。

547:nobodyさん
08/04/26 16:46:11 eenghTEY
簡易的なウェブメールプログラムを作っています。
mb_send_mail でメールを送信する際に
あて先を
山田 <hoge@example.jp>
など使いたいのですが、
日本語や任意の文字列をアバウトに許可すると
セキュリティ的に怖いと感じます。

mb_send_mail のあて先部分は
この文字列を制限・エスケープかけておけばOKという
基準はあるでしょうか?
またお勧めの方法がありましたらお願いします。

548:nobodyさん
08/04/26 17:32:23
>>547
入力文字のエスケープに関してのみならば
"メールヘッダーインジェクション"で検索すると
詳しいページが出てくる。

でも、その対策だけでは不充分。
掲示板で、htmlspecialcharsだけ使っても、大量の投稿であっという間に
荒らされるのと同じ。

一定時間内の多重投稿を防いだり、送信者のIPをメールの本文に記録したり
宛先がユーザーから入力可能な場合は、かなり対策が面倒。

ここでメールヘッダーに関して質問しているレベルで
メールの宛先をユーザーが入力可能なウェブメールなんてやると、
確実にメールサーバーがブラックリストに載る。

549:nobodyさん
08/04/26 17:32:47
ググレば不具合があるmb_send_mailを何故貴様は使ってるのだ

550:nobodyさん
08/04/26 18:08:34 TgkCKAum
サーバー部門からロードアベレージの原因はディスクI/Oが原因みたいだけど
プログラム側で何とか軽減できないかって、相談をうけているんだすけど
出来るだけディスクへの負荷を減らす為のプログラムの設計だったり
そんな素敵なノウハウをまとめているサイトてありませんかね


551:nobodyさん
08/04/26 18:18:03
ググレカス

552:nobodyさん
08/04/26 18:20:09
ククレカレー

553:nobodyさん
08/04/26 18:21:45
クレクレカレー

554:nobodyさん
08/04/26 18:21:54 iM9ZNRfW
コンパイル済みプログラム atract (バイナリ)をPHPから呼んで
動かしたいと思い、シェルスクリプトatr.sh
#!/bin/bash
/dir/atract
を用意して、index.php中で

<?php
system("./attract", $ret);
?>
として動かそうとしましたが、$ret=127が返ってくるのみで、
attract自体は動きませんでした。

もちろん、シェルで./atr.shと打つと atract が動きます。
どうしてphpから呼んだときだけ動かないのでしょうか?

環境はRed Hat Enterprise Linux v5、Apache2.2.3、php4.3.9(cgi)です。

555:nobodyさん
08/04/26 18:37:22
場所は?

556:nobodyさん
08/04/26 18:39:38 iM9ZNRfW
場所は/public_html/atract/にindex.phpとatr.shがあります。


557:nobodyさん
08/04/26 18:49:40 uk8GT5CY
質問です。

PHPのオブジェクト指向を勉強できる書籍で、オススメなのありますか?
ご教示ください。

558:nobodyさん
08/04/26 19:01:26
"シェル本体 シェルファイル"

559:nobodyさん
08/04/26 19:09:33 iM9ZNRfW
>>558
system("/bin/bash /dir/atr.sh", $ret);
ともしてみましたが、動きませんでした。

560:nobodyさん
08/04/26 19:20:35
>>557
PHPマニュアル

561:nobodyさん
08/04/26 19:30:51 uk8GT5CY
>>560
ありがとうございます。
もう少し丁寧に解説しているものが欲しいです・・・

562:nobodyさん
08/04/26 19:47:35
>>561
ここ

563:nobodyさん
08/04/26 20:19:06 uk8GT5CY
常駐します。今日からよろしくお願いします。

564:nobodyさん
08/04/26 20:43:25
PHPのオブジェクト指向とか基本がズレてる
オブジェクト指向を学んでPHPに取り入れろ

565:nobodyさん
08/04/26 20:48:59
>>564
オブジェクト指向を覚えることが偉いとでも(笑)

566:nobodyさん
08/04/26 21:01:40
Java禁止

567:547
08/04/26 22:58:04
>>548
サンクスコ


>>549
ソースきぼんぬ
不具合って脆弱性でしょうか、
ちなみに現最新バージョンのPHPでも直ってないのでしょうか?



568:nobodyさん
08/04/26 23:33:03
>>567
興味があるんなら自分で調べろよ
有名なんだからググればすぐみつかるし、プログラム書く人間なら知らないのが疑問

569:nobodyさん
08/04/26 23:54:09 EXulrG+H
php3ってクラス使える?

570:nobodyさん
08/04/27 00:05:10
>>569
つマヌアル

571:nobodyさん
08/04/27 00:19:21 TNTz3zy3
Zend Frameworkをちょっと勉強しているんだけど、
フレームワークって簡単なものは作れるけど、
結局、サイトによって独自関数やクラスを多用しなきゃいけないから
わざわざフレームワークにする意味無いよね?

単に、「他者と作業する上で便利」なだけであって、
開発者が自分だけの場合は、気にしなくて良いのかな?

572:nobodyさん
08/04/27 00:24:25
>>571
フレームワークにたよるのって気持ち悪くてやりたくない
自分だけのネイティブなコードだけ残したいから

573:nobodyさん
08/04/27 00:35:45
>>571
一人で構築してるけど使ったほうが楽で助かる。抽象的に考えられるのがいい。
合わないと感じたなら無理に使わなくてもいいんじゃない?仕事ならともかく趣味の範疇なんだし。

574:nobodyさん
08/04/27 01:34:12
一度Ethna使ってみたことがあるけど、
自作クラスの関数内から(Ethnaから呼ばれることを前提とした)既存クラスにアクセスするところで嫌気がさしてやめた。
その手の問題を起こさない(もしくは処理できる)スキルがあれば一人FWもいいかも。


575:nobodyさん
08/04/27 01:48:03
中堅規模のサイトをいくつか製作したら
自然とFWが出来上がった漏れは天才。

576:nobodyさん
08/04/27 04:28:19
JavaよりPHPやJavaScriptのオブジェクト指向の方が優れている件について。


PHPのバージョンが古い鯖に移植とかする際、関数毎にバージョン確認が面倒です。
ソース内の関数をリストアップして、バージョン○○以降で動きます、
みたいなチェック関数とかありませんか。
自分で作ればいいんだろうけど関数が数千もあるとさすがに面倒。
PHPマニュアルから自動取得するような技術力はありません。

577:nobodyさん
08/04/27 04:43:21
自分で作れ

578:nobodyさん
08/04/27 04:54:38
PHP4 以降で、関数の存在チェックだけでいいのなら、 token_get_all と function_exists で比較的簡単に作れんじゃないの。
まぁ関数名は、変数名と同じくシンボルとしてしかパースされなかったと思うから、判定が若干面倒ではあるけど。


579:540
08/04/27 05:00:08 pXevviUZ
>>544
遅レスですがサンクス
2chブラウザ使ってるんですけど、一回下げるとそれ覚えてるみたいで思いがけず下げちゃうことがあるんですよね。
すいません。

ちなみに>>545は別人です。

別サーバーで問題なく遅れてたんですけど、新しいサーバーかりてそこに入れてみたら
まったくFromを変えられなくなったんですよ。
ちなみにCentOS5+qmail+PHP5.1.6です。

サーバーの設定の問題かと思ってサーバー借りてるところのサポートに連絡取ってみたら
「PHPの問題だ、こんなことで連絡してくんな。ググれカス!」
って怒られて、いろいろ調べてみたんですけど、にっちもさっちも行かなくて。

やっぱりPHPの問題なのですか?



580:nobodyさん
08/04/27 05:08:05
PHPの問題だ、こんなことで連絡してくんな。ググれカス!

581:nobodyさん
08/04/27 05:27:03
sendmail_path か QMAILの設定の問題なのかなぁ。
とりあえずQMAILのエラーログも見てみたら?

582:nobodyさん
08/04/27 12:00:48
>>557
>>565

583:nobodyさん
08/04/27 13:01:00 EBk2n3bR
PHP開発5年ほどやってるが、あんまり他と交流ないのでチョット疑問なのですが、
$_SESSIONって、どれくらいの値を入れてます?

$_SESSION['user_id'] だけ入れて、各処理毎にDB接続は鯖コスト高いだろうし、
俺はログイン処理後DBからパスワード以外(user_id, user_name, user_mail)は入れてます。

変数でいうと10個分くらいまで とか勝手な基準でやってたんですが、
$_SESSION['html'] とかで、膨大なデータ(文字列、配列)を入れたりしてる人もいますか?

584:nobodyさん
08/04/27 13:02:55
はい?何のために入れんの?

585:nobodyさん
08/04/27 13:09:17
セッションセーブパスにDBから受け取ったユーザー情報を
一度全部書き出して、処理後はガーベッジコレクションを待ったり、
あるいは自分で消したりする処理を書き加えたりしたいですか。

586:547
08/04/27 13:18:03
>>568
ぐぐっても現状で改善されていないmb_send_mailの
問題なんて見つからないから聞いてるんだけど。
まさか昔の脆弱性やバグの話持ってきて、
不具合が、、、とか言ってるんじゃないよね?

587:583
08/04/27 13:22:27 EBk2n3bR
あっー言葉足らずで非常に申し訳ないです。
$_SESSION['html']は喩えでして、

MySQLでユーザ情報テーブルがあり、そこに繋がるTEXT長のフィールドがあった場合でも、
通常DB接続は鯖コスト的に高いし、ソースコード的にも$_SESSION参照よりは冗長になるし
セッションに格納したほうが見通しは良いのかなと思いました。

※今は$_SESSION['message_id']と数値で保存して、表示の際にDB接続という処理を作る場合が多いです

セッションファイル読み込む際に鯖メモリ使うわけだし、ケースバイケースですよね。
すんませんでした。

588:nobodyさん
08/04/27 14:11:52
>>586
昔からバグなんて無いよ。
文字化けしてる奴はini設定間違ってるだけだろ。

589:nobodyさん
08/04/27 14:24:39
>>586
きっとスーパーハカーなんだよ

590:nobodyさん
08/04/27 14:49:03
>>587
前にいた会社はめちゃくちゃセッションに入れまくってた。
検索結果を全部セッションに入れて、それをページングして表示してたりした。
ログイン時にユーザ情報もほぼ丸ごとセッションに入れてたなあ。
まあそれほど規模が大きいわけでもなかったから別に問題はでなかったけど。


591:nobodyさん
08/04/27 16:30:17
>>590
それ何の自慢だよ

592:nobodyさん
08/04/27 22:06:13
今、HTTP:requestを使ってよその検索エンジンのAPIへ問い合わせて結果をリターンするプログラムを作って置いてるんだけど
リクエスト数が毎秒ってぐらい半端じゃなく多くなりました

全てサーバー回線で問い合わせてるから異常なほどリクエストが多いとアク禁を食らう可能性もあるかと思い
PHPでJavascriptのAjax.requestみたいに(非同期通信?)利用ユーザー回線で問い合わせる方法ありますか?

593:nobodyさん
08/04/27 22:12:53
PHPがどこで動いてると思っているんだ?

594:nobodyさん
08/04/27 22:14:13
PHPは医療業界を救えますか?

595:nobodyさん
08/04/27 22:18:56
>>594

  ∧ ∧     ┌─────
  ( ´ー`)   < シラネーヨ
   \ <     └──/|──
    \.\______//
      \       /
       ∪∪ ̄∪∪



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5387日前に更新/238 KB
担当:undef