【PHP】下らねぇ質問はここに書き込みやがれ 61at PHP
【PHP】下らねぇ質問はここに書き込みやがれ 61 - 暇つぶし2ch369:nobodyさん
07/12/28 02:02:57
最初から分かってたらなら書けと・・

再帰的な手法は分かる?
「再帰的関数 php」とかでググッてみるといい


370:nobodyさん
07/12/28 02:08:52
home/hoge
home2/hoge4
home/hoge2
home/hoge3
home2/hoge5

これを
-----------------
home
 hoge
 hoge2
 hoge3
home2
 hoge4
 hoge5
-----------------
と表示させられるように配列処理したいのですが、
良い方法思いつきません、
お助けを。

371:nobodyさん
07/12/28 02:10:06
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

372:364
07/12/28 02:21:01 x8Ui+5jw
>>369
申し訳ありません。
>>364 の「この時、この配列の内容は事前に分かっていないため」で
伝わるかと思い込んでしまいました。
再帰処理については知っています。
今回の処理も再帰処理で、と思っていたのですが、
どうしても配列変数の添え字を自動生成する方法の所が分からなかったのです。
何か方策はありますでしょうか?

>>371
重ね重ね失礼しました。追記いたします。
サーバのOS: 「Windows2000」
Webサーバ: 「Apache 2.0.59」
PHPのバージョン: 「4.4.7」
以上の環境です。
なおこの環境は、OS 以外は利用しているレンタルサーバのスペックを
模倣したもので、この環境下での動作を求めています。

373:nobodyさん
07/12/28 03:04:11
>>370
/でexplode()してキーと値に宛えば。

>>372
どうにも難しい処理だから微妙だけど
eval("return \$arr{$index};")
とか。

374:370
07/12/28 03:17:21
> キーと値に宛えば

詳しくキボンヌ

375:nobodyさん
07/12/28 04:14:13
「キーと値に使えば」と予想

つまり
home2/hoge4
を分割して
$hoge["home2"] = "hoge4";
って形にすれ


376:nobodyさん
07/12/28 04:44:15
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

377:255
07/12/28 06:41:54 rEU4Fn3c
環境fedora7

<?php


if (mail('ac10@fb3.so-net.ne.jp','titile','message'))


echo "<b>SUCCESS TO SEND</b><BR>";


else


echo "<b>fail to mail</b><BR>";


?>
でfail to mailという方が出ます。



恐らくphp.iniの設定が不足しているんだと思いますが、
php.iniのsendmail_pathについてまだよく分かっておらず、とりあえずデフォのままにしてます。
ポート25は開けていませんがこれでいいのでしょうか。

378:255
07/12/28 06:46:39 rEU4Fn3c
sh: /usr/sbin/sendmail: Permission denied
というログが出ました。

379:255
07/12/28 06:48:30 rEU4Fn3c
が、lrwxrwxrwx root root system_u:object_r:bin_t sendmail
とあったので別にパーミッションは良いかと思います、、、もしかしたら
bin_tをhttpd_sys_content_tにしなければならないですか。

380:nobodyさん
07/12/28 07:40:41
/var/logを (って/var/logがFedoraにあるのかしらないけど)
良く調べてみたら。隅々まで。

URLリンク(bbs.fedora.jp)

ちょっとググってみたかんじだと SELinuxがどうのこうの、って
話がいくつか出てくるけど

381:255
07/12/28 08:10:09 rEU4Fn3c
有力情報ありがとうございます。SELinux disableにして実行してみたんですけど、やはりfail to mailでした。
ろぐ追加です。
[Fri Dec 28 06:18:37 2007] [notice] caught SIGTERM, shutting down
[Fri Dec 28 06:18:48 2007] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Fri Dec 28 06:18:48 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Dec 28 06:18:48 2007] [notice] Digest: generating secret for digest authentication ...
[Fri Dec 28 06:18:48 2007] [notice] Digest: done
[Fri Dec 28 06:18:49 2007] [notice] Apache/2.2.6 (Unix) DAV/2 mod_layout/4.0.1a PHP/5.2.4 mod_ssl/2.2.6 OpenSSL/0.9.8b configured -- resuming normal operations
sh: /usr/sbin/sendmail: Permission denied
もう少しググってみることにします。selinuxには気づきませんでせした。

382:255
07/12/28 08:12:50 rEU4Fn3c
あ、ほんとくだらない質問になるんですが、メル鯖立ててなくてもmail関数使えますよね。
sendmailpathの意味するところが分からなくて、、、

383:nobodyさん
07/12/28 08:19:14 /nAj2CVO
会員システム作ってるんだけど kaiin/以下が会員領域だとして
その中にあるファイルはリファラがkaiin/内のファイルじゃない場合強制ログアウト
という処理にしたらセキュリティ上がるかなぁと思ってます
この処理をする場合、効率よくリファラチェックする方法はないでしょうか?
ひたすらif&orでやってけばいいんでしょうが何かみっともないので、、

また、そもそも↑みたいなことやっても意味ないですか?
ファイルをDLして手を加えられる侵入に対策したいと思ったんですが…

384:nobodyさん
07/12/28 08:30:44
>>382
mail()を実行すると、
 Windowsの場合 : メールサーバに接続する(ネットワーク越し) - php.iniのSMTP
 Linuxなど : メール送信用のプログラムを呼び出す(プログラムの引数) - php.iniのsendmail_path
のように、OSごとに違った挙動をする。

>>383
ノートン先生のようにデフォルトの設定でrefererを送信しないものもある。
>ファイルをDLして手を加えられる侵入に対策したい
何をしたいのかよく分からないが、特定の人言い換えりゃ特定の情報を送信してくるブラウザを
識別するには次のどれかだろうね。
・cookie
・セッション(まぁ、これもcookieの場合もあるが)
・WebサーバのBasic認証とかDigest認証とか

385:255
07/12/28 08:34:06 rEU4Fn3c
>>384 ありがとうございます。
windows:mail()→ネットワークに接続
linux:mail()→mail program呼び出し→ネットワークに接続
みたいな感じに理解しました、(あってるかな。。。)

386:nobodyさん
07/12/28 08:47:14 /nAj2CVO
>>384
ノートンてリファラ送信しないんですか じゃあダメですね、やめときます
ありがとうございました

387:nobodyさん
07/12/28 11:31:19
今日で仕事納めです。
早速、phpも仕事を土管とやってみましたが、
やはりmb_系の関数が絵文字処理で悩まされました。

mb_をpregと統一して総合文字列関数として再スタートさせるべきではないでしょうか?
それでは、来年も良いお年をお過ごし下さい。

388:nobodyさん
07/12/28 12:52:34 gGF8c07c
処理が遅い時、ブラウザを勝手に閉じると、
サーバーのスクリプトが終了したときに返却されるレスポンスのパケットはどこにいくのでしょうか?

サーバーの動作が遅いのですが、このパケットが行き先を失って、
ルーター内で無限ループしているってことは考えられますか?

送信要求しておいて、ページが表示されないからって閉じられるクライアントをどうにかしたいのですが、そうもいかないので。

389:nobodyさん
07/12/28 13:04:54
横槍だが、メール送信を使いたいだけで自鯖にメール機能をインストする必要はなっしん。
無料レンタ鯖にデータ飛ばして、そこから送信して、必要なら戻ってくるようにすれば無問題。
使い慣れないメール設定やほーと設定で悩んでいる人にオススメ。

390:nobodyさん
07/12/28 13:14:14
>>388

URLリンク(jp2.php.net)
URLリンク(ja.wikipedia.org)


391:nobodyさん
07/12/28 17:13:21
こんど、
「天皇陛下もやっているPEARの活用講座」
という本を出すことになりました。宜しくお願いします。

392:nobodyさん
07/12/28 18:45:23
こんど、
「将軍様もやっているPECLの活用講座」
という本を出すことになりました。宜しくお願いします。

393:nobodyさん
07/12/28 21:09:26 41MrW7lh
作成中のシステムが
[notice] Parent: child process exited with status 3221225477 -- Restarting.
というメッセージをApacheのログに残して落ちるようになってしまいました。

多分、再帰に失敗してスタックオーバーフローか何かになっているのだと思うのですが、
例えば例外をスローしてくれたりする設定のような、場所を特定する良い方法はないでしょうか?

環境は、PHP5.2 Apache2.0 WindowsXP です。
フレームワークは使用していません。

ご存知の方、教えてください。よろしくお願いします。

394:nobodyさん
07/12/28 22:07:55 /nAj2CVO
自力で会員システム作ってるんですが、二重ログインという問題があることに気づきました
この問題はどう解決したらいいんでしょう? 同一IDで後から入ってくる人を有効にすべき?
仕組みとしてはどういうものが理想ですか?

今考えてるのは、会員情報の管理テーブルに、現行のセッション名を保持するカラムを作って、
各アクションごとにブラウザが持ってるものと保存してるセッション名とを比較する
→不一致の場合強制ログアウト
というものです
どうなんでしょう ご意見いただければ幸いです よろしくお願いします

395:nobodyさん
07/12/28 22:12:07
>>394
その処理が君のシステムにおける理想ならそれでいいじゃん

396:nobodyさん
07/12/28 22:20:49
>>395
調子に乗ってんじゃねーぞ。このニート!!!

397:394
07/12/28 22:28:49 /nAj2CVO
自分のアイディアや知識に自信がないから聞いているので、
それでいいじゃんと言われても…
念のためググって調べて考えた上で質問させてもらいました
不快にさせたんならすみません

398:364
07/12/28 22:38:10
>>373
返事が遅くなりました。
試してみたら eval() で希望の動作が実現できました。
どうもありがとうございました。

399:393
07/12/28 22:44:02 41MrW7lh
例外を生成し、そのスタック長がある上限を超えていたら throwする関数を作って、
これを再帰している箇所に埋め込む事にしました。

400:nobodyさん
07/12/28 22:44:30
>>394
二重ログイン禁止したいならそれでいいんじゃないかな。

後から来た方を拒絶しようにも、明示的にログアウトしてくれる人ばかり
じゃないしね。
一定時間経ったらログアウトって仕組みにしても、その間最ログインできないし。

401:nobodyさん
07/12/29 04:16:39
冬休みを利用して、何か簡単なwebアプリを作ってみようと思い
開発を始めてみたのですが、一点質問させていただいてもよろしいでしょうか。

a.html 内でに b.phpというファイルをインクルードし、a.html内でb.phpの関数を呼び出し
実行したいのですが、うまく実行することができずに悩んでいます。

<?php include('./b.php'); ?>
<html><head></head>
<body>
<?php b_test(); ?>
</body>
</html>

といった具合です。
b_testの内容は、単純に文字列をprintしているだけなのですが
実行されず、ブラウザ上でソースを見るとそのままphpの記述が
残されている状況です。
各所で見て回った簡単なカウンタ等のアプリで同様の記述を行っているものもあり
自分も同じようなことをやってみようと思ったのですが、何か問題がありますでしょうか。
もしくは、他にhtml内でphpの関数を呼び出すのに適したやり方はございますでしょうか。
ご教示お願いいたします。

環境は、windowsXPにxamppを使用し、apache2.2.6とphp5.2.5をインストールしています。
mb_string系を有効にした程度で、ほとんど設定ファイルは弄っていません。

402:nobodyさん
07/12/29 04:44:46
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

403:nobodyさん
07/12/29 04:45:44
.htmlという拡張子をphp扱いで動かさないとphpは実行できんよ


404:394
07/12/29 09:51:58
>>400
わかりました ありがとう!

405:nobodyさん
07/12/29 11:02:50
softbankの一部の機種じゃ
GETでマルチバイト文字を送れないので
変換すべきと思われるンですが
どんな関数でそれをやればよいですか?>

406:nobodyさん
07/12/29 11:25:51
マルチバイトが送れんつーか、逆に送れる文字つーのが決まってるんでURLエンコードすりゃええ

407:405
07/12/29 11:39:30
>>406
なるほど。
サンクスです。

408:nobodyさん
07/12/29 15:00:42
なんか、ここのスレってサービスが劣化したなぁ。
前は、質問したら丁寧に教えてくれたし5分以内には的確な回答がきた。

今は、質問するとニートとか氏ねとかそんなのが殆ど。
ストレスを発散する場所を間違えないで欲しい。

409:nobodyさん
07/12/29 15:08:36
なんだよもう…面倒くさいなあ。
仕方ない、面倒見てやるか

>>408
ニートとか氏ね

410:nobodyさん
07/12/29 15:11:14
ま、2chだし

411:nobodyさん
07/12/29 15:11:36
>>408
ニートとか氏ね

412:nobodyさん
07/12/29 15:36:55
相手をニートと断定しないあたりに、プログラマらしさを感じた。

413:nobodyさん
07/12/29 16:14:18
>>408
もしお前がニートなら氏ねそうでないならイ㌔

414:nobodyさん
07/12/29 17:09:40
if( >>408 == 'ニート' ){
   $anser = '氏ね';
}else{
   $anser = '市ね';
}


415:nobodyさん
07/12/29 17:11:40
>>414
ちょwwwwおまwwwスペルがwww俺氏ねorz

416:nobodyさん
07/12/29 17:27:27
確かに、誰からも参照されなくなったニートオブジェクトは、ガベージコレクトされるべきではある。

417:nobodyさん
07/12/29 17:56:44 tcLiBXaz
array("Apple" => "りんご", "Orange" => "みかん");
という連想配列を、
array('Apple' 'りんご' 'Orang' 'みかん');
という配列に変換したいんですが、どうすれば良いでしょうか?

418:nobodyさん
07/12/29 18:06:27
>>417
foreach ($array as $key => $val) {
$new_array[] = $Key;
$new_array[] = $val;
}

419:nobodyさん
07/12/29 18:19:38
$a = array("Apple" => "Ringo", "Orange" => "Mikan");
$b = array_keys($a);
$c = array_values($a);
$d = array();
for ($i = 0; $i <= count($a) - 1; $i++) {
array_push($d, $b[$i], $c[$i]);
}
print_r($d);

420:nobodyさん
07/12/29 18:23:01 tcLiBXaz
すげー
天才だ!
有り難うございます。

421:419
07/12/29 18:23:05
配列の値がローマ字に変わってたのはさっきなぜか日本語がうてなかったからだ
気にしないでくれ

422:nobodyさん
07/12/29 18:48:40 WA8jVfpj
PHPでコンストラクタのvisibility (public とか privateなどの指定) をsuper classより厳しく出来ないのは何で?
仕様というより、何の不都合があるのかという意味で。

423:nobodyさん
07/12/29 18:52:50
継承じゃねーからだろ

424:nobodyさん
07/12/29 18:56:45 yIBMpd50
ちりりDUKEの使い方を教えてほしい

425:nobodyさん
07/12/29 18:56:45 WA8jVfpj
>>423
むしろ、継承だと出来ないんじゃないの?

426:nobodyさん
07/12/29 20:06:36
>>414,415
しゅくだいはおわったのかい

427:nobodyさん
07/12/30 01:39:18
ブラウザからPOSTして送るデータの改行コードって
何に依存するんでしょうか?
CRLFになったり、LFになったりして困ってまつ

428:nobodyさん
07/12/30 01:42:14
phpでcookieの内容を受け取るにはどうすればええの?
自分でsetしたcookieではなくて、外部鯖から返されるcookieの値を取得したいんだけど


429:nobodyさん
07/12/30 01:43:35
>>1 も読めないのか。このヴァカども

430:nobodyさん
07/12/30 01:46:14
事故解決

431:nobodyさん
07/12/30 02:34:00 +D3WOxGf
2点質問させていただきます。


1. htmlに書くname属性に日本語を利用しても問題無いでしょうか?

2. htmlのフォームからphpの変数に変換するツール等は無いでしょうか?
    例:html:<INPUT type="text" name="name"> ⇒ php:$name = $_POST['name'];

432:nobodyさん
07/12/30 02:50:16
>>431
2はextract()でできるけど危険

433:nobodyさん
07/12/30 02:57:27
>>431
foreachで回せ
つか$_POST['name']で使うのがそんなに嫌なのか

434:nobodyさん
07/12/30 02:57:38
1 は html 的には何の問題もない

435:nobody
07/12/30 03:15:18 8C08uScj
PHPで多次元配列の値を半分だけとりだすのはどうすればいいでしょうか?

436:nobodyさん
07/12/30 03:21:54
半分だけってどう半分なの

437:nobody
07/12/30 03:35:21 8C08uScj
$a["a"][0]=>1
[1]=>1
[2]=>0
[3]=>1
[4]=>0
の$a["a"][0],$a["a"][1],$a["a"][2]の値です



438:nobodyさん
07/12/30 03:38:15
forなりforeachなりで回して半分まで行ったらbreakすりゃいいでしょ

439:nobodyさん
07/12/30 04:45:05
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

440:nobodyさん
07/12/30 05:31:14
>>439
お前いい加減うざいよ
わざわざ>>1貼る必要ないだろ
冬休みだからって何回繰り返してるんだよ池沼
せめて>>1嫁ぐらいに留めとけ

441:nobodyさん
07/12/30 05:38:36
>>440
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

442:nobodyさん
07/12/30 05:44:17
予想通りの流れだな
さすが冬休み

443:nobodyさん
07/12/30 06:49:36
冬休み (笑

444:255
07/12/30 07:51:44 G9WMPe2A
やはりsendmailの設定を何もしていないとまづいんじゃないかと思ってます。が、、、

445:255
07/12/30 08:01:43 G9WMPe2A
でも #sendmail ~ でメールは送れました。。。混乱しながら1週間くらい悩んでます。

446:nobodyさん
07/12/30 08:41:04
そのスクリプトでエラー表示させてる?
エラーが出てて表示させないで真っ白になってるんと違う

447:255
07/12/30 08:52:27 G9WMPe2A
出せてます ifでmail()がtrueを返したらok falseならno をprintさせてます。

、、、先ほど少し進展がありました。
#setenfoce 0
#restorecon -R /var
を設定することでメール関数がokを返すようになりました。
上のはselinuxを無効にするという意味で、下のは、、、どういう意味だろう。
(cd URLリンク(www.atmarkit.co.jp)
でもメールがこない。。。httpdのerroelogを見てみると
Domain of sender address apache@localhost.localdomain
→やっぱりsendmailの設定をいじらないといけないのかなと思い、
とりあえず#sendmail 自分のメルアド
~~~
としてsendmailをテストしてみると無事に自分のアドレス(プロバイダからもらったやつ)に届く

sender addressを設定しなくてもグローバルな環境でメール送れるじゃん
となって今また悩んでいるところです。

448:255
07/12/30 08:54:11 G9WMPe2A
失礼しました。Domain~のところですが、Domain~~~does not exitです。



449:nobodyさん
07/12/30 09:06:56
Fedoraって /var/log/maillog とかないの?

あとif文でOKとか、そういうんじゃなくて、
PHPが吐くwarningとかnoticeとかもみてるのかな?

> Domain~~~does not exit

does not exist? 自分宛に送ったメイルの差出人も localhost.localdomainに
なってるのかな?

450:255
07/12/30 09:46:25 G9WMPe2A
maillogの内容です。基本的にerrorlogと同じようなことがエラーになってま
す。
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
to=<:::::::::@fb3.so-net.ne.jp>, ctladdr=<apache@localhost.localdomain>
(48/48),
delay=00:00:17, xdelay=00:00:17, mailer=esmtp, pri=120328,
relay=mxin2.ms.so-net.ne.jp.
[202.238.83.12], dsn=5.1.8, stat=User unknown
Dec 30 08:39:28 localhost sendmail[4414]: lBTNdBJQ004412:
lBTNdSJQ004414: DSN: User unknown

>>Does not exitst
自分宛(?.so-net.ne.jp)に送ったメールの差しだし人が
localhost.localdomaiになってる可能性大です。
この場合やはりsendmailの設定を変更すべきなのでしょうか。
上にも書いた通り端末からsendmailを利用して自分宛(?.so-net.ne.jp)に
送った場合成功するので、
どこを変更すればいいのかで悩んでいます。


451:nobodyさん
07/12/30 10:04:09
もう完全に PHP とはかけ離れてるな

452:nobodyさん
07/12/30 11:35:19
なんか面白い関数とかありませんかね
正月っぽいの

453:nobodyさん
07/12/30 11:40:04
omikuji();
でおみくじが引けるよ!

454:nobodyさん
07/12/30 11:48:59
php_logo_guid()だろ、、、常考

455:nobodyさん
07/12/30 11:59:43
>>450

> メールの差しだし人が
> localhost.localdomaiになってる可能性大です。

俺mail関数使ったことないんで間違ってるかもしれないけど

これ見た感じだと→ URLリンク(jp.php.net)

「メールを送信する際には、必ず From ヘッダが含まれていなければなりません」
とかいてあるけど「可能性大」ってのは自分で「localhost.localdomail」のメアドを
指定した、っていう意味?

456:455
07/12/30 12:13:57
なんか変なこと書いてるな俺。気にしないで

457:nobodyさん
07/12/30 12:28:12
PHPに関係するのは、ctladdrの所だけだぁね。
ctladdr=<apache@localhost.localdomain>
ctladdr - The ``controlling user'', that is, the name of the user whose credentials we use for delivery.
こいつは mb_send_mailの4だったか5番目だったかのパラメータで設定したものが使われる。
指定してなきゃ、sendmailを呼び出したプロセスの所有者が使われるんだったかな。
で、apacheになるっと。

その部分を除いてPHPには全く関係無く、”sendmailを適切に設定していないことが原因” だから板違い。
Linux板か自宅鯖板のsendmailスレで、どういうメル鯖の構成(ISPのメル鯖に全部投げとか)にするかを書いた上で聞けばいいよ。

458:nobodyさん
07/12/30 13:13:30
ユーザー認証のページの作成をしています。
登録後のIDとPASSの管理をファイルでしようと思うんですが、
セキュリティを向上させるための定石というのはあるのでしょうか。

また、どのようにユーザーがログインする時はPOSTでデータを送信、
その後はセッションでログイン情報を維持という風にしたいのですが
これは特に問題ありませんよね?

459:nobodyさん
07/12/30 13:29:12
>>458
とりあえず、オライリーの「入門PHPセキュリティ」を読むことを勧める。

460:255
07/12/30 16:15:22 G9WMPe2A
不本意ながらこの泥沼から逃げることで一応解決しました。つまりpostfixに移行しました。

461:nobodyさん
07/12/30 16:50:41
逃げちゃだめ
とりあえず、オライリーの「sendmail」を読むことを勧める。

462:459
07/12/30 16:56:03
>>461
別に逃げても良いんじゃないの?

463:nobodyさん
07/12/30 19:23:36
<tr>
<td class="aaa">あああ</td>
<td class="bbb">いいい</td>
</tr>

↑をまるごと変数に入れるにはどうすればいいでしょうか・・・

464:463
07/12/30 19:26:45 MvMxVYb6
ID出し忘れました
申し訳ない

465:nobodyさん
07/12/30 19:27:27
1読め屑

466:nobodyさん
07/12/30 19:29:49
$hoge = "<tr>\n<td class="aaa">あああ</td>\n<td class="bbb">いいい</td>\n</tr>";
$hoge = "
<<< HTML
<tr>
<td class="aaa">あああ</td>
<td class="bbb">いいい</td>
</tr>
HTML;
";

467:nobodyさん
07/12/30 19:33:13
>>466は「"」→「\"」で。
下の方法が合ってるかはわからn

468:nobodyさん
07/12/30 19:42:11
>>466
なんか、色々間違ってる気がする。
URLリンク(www.php.net)

469:nobodyさん
07/12/30 20:02:47 1r819gof
聞きたいんですが、php5のマニュアルってどこかでダウンロードできないですか?
昔マンモス本の中身ダウンロードできるサービスがあったような気がするんだけど、
ああいうの今もないでしょうか?
あったら教えてほしいです、田舎に帰って勉強したいんだけど、
でかい本持ち歩くのキツイ、、

470:nobodyさん
07/12/30 20:08:55 lUFWIq2Z
MVCでテンプレートエンジン使わずにVIEWをやりたいんだけど
コントローラーで
$title = "タイトル";
require("hoge.php");
exit;
とかみたいなやりかたってダメ?
他に何かいい方法あるかなー?
っていうかviewを別にするならテンプレート使わないといけないのかな?

471:nobodyさん
07/12/30 20:12:51 lUFWIq2Z
>>469
URLリンク(www.php.net)

472:nobodyさん
07/12/30 20:18:46
>>459
すいませんわがままだと思うんですが
Web上で参考になるセキュリティ対策のサイトというのはないでしょうか・・・

473:469
07/12/30 20:24:49 1r819gof
>>471
すごい! ほんとにあったんですね!! 大感謝です
ありがとう!

474:nobodyさん
07/12/30 20:33:01
>>472
>>1

475:nobodyさん
07/12/30 20:38:53
>>466
レスありがとうございます
↑の書き方で例を表示することはできたんですが、
自分の場合"あああ"、”いいい”の部分も<?=$hogehoge?>の様に変数になっていて、
このまま実行してもセルの中が空になります
変数に変数を代入しようとしてるのが問題だと思うんですが、どうにかならないでしょうか
ローカルでテストしてる場合OSとPHPのバージョンは自分の環境を書けばいいんでしょうか
WindowsでPHP5.25なのですが

476:463
07/12/30 20:39:38 MvMxVYb6
またやってしまった
申し訳ない

477:nobodyさん
07/12/30 20:44:11 lUFWIq2Z
>>475
変数を『{}』でくくるか、
文字列と変数を『.』で繋げればいいんじゃない。

478:nobodyさん
07/12/30 20:48:41
普通にシングルクォートで囲って入れればいい話じゃないのか?

479:431
07/12/30 21:24:43 +D3WOxGf
>>432-434
レスありがとうございます。
とりあえずやりたいことは出来そうです。
もう少し勉強してみます。

480:463
07/12/30 21:58:49 MvMxVYb6
>>477-478
$hoge="<tr>\n<td class="hoge2"><?=hoge3?></td>\n</tr>";

変数と言うか、<td>~</td>間にPHPの書式を書こうとするとだめみたいです
<td class="hoge2">のようにタグの中だと効くのですが、<?=hoge3?>は無いものとして扱われてます
<?=hoge3?>を{}や''で囲むとその囲んだ記号だけ表示されます

481:nobodyさん
07/12/30 22:00:51
俺はシングルクォートで文字列括って改行コードは定数にしてるな
$html = '<a href="hoge.html" onclick="alert(\'ラヴィ\')">'.$hoge.'</>'.NEW_LINE.
'以上ラヴィでした';
こんな感じで書いてるなー

#てーか携帯でソース書くの辛いな

482:nobodyさん
07/12/30 22:09:56
つーかロジックとビューは分離しろ。
ヒアドキュメントとかアホじゃねーのか。

483:nobodyさん
07/12/30 22:22:57
ヒアドキュメント使うと、ロジックとビューが混ざるの?
ヒアドキュメントと文字列に差はないと思うけど。

484:nobodyさん
07/12/30 22:24:45
PHPのヒアは変数展開とかしてくれないから、混ざらないと思う。

485:nobodyさん
07/12/30 22:28:09 UcZOMDnE
>>484
展開したと思う。

486:484
07/12/30 22:34:14
ごめん、勘違いしてたみたい。
自重します。

487:nobodyさん
07/12/30 22:35:18
配列の展開やオブジェクトの参照はしてくれないけど({}付は省く)
普通に$unkoとかは展開されてる

488:nobodyさん
07/12/30 23:08:06 WyJGCA3E
.cgi .plのスクリプトを使いたいのだが
どうすれば いいだろうか?
クリックしても .bat / .exeみたいに 動かないし…

489:nobodyさん
07/12/30 23:15:01
>>488
スレ違い
PHPからなら
<?php
exec("pl hoge.cgi");
?>
とか

490:nobodyさん
07/12/30 23:16:28
(;´Д`)

491:nobodyさん
07/12/30 23:51:59
吹いたwwwwwww

492:nobodyさん
07/12/31 00:40:49
>>427
クライアントのOSだったと思う
俺はLFに統一してる

493:nobodyさん
07/12/31 02:01:26 ye8NBX1l
クッキーにIDとパスがあった場合、
そのままログイン後の画面を表示させるか、
入力フォームに値を入れてボタンを押させるか、
どっちが主流?

494:nobodyさん
07/12/31 02:05:01
IDはまだしも、パスワードはクッキーに保存しちゃ駄目wwwwwwwwww

495:nobodyさん
07/12/31 02:07:28
mysqlも穴だらけだなぁと思う今日この頃。
ソフトウェア開発のがリスクがない分楽かもしれん

496:nobodyさん
07/12/31 02:22:13
>>493
IDやPASSをそのまま入れてる訳ではないけど
ログインしたままが多いんじゃないかな(Googleとかニコ動とかそうだし)

497:nobodyさん
07/12/31 03:43:38
そこらへんのphpゲーム見て回ってるんですけど
普通にhiddenでIDとPASSをやり取りしてページを移動していますよね、
これってセキュリティ的にどうなんですか?。。

498:nobodyさん
07/12/31 03:55:53
最悪

499:nobodyさん
07/12/31 04:08:11
そうなんですか、どこでも普通に使われてるので何かやってるのかと・・・。

ログイン画面でID・PASSを送信、ハッシュ化、
それに応じたハッシュがあればセッションを作成してページ間の移動に利用、
ページを移動したらセッションを破棄、また移動時にセッションを作成、破棄・・・

というの無知ながら考えたんですが、これはセキュリティとサーバーの負担から考えてどうなんでしょう・・・。
どなたかご教授お願いいたします。

500:nobodyさん
07/12/31 04:09:21
クッキーに保存して良いのはセッションIDのような、ワンタイムパスワードっぽいのだけ。

501:nobodyさん
07/12/31 04:44:33
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

502:nobodyさん
07/12/31 04:46:57
KY

503:nobodyさん
07/12/31 04:59:41
いっそのことテンプレをNGワードにしてしまおうか。

504:nobodyさん
07/12/31 05:18:46
普通に答えてやればいいのに

505:nobodyさん
07/12/31 10:13:13
自信満々な態度でテンプレを貼り付けてくるバカを見ると失笑を買う

506:nobodyさん
07/12/31 14:09:09 ExHZywTc
phpでMySQLからデータを引っ張ってきて、XMLに加工して出力してるんですが、
XMLの加工そのものは成功してて、IEなんかのブラウザで見てる分には問題ないんですが、
Ajaxで非同期受信すると、responce has no propertiesとなってしまいます。
(status=4を受信できないっぽい)

上記のエラーは、FirefoxのFirebagで見てます。
Firebag上は、ちゃんとXMLが取得できてるので、php側からstatusの4を送信できればいいんだと思うんだけど、やり方わかる人っていますか?

507:nobodyさん
07/12/31 14:09:53 ExHZywTc
もしくは、Ajax用にphpで動的にXMLの生成を経験した人っておりますか?

508:nobodyさん
07/12/31 14:21:09
どうせどっかでタイプミスしてんだろ

509:nobodyさん
07/12/31 14:21:27
質問する時は、せめて「どうすればいいですか?」って聞き方にした方がいいと思いますよ。
わかる人、経験した人ってのは案外多いもんです。

510:nobodyさん
07/12/31 14:29:56 ExHZywTc
phpでxmlを出力すると、ヘッダーが違うからっぽいですね。
何を出力すればいいんだろ?

>>508
してないです。

>>509
はぁ・・・


511:455
07/12/31 14:32:14
> php側からstatusの4を送信できればいいんだと思うんだけど

HTTPのことを全く理解せずにAjaxとかやってるやつって
色々大変なんだろうなー

512:nobodyさん
07/12/31 14:33:17
ヘッダなら、これで

header("Content-Type: application/xml; charset=utf-8");


513:nobodyさん
07/12/31 14:37:06 ExHZywTc
自己レスです。やっぱりヘッダでした。無事解決しました。

514:nobodyさん
07/12/31 14:39:10 ExHZywTc
>>511
Ajaxやったことない人からすると、羨ましいですか?

>>512
はい、それです。やっぱ実力のある人は回答をスパッと出しますね。
実力無い人って、なんでウザイんですかね?

515:nobodyさん
07/12/31 14:40:39
>>514
そうそうお前みたいに質問者の癖に無駄に解答者煽ったりとかな。
本当に勘弁して欲しいわ。早く巣に帰れ。

516:nobodyさん
07/12/31 14:43:42

「実力のある人は回答をスパッと出しますね」

実力のないやつがえらそうにこういうこと言うのって恥ずかしいなあ。

"responce has no properties"

"Firebag"

この手の注意力散漫なやつはくだらない打ち間違いで時間を無駄にするタイプ。(中学生か?)

ふつーにFirefox使ってりゃ、この手のバカが打ち間違えないように
赤い下線で打ち間違いを教えてくれるのに、それでも間違えるってのは真性だなあ

517:nobodyさん
07/12/31 14:45:09
恥知らずの中二病が冬休みのお勉強中か?

はやく「php側からstatusの4を送信」してみろよカスが

518:nobodyさん
07/12/31 15:11:38 ExHZywTc
>>515-517
そんなに悔しかったんですか?(w
久しぶりに必死な人を見ました。
今年の歳暮れも大変だと思いますが(w 頑張って下さいね。

519:nobodyさん
07/12/31 15:23:53

Firebag(笑)

> 上記のエラーは、FirefoxのFirebagで見てます。
> Firebag上は、ちゃんとXMLが取得できてるので、



520:nobodyさん
07/12/31 15:24:29
>>518

随分舐めた態度の奴だなあ

何様のつもりなんだろう

521:nobodyさん
07/12/31 15:28:11
おまえが何様だ

522:nobodyさん
07/12/31 15:28:26
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \        上記のエラーは、FirefoxのFirebagで見てます。
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

523:nobodyさん
07/12/31 15:30:50
>>521

「php側からstatusの4を送信」ってのはいつになったらできるの?

524:nobodyさん
07/12/31 16:17:17
>>521は質問者ではないぞ。
大して解決策も出してない輩が粋がっていて、なんだかなーと。

525:nobodyさん
07/12/31 16:18:07
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \        php側からstatusの4を送信
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)
| / / /     |r┬-|    | (⌒)/ / / //
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/    だっておwwwwwwwww
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー'´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

526:nobodyさん
07/12/31 18:23:23 ExHZywTc
今、家の用事から帰ってきました。
まぁリアルで高校生なんですけど、高校生より劣っていることが
そんなに悔しかったんですか?(w

527:nobodyさん
07/12/31 18:26:45 ExHZywTc
まぁ高校生でもプログラム歴5年くらいあるからなぁ。
PHPは1年だけど(w
おっさん、めげるな!

528:nobodyさん
07/12/31 18:29:44
NG推奨 ID:ExHZywTc

いい加減しつこい。

529:nobodyさん
07/12/31 18:36:41
しつこさは同意だが、おまえも同じくしつこい野郎だな

530:nobodyさん
07/12/31 18:38:52
5年もやってて>>506か。頭の病気かも分からんね。

531:nobodyさん
07/12/31 18:41:07
いちいち反応するなよ。はい次の質問者どうぞ。

532:nobodyさん
07/12/31 18:41:25
極論厨死ね、リアルで死ね

533:nobodyさん
07/12/31 18:44:12 3CT6jxWV
投稿フォームでURLリンク(yahoo.co.jp)のようなアドレスを自動リンクさせるには
正規表現で<a href=""></a>を加えて置換する以外に何か方法ありますか?

534:nobodyさん
07/12/31 18:46:14
>>533
URLかどうかを判断する方法は正規表現以外でもできるが、結局は置き換えになる。

535:nobodyさん
07/12/31 18:52:11
URL入力欄を設ける

536:nobodyさん
07/12/31 18:58:49
>>535
おまいは何を言ってるんだ

537:nobodyさん
07/12/31 19:01:45
>>536
頭の固い馬鹿だな

538:533
07/12/31 19:02:09 3CT6jxWV
>>534-535
ありがとうございました。
都合のいい正規表現を考えるか、探した方が良さそうですね。

539:nobodyさん
07/12/31 19:36:21
>>537
ちょww質問の意味を汲み取れてない馬鹿はお前だろww
投稿フォームでアドレスの入力があった場合のオートリンクの話をしてるのに
なんでURL入力欄を設けるとかイミフなこといっちゃってるわけ?wwww

540:nobodyさん
07/12/31 19:43:39
必死な釣り人がいるが
低学歴は数年後にちゃんとみじめな人生送ることになってるから
放置しておいてやろう
家が金銭的に小康状態を保っているから
他にやることが無いから書き込みをしているんだ
今の彼は最高に輝いている

541:nobodyさん
07/12/31 19:47:16
煽らんでいいからおとなしく自分の非を認めて黙って引っ込んどけよ。

1. URL入力欄
URLリンク(www.example.com) (自サイトのURL)

2. 投稿フォーム
こんにちは。よかったらサイトに遊びに来てください。
最近 URLリンク(www.2ch.net) にもたまに出没しています。


1と2で張られたリンクには関連性はないだろ。

542:nobodyさん
07/12/31 20:41:37
>>538
正規表現関連、英語で良ければ
URLリンク(regexlib.com)
が便利。

543:nobodyさん
07/12/31 22:34:43 zQ+yU81P
たとえば
<name>ひろゆき</name>
って文字列があるとして、ここから「ひろゆき」だけを抜き出すには、どんな方法がスマートなの?
substrとstrposでゴチャゴチャ処理するのが嫌なんだけど。

544:nobodyさん
07/12/31 22:36:38
>>543
>>542

545:nobodyさん
07/12/31 22:36:53
>>543
DOM
SimpleXML

546:nobodyさん
07/12/31 22:46:18 zQ+yU81P
>>545
xmlって言ってないのに気を遣ってくれてありがとう。
simplexml使ってみます


547:nobodyさん
07/12/31 23:01:32 fLI7N5P/
インクルードさせて使うファイルが直接ブラウザで開かれたときに
エラーを返す方法ってありますか?

そもそもそんなこと気にしないで良いんでしょうか?

548:nobodyさん
07/12/31 23:04:14
.htaccessとかでインクルードさせる鯖アドレスだけを許可すればいんじゃね。
order deny,allow
deny from all
allow from localhost

みたいな

549:nobodyさん
07/12/31 23:07:17
ドキュメントルートの上に置けよと

550:nobodyさん
07/12/31 23:07:40
includeする時は別にHTTPでアクセスする訳じゃないから
localhost許可する必要すらないよ。

普通に全て拒否すればおk

551:nobodyさん
07/12/31 23:12:28
おいらはクラスや関数にして、直接呼び出しても出力や処理が実行されない形で書くから、
そういうのは気にして無いな。

その他には、他の人と重複するけど、
・Webサーバから直接アクセスできない場所に置く
・htaccessを使うなどして、アクセスを制限する
・設定ファイルなどで定数を設定して、インクルードファイル内でそれを確認
ってところかな。

552:nobodyさん
07/12/31 23:22:44
Webサーバからアクセスできない場所に置いたらincludeできねーだろw

553:nobodyさん
07/12/31 23:26:57
まぁ所有者と権限の設定をきちっとしろよという事だな


554:nobodyさん
08/01/01 00:01:03
あけおめ

555:nobodyさん
08/01/01 00:03:26 QS3lzF/U
くわしい解説ありがとう
勉強になりました

あけましておめでとうございます!

556: 【中吉】 【1298円】
08/01/01 00:42:52
<?php echo "A Happy New Year !!\n"; ?>

557:nobodyさん
08/01/01 01:54:00 mia1J22w
PHP5の正規表現について質問です。
PHP5.2.5 (cli) を使用しています。

1. PHPスクリプトのエンコードはUTF-8
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
2. URLリンク(2ch.net) を fsock で取得(これは問題なし)
3. mb_convert_encoding で UTF-8 に変換(これも問題なし)
4. その文字列を正規表現で処理…(ここで問題発生)

//if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動かない(エラーも吐かずに停止状態になる)
if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動く
print_r($matches);
else echo 'NO MATCH';

正規表現的に問題は無いと思うのですが…
「(?!</div>)」を消したり、「(?:.|\s)」を「(?:.|s)」や「.」にすると動きます。
「.」が改行にマッチするので、「.」に置換すればいいのですが、何故この様な事になるのか解りません。
何か無限ループ的なことになっているような気も…

558:nobodyさん
08/01/01 02:58:34 mia1J22w
確認用ソースです。[\r\n] でも発生する事があるようです。
URLリンク(abc.s65.xrea.com)

559:nobodyさん
08/01/01 03:19:28 mia1J22w
PHP4.4.7だと正常に動作しました。
MLog: [PHP-users 29514] Re:UTF-8、正規表現で全角スペースがヒットしないことがある?
URLリンク(mlog.euqset.org)
見たいなのも有るようなので、仕様(納得行かないのでバグのような気がしますが)でしょうか・・・?

560:nobodyさん
08/01/01 03:21:45
>>559のURLは関係無かったようです

561:nobodyさん
08/01/01 04:44:18
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

562:nobodyさん
08/01/01 04:48:03
>>561
そろそろいい加減にしないとアク禁されんぞ

563:nobodyさん
08/01/01 06:09:31
PHPで、既存のクラスにメソッドを追加することはできませんか?
RubyやPythonやJavaScriptでは、既存のクラスに対してあとからインスタンスメソッドやクラスメソッドを追加できるんですが、同じことをPHPでしようとして、やり方が分からず困ってます。
なおこの質問はPHP批判ではなく純粋に質問なので、「Ruby使えやボケ」とかはなしでお願いします。

564:nobodyさん
08/01/01 06:13:35
>>557
その現象が発生する $body はどんなの?
なるべく短いのを書いてみて。

565:nobodyさん
08/01/01 06:18:22
>>563
PHPをハックすればできるんじゃない?
ていうか既存のクラスいじるとかトリッキーなことしないで、
継承してからいじればいいと思う。
クラスの再利用ってそういうものでしょ。

566:nobodyさん
08/01/01 06:45:56
>>565
継承すると別のクラスになります。
使おうとしいてるライブラリがクラス名を固定しているため、他のクラスは使えません。
factory methodとかDIコンテナを使っていればいいのですが、そうではないので、継承では解決できません。


567:nobodyさん
08/01/01 06:52:45
単純な興味なんだけど
何のクラスにどういうメソッドを追加しようとしてんの?

568:nobodyさん
08/01/01 06:59:41
>>557
止まってるんじゃなくて、マッチングに時間がかかってるだけみたい。
対象文字列を短くしたら、数秒で終わるようになった。
たぶんeregi()のマッチングアルゴリズムがまずいんだろう。

UTF-8でいいなら、mb_eregi()のかわりにpreg_match()を使って、パターンに u オプション使えばいい。

それから、質問するときは現象が発生する最小限のコードにしてほしい。
getPage()とかいらんから、対象文字列を短くしてコードに貼付けるべし。

569:nobodyさん
08/01/01 07:02:35
つかあえてeregi使う利点ってあんの?

570:nobodyさん
08/01/01 07:03:40
>>567
privateやprotecedになっているインスタンス変数に対して、publicなアクセッサを定義したいというだけです。
他人が作ったまずい設計のクラスを、なんとかして使わなければいけないときに、RubyやPythonだとなんとかできてしまうので、同じことがPHPでもできたらいいなと思って。

571:nobodyさん
08/01/01 07:19:12
ふーん、ま無理だから自力で何とかするのがいいかと

572:nobodyさん
08/01/01 07:37:33 9i91PKAG
皆さんあけおめです

php_qrってのを使おうと思ったんですが、インスコまではやったんだけど
php_output_from_zvalがみつかんねぇってこと言われました
php_output_from_zvalってなんのパッケージ入れればいいんですか?


573:nobodyさん
08/01/01 07:46:35
PHPのバージョンが合ってないんじゃね

574:nobodyさん
08/01/01 07:54:18 9i91PKAG
>>573
php4なんですが、php_qr-0.1.0.tgzとphp_qr-0.1.3.tgzを試したんですが出来ませんでした。
php4ではどのバージョンを使えばいいんでしょうかね?

とりあえずエラーメッセージ載せておきます

Warning: dl(): Unable to load dynamic library '/usr/lib/php4/qr.so' - /usr/lib/php4/qr.so: undefined symbol: php_output_from_zval in /var/www/html/index.php on line 3


575:nobodyさん
08/01/01 09:04:48
>>564,568
有難うございます。色々試してみた所、仰るとおり、
PHP5だと何故か異常に時間が掛かるだけで(PHP4だと一瞬)、固まっている訳ではなかったようです。
どういう表現&対象文字列だと遅くなるのかがよく解らなくて困りますが…

一応、テストに使用したスクリプト、対象のソース、結果を纏めた物を用意してみました。
URLリンク(abc.s65.xrea.com)

後、異常に遅い表現は、preg_match + i,s,uオプション ではマッチしないようです(PHP4.4.7のmb_eregiだとマッチする)。
もう訳が解りません…

576:nobodyさん
08/01/01 09:27:18
>>574
そりゃドキュメントなりリファレンスなりreadmeなり見れば書いてあるんじゃないの
あとは作者に聞け

577:574
08/01/01 09:54:04
しょうがないからコード書き換えた
php_qr.cの594行目のチェックをはずしたらうまく行ったっぽい


578:nobodyさん
08/01/01 10:08:13
>>575
//if (preg_match('{<div[^>]*>(?:(?!</div>)(?:.|[\r\n]))*?管轄裁判所)}isu', $body, $matches)) // NO MATCH(何故一致しないのかわからない…)

i,s,uはパターン修飾子だから、 /正規表現/isu の書式じゃないの?
URLリンク(jp.php.net)



579: 【大凶】 【1876円】
08/01/01 10:15:38
自分で正規表現考えながら書くのは結構好きなんだが、
他人が書いてるものを見るとわけがわからなくて嫌いになりそうになるよな。

580: 【大凶】 【1905円】
08/01/01 10:24:01
そこでコメントですよ

581: 【末吉】 【1693円】
08/01/01 10:35:04
大凶 2連チャンとかw

582:nobodyさん
08/01/01 10:56:15
>>578 は関係ないっぽい。忘れて。

583: 【吉】 【1505円】
08/01/01 13:54:05
この板の連中は運悪いなw
今年もくだらねぇ質問して、時には回答にまわって勉強させてもらうぜ。
ヨロシクな

584:nobodyさん
08/01/01 14:43:07
コーディングが冗長になると、スクリプトの動作速度も鈍くなったりする?

585:nobodyさん
08/01/01 15:02:55
とんでもない冗長なら遅くなるね

586:nobodyさん
08/01/01 15:06:59
理論的には単純にコードが長くなれば誤差程度だが当然影響は出る
ただ100行のコードが1万行になるわけではないだろ?
せいぜい数行~数十行増えるだけのはずだ
そうなると体感動作速度は一緒だし実測しても変わらない
気にする必要はないからわかりやすく書くよろし
間違っても条件文で読みにくい三項演算子なんて使うなよ

587:nobodyさん
08/01/01 15:31:35
行数で判断できるもんじゃないよ

588: 【豚】 【542円】
08/01/01 15:33:09
2chの書き込みは行数で判断できるから3行以上の長文はスルーだな

589:nobodyさん
08/01/01 15:35:00
>>588にスパムフィルタとか作らせたら凄いことになりそw

590:nobodyさん
08/01/01 15:35:06
気になるならプロファイラ使って調べれば良いんじゃね。
あとで使い勝手とか教えてくれたら嬉しい。

591:584
08/01/01 15:56:16
>>585-590
レス、thx.
ちょっと安心したわ。
プロファイラってのも使ってみようと思う。
ありがとう。

592:nobodyさん
08/01/01 16:14:59
>>588
豚ってwwwwwwww

593:nobodyさん
08/01/01 17:29:15 F2c2JMdr
setcookieのドメインの所に、
クッキーを与えるドメインとは別のドメインを書いても
別のドメインでそのクッキーを使えるようにはならないのでしょうか?
やってみたけど上手くいかないので、やり方が悪いのか根本的に出来ないのかを知りたいです。

594:nobodyさん
08/01/01 17:31:31
$sql = "SELECT id,pass FROM login WHERE id = '".$id."' AND pass = '".$password."'";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

この記述でクエリの送信に失敗しました と出るのですが
記述が間違っているんでしょうか?

595:nobodyさん
08/01/01 17:43:33
>>593
多分だけど、それが可能だとしたら他のドメインのcookieを書き換える事が可能ということに
なるので、ブラウザ側が許可しない気がする。

596:nobodyさん
08/01/01 17:49:21
>>594
mysql は使ってないから、詳しくは知らないけど、これで調べれば少しは判るかも。
URLリンク(jp.php.net)

597:nobodyさん
08/01/01 18:02:26
>>596
その関数を使ってみたところ
単純にデータベース接続が完了してなかったみたいでしたorz

くだらない質問にありがとうございました。

598:nobodyさん
08/01/01 19:52:12 gtyeLFx+
少人数利用のBBSで
setcookie("pass", $pass,time()+60*60*24*30);
$pass = $_COOKIE["pass"];
if($pass == abc){BBSを表示}
を使って、簡単なログイン制限を掛けてるのですが、
この処理のあるbbs.phpを直接表示した場合、IE7.0でもFireFoxでも全く問題なく処理されるのですが、
bbs.phpをIE7.0でインラインフレームを使い入れ子にした場合、
フォームの処理を行うとクッキーがクリアされて、またpassの入力画面に戻ってしまいます。
FireFoxでは問題ないようなのですが、インラインフレームの利用で何か特別な問題が起こることはあるのでしょうか?

599:nobodyさん
08/01/01 21:46:01
IEとFirefoxではcookieが共有されるセッション管理の単位が違うせいかな。

同じPCから複数のユーザとしてログインする必要がないなら、 setcookieで path とか domain も指定すれば
cookieが共有される気がする。

600:nobodyさん
08/01/01 22:55:23
javaでいう static intializer はPHPではどう書きますか。

class Foo {
 static Map table = new HashMap();
 static { // static initializer
  table.put("<", "lt");
  table.put(">", "gt");
  table.put("&", "amp");
  table.put("¥"", "quot");
 }
}

601: 【大吉】 【314円】
08/01/01 23:02:33
>>1

602:598
08/01/01 23:04:36 gtyeLFx+
>>599
ここでも仕様が違うんですね。
他の方法を試してみます、どもでした。

603:nobodyさん
08/01/01 23:30:56
Parse errorでunexpected T_PAAMAYIM_NEKUDOTAYIMとか出てきた
ハァ?何これフザケテンノ?
URLリンク(php.liukang.com)

ぐぐってみたら同じこと思った人がいたようで
URLリンク(p0t.jp)

604:nobodyさん
08/01/01 23:43:58
ユダヤの陰毛でつね

605:nobodyさん
08/01/02 03:58:58 xlZOpAZW
画像レスできる板とできない板のある掲示板の画像レスできない板で
投稿フォーム改造して画像レスを送ってみたら
アップロードされちゃったんですが見ることができません。
これをHTMLやヘッダに手を加えて画像レスが見れる状態のHTMLを送って
もらうことはできますでしょうか?
PHPを使ってる掲示板なのでここで質問してみました
よろしくお願いします

606:nobodyさん
08/01/02 04:25:51 zb153+EZ
12345678790
みたいな可変する文字列のn番目に文字列"\n"を挿入する場合、
substrで切り出してシコシコ成形する以外にスマートな方法ありませんか?

607:nobodyさん
08/01/02 04:44:42
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

608:nobodyさん
08/01/02 06:24:31 XSzMXv90
sqlへのselectの結果(オブジェクト化したもの、$obj)に対して、
$obj->NAMAE で名前カラムのデータが求められるとします(カラム名は必ず大文字)
で、上記の呼び出しを関数化したとき
function yobidashi($name){
 $name=strtoupper($name);
 return $obj->name;
}
としても上手くいきません
$obj->の後に続くのはカラム名でなければいけないからなんですが、
どういう書き方にしたらいいのかわかりません
どなたかアドバイスお願いします

609:nobodyさん
08/01/02 06:46:53
>>608
$obj->$name

610:nobodyさん
08/01/02 07:34:16
4:44 のテンプレ貼り ktkr

611:nobodyさん
08/01/02 07:51:34
手動スクリプト乙w

612:nobodyさん
08/01/02 08:26:14
>>608
いまいち状況がワカラン中でレスをするが・・・・
return $obj->$name;

これでどう?
関数呼び出す時は呼び出し方の例も記載すると
レスし易いと思う



613:nobodyさん
08/01/02 08:56:01
>>608

return $obj->__get($name);

ではどうですか?

614:nobodyさん
08/01/02 08:59:39
>>608
そのオブジェクトを返してる部分にメソッドを追加する

615:nobodyさん
08/01/02 09:49:13
>>608
global $obj;

616:nobodyさん
08/01/02 10:06:19
>>608
evalを使うしか思いつかない。
URLリンク(jp.php.net)

return eval('return $obj->'.$name.';');
ってかんじかな。


617:nobodyさん
08/01/02 10:12:07
ありがとうございます
単純に$obj->$nameでOKでした すみません、クダ質で…
evalとかglobalとか調べてついでに覚えます
ほんとにありがとう

618:616
08/01/02 10:17:01
>>617
そんな書式があったのか...。
逆に勉強になった。ありがと。

619:nobodyさん
08/01/02 12:44:05
Active Perlをインストールしないと 「.pl」は動かないの?

620:nobodyさん
08/01/02 12:52:33
答えてるやつも大分初心者だな

621:nobodyさん
08/01/02 14:12:54
そんな下らない事を書かずにはいられない620は人生初心者だな

622:nobodyさん
08/01/02 16:30:00
>>617
一番覚えるべきなのは「可変変数」かと

623:nobodyさん
08/01/02 19:05:49
>>619
Windowsでの話ならその通り。あくまで中身がPerlだったらの話だけど。
別にActive Perlじゃなくてもいいけど、定番だし普通これかな。
Linuxがどうかは知らない。

んでPHPと関係ないんで、次からはスレちゃんと選んでね。

624:nobodyさん
08/01/02 19:27:01
そういえば長いこと*.plのうんこアイコン見てないな

625:nobodyさん
08/01/02 20:42:30 lW+cmhhe
>>623 ありがとうございます 
PHPとPerlを同じものと勘違いしていました すみません 

626:nobodyさん
08/01/02 21:55:46 XSzMXv90
jpgファイルが存在するかどうか確認する関数ってないですか?

627:nobodyさん
08/01/02 22:08:15
file_exists

628:nobodyさん
08/01/02 22:08:22
どういう使い方を想定してるのかよく分からんので、適当に推測して答えると、

想定用途 : 得ろサイトの直リンクのURLを文字列として持っていて、
       それがまだ取得可能かどうか調べたい

答え : getimagesize() で充分。
    getimagesize(そのURL)、あるいはファイルを取得してから、getimagesize()

629:nobodyさん
08/01/02 22:14:46
クラスを使って、プログラムしてる人どれくらいいる?

掲示板を作ってみようと思うんだけど、クラス……というかオブジェクト指向がいまいち理解出来ない。
やっぱし、これくらい使いこなせないと掲示板自作するのは早いかな。

630:626
08/01/02 22:19:01 XSzMXv90
>>627
ありがとう
if(file_exists("URLリンク(jp2.php.net)")){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
というのを試したんだけど、「なかった」と言われます
マシン内の画像で試してもそういわれます。絶対存在してるのに、、
何が原因でしょうか?
php5 apache2 winXPでやっています

631:nobodyさん
08/01/02 22:37:06
>>629
(゚Д゚)ノ ァィ

632:nobodyさん
08/01/02 22:37:22
志村~

633:nobodyさん
08/01/02 22:38:43
>>629
bbsなんてそんなの理解せんでもできるよ
ただ後のメンテを考えるなら覚えた方が良いかも

あとから直すのなんてめんどくさくてやってられねーとなる

634:nobodyさん
08/01/02 22:39:17
クラスは使うけどオブジェクト指向の概念なんかわざわざ理解しようと思ったことはない

635:nobodyさん
08/01/02 22:47:04
>>629
覚えれば便利。

同じような処理を書くのにウンザリしてきたら、嫌でも辿り着くから心配ないよ。

636:nobodyさん
08/01/02 22:51:42
>>629
関係ない。
単なる概念、プログラムする対象の捉え方の違い。

637:629
08/01/02 22:54:29
レスありがとう。

荷がだいぶ軽くなったよ。
いろいろ、PHPの参考書とかネット上のOOP関連の文献を読み漁ってみたけど、やっぱりモヤッとしてた。

何にせよ、ありがとう。

638:nobodyさん
08/01/02 23:10:10
functionで関数作ってるんですけど
クラスとオブジェクト指向っていうのはそれとはまた違ったものなの?

639:nobodyさん
08/01/02 23:12:39
OOPっていうのは読んでいるだけじゃ身に付かない。
実際に自分でコードを書いてみて体で体験して初めて感覚がつかめる。
その感覚こそが大事。つまりオナニーだけしていてはダメで、
実際に女に入れてみなければ真理はつかめないということ。
そして真理をつかんだなら、ぜひオウム真理教の再興を祈念し、入信することを勧めたい。

640:nobodyさん
08/01/02 23:16:11
オウムなんか再興しないでいいだろ
>>639がセックス教団作ってよ

641:nobodyさん
08/01/02 23:18:30
>>638
関数でハンドルを取る奴があるとするだろ?
例としてファイルハンドルとしようか

fread(file,num)

↑をOOPではハンドルを主体にして呼ぶ↓という感じ

file->fread(num)

メソッドに操作対象を渡すか、操作対象からメソッドを呼ぶかという違い

642:nobodyさん
08/01/02 23:19:38
>>638
class と function はまったく別物。
URLリンク(www.php.net)

643:nobodyさん
08/01/02 23:25:06 EFH6C9iG
大規模なもん書く予定なんで
クラスについておぼえときます・・・

644:nobodyさん
08/01/03 01:26:52 PuYJW96T
$array = array("aaa","bbb","ccc")

をechoした時

"aaa","bbb","ccc"

と表示させたいのですが、forを使う以外の方法はありませんでしょうか?

645:nobodyさん
08/01/03 01:31:37
>>644
echo '"'. implode('","', $array) .'"';

646:644
08/01/03 01:35:00
>>645
出来ました!こんなやり方があったんですね。
勉強になりました。ありがとうございました。

647:nobodyさん
08/01/03 01:35:13
>>645
俺が投稿しようとしてた内容と1文字も違わなくてワロタ

648:nobodyさん
08/01/03 02:08:57
何に使うんだろうな

649:nobodyさん
08/01/03 04:45:11
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

650:nobodyさん
08/01/03 08:23:14 9iX7ULgu
URLリンク(phpspot.org)

ここにある?filename=**で**をincludeするのが危険なのはわかったんだけど、こういうのも危なかったりする?
$text = htmlspecialchars($_GET['text']);
$textfile= './txt/'.$text.'.txt';

readfile($textfile);

651:nobodyさん
08/01/03 09:11:37
>>650
text=../../hogehoge みたいなアクセスも出来てしまう気がする。
ディレクトリ指定が不要なら basenameを使うべき。
URLリンク(jp2.php.net)

あとファイル名に対して htmlspecialchars を使うのに、意味があるのかちょっと疑問。


652:nobodyさん
08/01/03 09:15:33
>>651
ためしにtext=../../hogehoge

htmlspecialchartは元ソースに$textがなかったときに{$text}がみつかりませんでした。って表示してるからだ。ごめん消し忘れた。

653:650
08/01/03 09:21:41 9iX7ULgu
ああ、途中で書いちまった。
ためしにこのphpファイルと同じディレクトリにaaa.txtを置いて?text=../aaa ってやってもWarning: readfile(./txt/../aaa.txt) [function.readfile]: failed to open stream: No such file or directory in C:\www\aaa.php on line *。になる。


654:650
08/01/03 09:25:59 9iX7ULgu
あ、ごめん、aaaよみyこめた。basenameつかってみるー

655:650
08/01/03 09:47:57 9iX7ULgu
うーん、、困った。
できればディレクトリ指定でファイルを読み込みたいんだけど、どうにかならないものですかね・・・

656:650
08/01/03 09:56:17 9iX7ULgu
eregで$textに.が入ってたら不正扱いにするとかでおkかな?
ごめん俺書き込みすぎだ。

657:nobodyさん
08/01/03 10:16:03
一般論として、不正な文字列かチェックするのではなく、正当な文字列かチェックするようにしたほうが良い。

658:nobodyさん
08/01/03 10:27:05
if(eregi("^[a-z0-9_]+$",$text)){
$textfile = './txt/'.$page.'.txt';
}else{
$textfile= './txt/error.txt';
}

こんなかんじになりました。大丈夫かな・・・
>>651>>657ありがとう。

659:626
08/01/03 10:33:10 uA4WBKbO
すみません、>>630の問題ですが、何が原因に考えられるでしょうか?
お手隙の方、意見いただけると嬉しいです お願いします

660:nobodyさん
08/01/03 10:40:55
>>659
>>628 >>632 が不憫すぎる。

原因は
URLリンク(jp.php.net)
URLリンク(jp.php.net)


661:nobodyさん
08/01/03 14:38:25 sD9SHXAa
セッションにユーザーのログイン情報を書き込み、ページ間のやり取りで使用してるんですが
これだと、セッションを破棄・ブラウザを閉じるかしない限り、
下記のように、他のページへ一旦移動してまた戻ってくることができますよね

ログイン画面→ID・PASS認証・セッション発行→専用ページ→他の見知らぬサイト→専用ページ

見知らぬサイト へ行ったら
専用ページへ直接入れないようにしてしまいたいんですがどういう手があるんでしょうか。
ちなみにセッション管理でやりたいんですが。。

662:nobodyさん
08/01/03 15:45:13
Cache-Control no-cache

663:nobodyさん
08/01/03 16:03:13
no-cache してもsession はサーバ・クライアント共に残ってる気がする。

664:nobodyさん
08/01/03 16:16:18
>>663
「気がする」じゃ、何の説得力もない。
学生ならバカ学生で済むが、社会人でそんな安い了見で仕事しているなら死んだ方がいい。
お前は人間の屑。

665:nobodyさん
08/01/03 16:20:29
>>664
まあまあ私のオッパイでも揉んで元気だしてよ

666:>>661
08/01/03 16:21:10
no-cacheはセッションに関係ないみたいですね。

667:nobodyさん
08/01/03 16:25:54
読解力がない人は人生楽しそうな気がする。なりたくはないが、うらやましい。

668:nobodyさん
08/01/03 16:26:17
専用ページを表示した時にsession破棄するんじゃだめなの?

669:nobodyさん
08/01/03 16:28:33 EPFlyde6
掲示板の書き込み終了後、リロードによる二重投稿防止を行いたいのですが、
ユーザーがフォームよりデータをサーバに送信後、サーバ側での処理についてご質問させていただきます。

1.ユーザーから送られてきたデータと、ログファイルの最終行のデータを比べる
2.1のデータがお互い違うデータであれば書き込み


このような処理を思いつきました。しかし、これだと2回ログファイルを開くことになるのですが、どなたか
もっとこうしたほうがいいっていうのがありましたらご指摘アドバイスお願いいたします。

670:>>661
08/01/03 16:29:57
>>668
一番重要なこと忘れてました;
専用ページは複数あって、その橋渡しにセッションを使っているんです。
セキュリティ面でセッションがいいかと思って。。

671:!omikuji !dama
08/01/03 16:31:50
>>661
・セッションデータに時間情報を入れて、専用ページではその時間情報ではじく。
 3秒ルールみたいなものだから厳密には要求通りじゃないが、
 セッションハンドラを使えば簡単に実装できる。
・専用ページ内での遷移は全てAjaxで行い、ブラウザの履歴・キャッシュを無意味なものにする
 めんどくさい
・そもそも外のページに行ってもいいじゃないか。
 重要なデータが漏れるのなら、サイト自体の作りに問題がある

672:nobodyさん
08/01/03 16:35:44
>>669
URLリンク(www.phppro.jp)
ここが参考になると思います

673:nobodyさん
08/01/03 16:47:34
>>671
うーん
やっぱり難しいんですかね・・・

674:nobodyさん
08/01/03 16:54:28 +JPyHTOV
soap関数を使ったアマゾンの検索サービスを作ろうと思っているのですが、
本に付いてきたサンプルを実行させた所、

-------------------------------------------
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client]
We encountered an error at our end while processing your request.
Please try again in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\
amazon.php:22 Stack trace: #0 [internal function]:
SoapClient->__call('KeywordSearchRe...', Array) #1
C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php(22):
SoapClient->KeywordSearchRequest(Array)
#2 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php on line 22
-------------------------------------------

この様なエラーが出てしまい実行できませんでした。
自分でエラーの出てる箇所を追ってはみたのですが、どうしても分からず困っています。
どうかよろしくお願いします。

ソースはこれです
URLリンク(ranobe.com)

675:nobodyさん
08/01/03 16:55:06
sessionのキーをcookieに保持しないようにすれば?
リンクのみでキーの受け渡しを行えば多分いけるはず
あとついでだからsession_regenerate_idで
毎回sessionid変えてやればいいんでない?



676:nobodyさん
08/01/03 17:09:46
>>674
21行目でエラー返ってるのに
22行目で変換しようとしてexception発生してるんじゃないかな
URLリンク(jp.php.net)


677:>>661
08/01/03 17:16:44 sD9SHXAa
>>675
ユーザ側が下手しなければセキュリティ的にも一番理想的かもしれない
ちょっと試してみます

678:nobodyさん
08/01/03 17:16:53
よく分からんがアマゾンからIDとかもらった?

679:nobodyさん
08/01/03 17:17:02
>>674

ぐぐると色々出てくる、なんなんだろうね。
URLリンク(www.google.co.jp)

680:674
08/01/03 17:52:55 +JPyHTOV
>>676>>679
色々とありがとうございます。参考になります。
もうちょい調べて頑張ってみます。

>>678
確か無くても実行できるはずなので、プログラム側の問題かと思います・・

681:626
08/01/03 18:21:01
>>660 >>628 >>632
気づかずすみませんでした
いまさらですが、getimagesizeを使わせてもらいました。
が、上手くいきません
とりあえずもうしばらく自分でがんばってみます ありがとうございました

682:nobodyさん
08/01/03 18:23:33
>>675
それだとさ
セッションIDの含まれたURLを保存しといただけで
直接専用ページに入れるんじゃ?
セキュリティ敵にもよくないんでは

683:nobodyさん
08/01/03 18:34:04
>>681
自分でやろうとしているところを邪魔して悪いが、うまくいくっぽい。XP/PHP5 実行はコマンドライン。

<?php
checkValidImageUrl('URLリンク(jp.php.net)');
checkValidImageUrl('URLリンク(jp.php.net)');

function checkValidImageUrl($url) {
if (@getimagesize($url)) {
echo "$url is valid.\n";
} else {
echo "$url is unvalid.\n";
}
}
?>

684:nobodyさん
08/01/03 18:35:43
unvalid はないな、invalidだ。恥ずかしい。うぇ。

685:nobodyさん
08/01/03 18:39:27
file_existsもコケてたから、URLのwrapperをoffにしてるんだろうね。

686:nobodyさん
08/01/03 18:45:42
>>685
file_exists は stat ファミリで、http/httpsはstatをサポートしてないから、onにしても動かないはず。

687:>>661
08/01/03 19:02:25 sD9SHXAa
>>682
そうなんですか
もうなんかどーにもorz

688:nobodyさん
08/01/03 19:05:42
>>682
過去のセッションを適切に破棄してやればそれは無い
破棄しなくても可能な時間はセッションの有効期限内のみだし

php5.1以降であれば
session_regenerate_id(true);
とすることで自動的に破棄される
あとはリロード時のURLチェック等入れればいける


689:nobodyさん
08/01/03 19:07:22
つーか専用ページに戻った時にセッション張られてると困ることって何があるの?

690:>>661
08/01/03 19:22:21 sD9SHXAa
えーとすいません。
phpゲームを開発してて、戻るボタンでNPCにまた話しかけたりとか無くしたいんです。
(でもこれってSESSION使えば二重処理とか発生することはないなそういえば・・・。)

とりあえず戻るボタン押したり、他のサイト行ったら
ページが表示されないようにできればこちらは万々歳ですから
>>675使ってみます。

691:nobodyさん
08/01/03 19:24:01
>>690
phpに詳しい奴ちょっと来い
スレリンク(news4vip板)l50

692:>>661
08/01/03 19:38:02 sD9SHXAa
>>691
ちょっとみてきます

693:nobodyさん
08/01/03 19:44:42
>>692
ちょっと見てきますってw
どう見てもお前って分かるから

694:nobodyさん
08/01/03 21:56:40
変数に出力前の関数を代入することはできないんでしょうか
絶対に出力後が代入されてしまうのですが

695:nobodyさん
08/01/03 22:01:34
出力前の関数って何

696:nobodyさん
08/01/03 22:07:30
isset等の値を参照するものです。

697:nobodyさん
08/01/03 22:08:14
俺用語では分からん

698:nobodyさん
08/01/03 22:10:13
どういう風に呼び出したいんだよw

699: ◆SHiMA//5DA
08/01/03 22:11:06 DBOTcnZE
 

700:nobodyさん
08/01/03 22:26:00
渡した引数をそのまま返して欲しいということか?

701:nobodyさん
08/01/03 22:28:23
>>696
どういうことなのかよく分からんが、第6感を働かせて
みたところ、「issetで存在を確認したい変数を関数の
引数に入れて処理させるだけの話じゃないのか」という
結論に達した。

もしくは関数呼ぶ前にifなりなんなりで処理してしまうとか。
……>>694が意味不明でやっぱりよく分からんな。

702:nobodyさん
08/01/03 23:02:36
MySQL使ってみたんですけどこれってflockとかないんですか?
書き込み多いので変なことにならないか心配すぎる

703:nobodyさん
08/01/03 23:04:04
ないが大丈夫

704:nobodyさん
08/01/03 23:06:12
どもっす

705:nobodyさん
08/01/03 23:22:41
トランザクション処理はやっとけ

706:nobodyさん
08/01/03 23:48:17
>>702
RDBMSにはファイルのロック以上に緻密なロックの仕組みがあり、それを
知らないと意図通りの更新や読み出しができないことはある。
なのでそれはきちんと勉強した方がいい。
MySQLにどの程度実装されているかは知らないけど、ファイルロックよりは
安全にデータの更新や参照ができるはず。

707:nobodyさん
08/01/04 00:52:28 Qh7lpWjF
wordpressでプラグインを自分のページ用に改造しています。
global $wpdb;→$random_idにランダムな記事のIDを指定をし、そのIDに基づいて
query_posts('page_id=urlencode($random_id)');
while (have_posts()) : the_post();
ループ
endwhile
としているのですが、どうもうまくいきません。
query_posts('page_id=urlencode($random_id)');
の部分の書き方がおかしいのかと思いますが、どうすればいいのかわからないのでおしえていただけませんか。

708:nobodyさん
08/01/04 04:38:17 eljYrwXk
static変数のアクセスの仕方がよく分からないんですが

error_reporting(E_ALL);
class Hoge
{
    public static $name = 'test';
}
$obj = new Hoge;
echo Hoge::$name; //test
echo $obj->name; //Notice: Undefined property: Hoge::$name
echo $obj::name; //Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

phpではインスタンスからはstatic変数にアクセスできないってことなんでしょうか?
他にどういう方法がありますか?
(アクセサ使えって話かもしれないけど)

709:nobodyさん
08/01/04 04:45:07
まず読め→【PHP マニュアル】URLリンク(www.php.net)
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
スレリンク(php板)

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

710:nobodyさん
08/01/04 05:30:54
>>708
URLリンク(www.php.net)

711:nobodyさん
08/01/04 07:51:10
php5
windows
preg_replaceでーを比較しようとしたところ
for character class at offsetというエラーがでました。
SJISだからかなとおもってEUC-JPに変換してみましたがやはり同じエラーがでました。

どうしてなんでしょうか?

712:nobodyさん
08/01/04 08:39:34
>>1 >>709

713:711
08/01/04 10:02:56 z4j42IHm
お願いします

714:nobodyさん
08/01/04 10:10:03
EUC-JPで保存してないんじゃないの
変換ができてないとか
SJISだとエラー吐くよ

715:nobodyさん
08/01/04 10:12:04 eljYrwXk
>>710
それは勿論読んだ上の質問。
その例で言うと
print $foo::$my_static . "\n";
がパースエラーになるんだけどなんで?

716:nobodyさん
08/01/04 10:49:17
>Example#1 static メンバの例
>~中略~
>print Foo::$my_static . "\n";

読んだ、ねぇ

717:nobodyさん
08/01/04 11:59:14
>>716
質問者はインスタンス経由でstaticフィールド変数にアクセスする書式がないのか聞いてるんでしょ?


>>715
でも、

URLリンク(www.php.net)
>static なメンバは、インスタンス化されたクラスオブジェクトから アクセスすることはできません (static なメソッドからは可能です) 。

ってはっきり書いてあるから、疑問を持つ余地はないかと。
マニュアルページのサンプルがエラーになるのは、どうかと思うが。


718:nobodyさん
08/01/04 12:23:57
zendのやってることだからなぁ…
windows のセットアップバイナリは壊れたまんまだし、
.chm のヘルプファイルのキーワード文字化けも一向に直そうとしないし…

719:nobodyさん
08/01/04 14:12:45 KzTuE4cg
ファイルの最終更新日取得のスクリプトについてです。
なぜか、下記スクリプトでは動きません。(結果が表示されません。echo date をはずしてもブランクが表示されます)ご教授ください。

<?php echo date("y.m.d H:i:s", filemtime("URLリンク(xxx.com)")); ?>

サーバー:さくら
バージョン:4.4.7

720:nobodyさん
08/01/04 14:19:29
>>719
外部ファイルは取得できない

721:719
08/01/04 14:23:57 KzTuE4cg
>>720

/homeからのパスに書き直したら取得できました。
ありがとうございました。

722:nobodyさん
08/01/04 16:07:08 WmrqhPBt
文字列に全角スペースが含まれている時、半角スペースに変換します。
strtr($word," "," ");

これで変換出来るのですが、複数の全角スペースが含まれている時、
1つの半角スペースにしたいです。その場合、もっとも簡単な方法(関数)
はありますでしょうか?(forを使う方法は自分で試しました。)

723:nobodyさん
08/01/04 17:02:46 HZMzJv1w
UTF8でPHPスクリプトを書いてます。
勉強のため、ユーザーがフォームから名前を入力して、ファイルに記録する簡単なスクリプトを書いて練習してます。
そこで名前は18バイトまでの入力を受付け、それ以上の入力はもう一度やりなおしさせるためのチェックをしてみました。
半角1文字=1バイト、全角文字1文字=2バイトとして計算したいのですが、ここで詰まっております。

UTFなため全角文字を3バイトとなってしまいます。

$_POST['name']←これがユーザーが入力した名前が入ってる変数です
ためしに、フォームより、名前「あああ」を入力してみたとして、6バイトとしてサーバで解釈したいのですが、
echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。
echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。

どなたかご教授お願いします。

724:nobodyさん
08/01/04 17:16:24
>>723
URLリンク(jp.php.net)
こいつでどないかな。

725:nobodyさん
08/01/04 17:47:17
> echo strlen($_POST['name']);←これだと半角1バイトですが、全角3バイトで9と表示されます。
> echo mb_strlen($_POST['name'], "UTF8")←これは3と表示されます。

9バイトで3文字→一文字3バイト、ってわかるのなら
一文字2バイト換算で 3文字 x 2バイト = 6って計算はできるよね

ぢゃあ、strlenで10バイト、mb_strlenで4文字だったら、

「半角」の文字数を x 「全角」の文字数を y と置いて
連立二次方程式の解の公式を使って、
半角の字数と全角の字数を計算して、

x + y * 2 を求めりゃいいんじゃないの
(深く考えずに書いているので、まにうけないでください)

726:nobodyさん
08/01/04 18:14:15
>>725

>>724の処理のほうがいい

727:nobodyさん
08/01/04 18:15:59
つーか何でバイト数で切ろうとするのかが謎

728:nobodyさん
08/01/04 19:00:42 HZMzJv1w
>>724
ありがとうございます。そのやり方で解決しました。

729:nobodyさん
08/01/04 20:11:18
>>722
正規表現

730:nobodyさん
08/01/04 22:13:43 jY1Gv87H
以前、フォーム入力の修正ページで、
<input type=text name=url value="$_POST['URL']" />
としたんですが、ブラウザのフォームには表示されません
$_POST['URL']にはURLリンク(www.sample.com)が代入されてるのをソースでは
確認できたんですが、、 なぜでしょうか?またどうしたらいいですか?

731:nobodyさん
08/01/04 22:14:29
<input type=text name=url value="<?php echo $_POST['URL']; ?>" />

732:nobodyさん
08/01/04 22:49:56 mPgF8z0i
オブジェクト指向の概念はなんとなく理解できるのですが、
実際作るとなるとどうやっていいのかさっぱりで…。
色々サンプル(pukiwiki, XOOPS)を見てみたんですが、うーんと唸ってしまいます。

初心者向けのわかりやすい、また短めのサンプルコードなどありましたら教えて頂けませんか?
よろしくお願いします。

733:nobodyさん
08/01/04 22:59:18
>>732
何となくではなくしっかり理解してから作りなされ

734:nobodyさん
08/01/05 00:07:08
>>732
zend framework のなにか

735:nobodyさん
08/01/05 00:43:33
OOP素人なら、Javaやらpythonやらrubyやらのドキュメント読んで実際に触ってみてから戻ってきた方が話が速い。確実に。
「オブジェクト指向をできるようにした言語」と「オブジェクト指向であろうとした言語」には習得効率の差がある

それで学習したら戻ってくればおk
OOPL/デザパタの各種利点・欠点を把握した上で「どうPHP上で生かそうか」という頭になりさえすればいいのだ

736:nobodyさん
08/01/05 00:59:45
>>735
正論。
OOPを勉強したいならPHPじゃないほうがいいね

737:nobodyさん
08/01/05 01:06:52
なんで?
PHP5は、けっこうマトモなオブジェクト指向言語だと思うけど。

738:nobodyさん
08/01/05 01:12:16
理由は735にかいてあるだろ

739:nobodyさん
08/01/05 01:15:50
これを理由と言うのか。( ´・∀・`)へー

740:nobodyさん
08/01/05 01:16:12
( ´・∀・`)

741:nobodyさん
08/01/05 01:17:42
C++のが本格的だと思うんだぜ

742:nobodyさん
08/01/05 01:18:08
(・ω・)モキュ

743:nobodyさん
08/01/05 02:12:44
>>741
お調子ぶっこえてんじゃねーぞ、士ね。

744:nobodyさん
08/01/05 02:14:09 9q7TTvct
質問させてください。

$file = fopen("ログファイル.txt", "r");

↑のようにログファイルを読み込み、項目の抽出・判定を
行うスクリプトを作っています。
職場のLinux環境では、正常に動くのですが、
家のLinuxでは、ログファイルの読み込みが出来ず、
項目の抽出が出来ず空欄となります。
スクリプト自体にはエラーは出ずに、読み込みだけ出来ていない状態です。
家のlinuxがおかしいと思い、簡単なファイルを読み込む
テストスクリプトで試したところ、テストスクリプトでは、
家のlinuxでも正常に読み込めました。
テストスクリプトも本番用スクリプトをコピーしたもので、
スクリプトの行数が違うくらいで特に差がありません。
(テスト50行、本番700行)
同じ記述なのに、fopen出来たり出来なかったりするような
状況なのですが、解決方法等ありますでしょうか。

745:代行者
08/01/05 02:15:45
よーわからんけど、フルパスでないと駄目なんじゃなかったっけ?
職場のはパスが通ってるとか。


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