【PHP】下らねぇ質問はここに書き込みやがれ 67 at PHP
[2ch|▼Menu]
[前50を表示]
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

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


596:nobodyさん
08/04/27 22:23:35
>>593
ですよね。めんどいけどローカルで動くようprototype使ってjavascriptで書き直します

597:nobodyさん
08/04/27 22:47:27
明日からインターネットが使えなくなるので
今入れといたほうが良いものってありますか?
ちなみにfirefox2.0、php5.25、apache2.61,DWは入れてます

598:nobodyさん
08/04/28 01:41:34
>>597
何がしたいんだ・・・


599:nobodyさん
08/04/28 02:09:46
>>597 AV

600:nobodyさん
08/04/28 02:38:25 XDsHBgsJ
質問させていただきます。よろしくお願いします。

別ドメインのphpからjavascritpを出力させたいのですが、

<iframe marginwidth="0" marginheight="0"
   type="text/javascript"
src="URLリンク(example.com)"
>
</iframe>

とすると、Javascriptがそのままテキストとして表示されてしまいます。
後で部分的に更新させたいのでフレームを使いたいのですが、
このような使い方は出来ないのでしょうか?
ほとんどスレ違いかと思いますがよろしくお願いします。


601:nobodyさん
08/04/28 04:17:52
動的にスクリプトを読み込ませたいなら、scriptをcreateElement して、documentにaddChildするのが定石だと思う。
javascript 動的ロード とか Dynamic Script でぐぐって見て。
JSAN とかも参考になるかも。

詳しくは Javascriptスレでやったほうがいいと思う。

602:nobodyさん
08/04/28 05:12:11
>>598
PHPの開発だろ条項

603:nobodyさん
08/04/28 08:44:54
PHPでサイトを作っているのですが、携帯に対応しようと思っています。
そこでサイト閲覧の経過時間を表示したいのですが、
方法がわかりません。
携帯ではJavaScript使えないみたいなので。

スレ違いだとは承知していますがよろしくお願いいたします。

604:nobodyさん
08/04/28 08:47:52
>>603
SESSION

605:nobodyさん
08/04/28 08:58:14
>>604
すみません。説明不足でした。
サイト閲覧時間をデジタル時計みたいに1秒区切りで
随時表示していきたいのです。

それともそれがSESSIONでできるのでしょうか?
無知で申し訳ありません

606:nobodyさん
08/04/28 09:07:47
flashとか使うしかないんじゃないの?

607:nobodyさん
08/04/28 09:09:09
>>605
SESSION使えば出来るでしょ。
別にSESSIONじゃなくても、初期時間を常に引き回せば良いのでは?
ページ表示中もリアルタイムでカウントアップしたいならFLASHも一緒に使いなはれ

608:nobodyさん
08/04/28 09:10:35
>>606
flashを使うという手がありましたね。
参考になりました。
ありがとうございました。

609:nobodyさん
08/04/28 09:12:10
>>607
ページ表示中もリアルタイムでカウントアップしていきたかったのです。
検討していただきありがとうございました

610:nobodyさん
08/04/28 09:21:50 eHo0WZE0
認証しないと見れないページを作ってます。
ログインフォームにIDとパスを入力して、正しかったら$_SESSION['login']に1を格納してます。
認証しないと見れないページで$_SESSION['login']に1が入ってるか確認して、入ってたらページを見せます

これはセキュリティ的にどうなんでしょうか?
改善するとしたらどのようにしたらよろしいでしょうか?


611:nobodyさん
08/04/28 11:22:21
>>610
色々な意見は有るだろうけど、少しでもシビアにやる必要が有るのなら
私なら、少なくとも一緒にIPとUAぐらいは格納しておいて常時チェックします。
と、セッションの有効期限を短めに。

ま、セッションハイジャックされても大して困らないようなサービスだったら、
login=1だけでもいいと思います。

612:nobodyさん
08/04/28 11:58:35 U6D2eVEj
VirtualHostを使って80とは別のポートで受けているのですが
$_SERVER['SERVER_PORT']の値がおかしい時があります
ポートを変えているのに、なぜか80が入っています
URIを長くしたりすると、正しいポートの番号が入っていたりします
その規則性が分からないのですが、
この問題についてご存じの方がいたら教えてください
SetEnvを使って、代替となる環境変数を設定するか、
ホストを自分でパースすれば、
ポート番号を知りたいという要求は満たせるのですが、
奇妙な動作なので気になります。

613:nobodyさん
08/04/28 16:35:05 ASacEEs/
PHPでSOAP使ってるんですが、Digest認証のページにアクセスするいい方法ってあります?
Basic認証のページへはSoapClientのコンストラクタに引数渡してアクセス出来るんだけど、
Digest認証のところでひっかかって先に進めないのです。

614:nobodyさん
08/04/28 17:09:28
echo '<table width="'.$width.'"';
echo ( $titleHeight )? ' height="'.($aaa-$bbb).'"':' height="'.($aaa-$bbb).'"';

プログラムが長すぎるのでエラーが出る行だけの書き込みです。

$titleHeight っていう値がないので削除したいのですが

echo '<table width="'.$width.'"' height="'.($aaa-$bbb).'"':' height="'.($aaa-$bbb).'"';

とするとエラーでPHPが正常に処理してくれません。
どこがおかしいのでしょうか??

615:nobodyさん
08/04/28 18:30:45
echo
'<table width="'
.
$width
.

'"'
height="'
.
($aaa-$bbb)
.
'"'
:
' height="'
.
($aaa-$bbb)
.
'"';

616:nobodyさん
08/04/28 18:31:23
>>614

>>615を100回嫁

617:nobodyさん
08/04/28 19:23:00
三項演算子だお

echo '<table width="'.$width.'" height="'.($aaa-$bbb).'"';


618:nobodyさん
08/04/28 19:53:50
しかし糞汚ねえゴミソースだな

619:nobodyさん
08/04/28 20:51:50
>>618
見本をお願いします。

620:nobodyさん
08/04/28 21:00:34
ヒント:太いにあって大にないものが足りない。

621:nobodyさん
08/04/28 21:04:21
>>619
見本出してやるから元のコード出せ
つうかechoでhtml全部吐くな
ちゃんとviewと分離しろ

622:nobodyさん
08/04/28 21:07:33
viewと分離ってどういう意味?
別ファイルにしろってこと?

623:nobodyさん
08/04/28 21:09:03
太を
大と

に分けるってこと

624:nobodyさん
08/04/28 21:10:24
<html>
<head>
</head>
<body>
<table width="<?php echo $width; ?>" height="<?php echo $aaa-$bbb; ?>">
</body>
</html>

こういうことだろ

625:nobodyさん
08/04/28 21:29:48
埋め込み方式で<?php echo $hoge; ?>ってのを短縮するやつあったよな
<?= $hoge ?>だっけ?

626:nobodyさん
08/04/28 21:34:18
>>624
それだと掲示板みたいに増減する複数個のテーブルを、
内容を変えながら表示すること出来ないんじゃね。

627:nobodyさん
08/04/28 21:39:58
>>624
期待して損した
これはヒドイw
ブログのテンプレートとか見て勉強してこいクズ

628:nobodyさん
08/04/28 21:44:25
>>626
それはControllerの仕事だよ

629:nobodyさん
08/04/28 22:07:12
>>626
複数個のテーブルを表示したいなら

<?php foreach(ほげほげ){ ?>
<table width="<?php echo $width; ?>" height="<?php echo $aaa-$bbb; ?>">
内容
</table>
<?php } ?>

すればいいんじゃないの?

630:621
08/04/28 22:11:27
>>627
ブログのテンプレートが見本だなんて頭大丈夫か?
あんなスパゲティ糞コードいらね
お前みたいのはPerlでもやってろ
一番いいのはCakePHPのソースを見ること
命名規則やコーディングが若干気に入らないが勉強になるぞ

631:nobodyさん
08/04/28 22:33:01
>>630
デザインと分離するんじゃなかったのか?
だいじょうぶか?あたま

632:nobodyさん
08/04/28 22:40:59 ofPhinBe
会員制サイトで
仮登録→登録という流れのとき、

$reg_key = sha1(uniqid(rand(), true));
のように、メールを受信した人にしかわからないトークンを作り、

認証のアドレス.php?email=xxx®_key=yyy
や、
認証のアドレス.php?id=xxx®_key=yyy

としている場合が多いのですが、
パラメータとして渡すのは、reg_keyだけではだめなのでしょうか?

uniqidが入っているので、問題ないかと思うのですが・・・

説明が足りないところがあるかもしれませんが、
理解していただける方がいましたら、アドバイスお願いします。

633:nobodyさん
08/04/28 23:02:26
それだけで賄えるならそれでいいじゃん


634:nobodyさん
08/04/29 00:08:00 AbJjjUx5
以前php.iniについて質問したものです。
教えて頂いた方法で数週間試してみましたが、
全くエラーが出来なくなりました。

お礼が遅くなりましたが、どうもありがとうございました。
めちゃ助かりました!

635:597
08/04/29 00:15:02 UrbOD/FY
だれかおねがいします

636:nobodyさん
08/04/29 00:36:53
>>635
使えてるみたいだしいいじゃねーか

637:nobodyさん
08/04/29 02:39:37
>>636
今日モデム返すのですよ

638:nobodyさん
08/04/29 03:44:02
coLinux

639:nobodyさん
08/04/29 03:50:53
何ヶ月もつなげられないような僻地にでもいくのか?
とりあえずマニュアルをオフラインでも見れるようにダウンロードしといたほうがいいんじゃね?
あとDW使ってPHP書いてるんならそれでもいいけどEclipseとかのIDE入れたり
あとはMySQLなりPostgreSQLなりDBもちゃんと入ってるか?
phpMyAdminやphpPgAdminなどのWebから使えるDBの管理者ツールとか
必要ならDBのマニュアルなんかもダウンロードしといたほうがいい
メール開発するならメールサーバも必要
XAMPPなら全部入ってるが自力で各個いれて設定できるなら余裕だろ

640:nobodyさん
08/04/29 04:57:58
>>515
レス遅くなり申し訳ありません。
ちゃんとサイト内にあったのですね
ありがとうございます

641:nobodyさん
08/04/29 07:55:26
>>613
コンストラクタの $options に
'authentication' => SOAP_AUTHENTICATION_DIGEST
を追加してみるとどうでしょうか。
ドキュメント化されてないので確証はないですが。

>>632
reg_key が一意なら使えます。
見直す点は uniqid() も sha1() も返り値が一意的でない事。

642:632
08/04/29 08:57:25 QM2GtqNT
>>633
>>641

回答ありがとうございます!

>>見直す点は uniqid() も sha1() も返り値が一意的でない事。

そうですか・・・uniqidだけではだめなのですね。

一応、データベース側でreg_keyをユニークに指定してあるので、それほど問題はないかもしれませんが、
やはりエラーがでてしまうのは避けたいです。

お手数ですが、
もしよかったら、値が一意になる具体例(こうすれば一意になるというもの)を教えていただけないでしょうか?
よろしくお願いします。


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

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