トップページphp
1001コメント318KB

【PHP】下らねぇ質問はID出して書き込みやがれ 75

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/10/16(木) 23:52:01ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0019nobodyさん2008/10/17(金) 15:34:55ID:???
>>18
128Mあれば十分だよなぁ
max_execution_timeを引き伸ばして解消するか確認したら?
引き伸ばしてもタイムアウトするなら、ファイルシステムでロックによる待機ってのも考えうる
(OS側でファイルをロックしていると解除待ちや遅延を発生させる)
0020nobodyさん2008/10/17(金) 16:04:45ID:???
for文をforeachに置き換えたらなんでメモリ節約になるんだ
0021nobodyさん2008/10/17(金) 16:17:50ID:???
>>18
それって別に最大128M までしか設定できないということじゃなく、
128M にしておくと最大128M までしか使わないぜ、っていう意味だろう。
0022nobodyさん2008/10/17(金) 16:19:38ID:???
まぁそれにしたって128MならPHPにしては多めだから、メモリ不足の線はなくなるか
0023nobodyさん2008/10/17(金) 16:50:34ID:rOCd0HKd
質問
PHPをWEBから実行すると、
アパッチの設定により
ユーザーkawagoe
グループsaitama
の権限で実行され
パーミッション644
のファイルが作成されます。
これをPHPスクリプトを書きかえて
ユーザーsakai
グループoosaka
パーミッション664
でファイルを作成されるような方法はあるのでしょうか?
アパッチの設定は変更しないものとします

当方、RHE、PHP4です。
0024nobodyさん2008/10/17(金) 17:01:21ID:???
>>23
スーパーユーザならchgrp、chownで可能
リモートファイルなら不可能
あとはマニュアルで
0025nobodyさん2008/10/17(金) 17:36:36ID:???
>>23
Apacheがnobodyやwwwで動いているならsuexecだな
phpならsuphpか
どのみちCGIモードになるが
0026nobodyさん2008/10/17(金) 18:44:11ID:XoljDjxd
質問します。

俺のサイトに雑談用とエロ用の二つの掲示板があるんだけど、
ネットワークが貧弱だから、負荷がかかってきたら両方アクセスできなくなる。
雑談用はリアルの友達も見るので、負荷がかかったらエロ掲示板にだけ制限をかけて
雑談用を生かして軽くしたいんだけど
そういうのってPHPで自動でコントロールできないですか?

「今何人が見ています」って出るサイトみたいに見てる人数えて
一定数超えると制限かけてもいいんだけど
見てる人が必ずしも重いページを連続で見てるわけじゃなかもしれないし
もっと正確に制限かけてみたいけどできますか?
0027nobodyさん2008/10/17(金) 20:06:26ID:???
>>26
無理。
ってかPHPでやろうって発想がもうね・・・
剥いてないんじゃない?
0028162008/10/17(金) 20:07:33ID:KGeFGt4I
>>19-22
ほんとにありがとうございます
今用事から戻ってきました
max_execution_timeを引き伸ばしてテストっていうのやってみます

>>19
>OS側でファイルをロックしていると

すみません、この場合のファイルっていうのは何のことですか?
0029nobodyさん2008/10/17(金) 20:53:02ID:???
>>26
自動でって意味が分からないけど。
工夫すれば出来るんじゃないかな。

普通に自宅サーバなら、新しくするとか2台にするとか考えたほうがいいかも
あとは掲示板自体の処理を軽くするとか。
0030nobodyさん2008/10/17(金) 21:09:11ID:ic+FUvQs
ショッピングカート(エロゲ)とSNSを同時にやりたいのですが、
負荷は大丈夫でしょうか。
もうプログラムもできていて、サーバーははCeleron D
でメモリー1Gですが。ハードは160GBです。

0031nobodyさん2008/10/17(金) 21:19:07ID:???
こんなとこで聞いてもわかるわけないだろ
負荷テストは自分でやれや
0032nobodyさん2008/10/17(金) 21:20:21ID:XoljDjxd
>>29
自宅鯖です。

やっぱり人数制限するのがいいですかね。
一分間のアクセス数をカウントし
if(アクセス数 > 最大人数){
include エラーページ
またはリダイレクト
}else{
include エロ掲示板
}

他にいいアイディア無いかなぁ。
0033nobodyさん2008/10/17(金) 21:29:45ID:???
本当にネットワーク負荷なのか?
だったらphpでできることなんてたかが知れてるぞ
0034nobodyさん2008/10/17(金) 22:15:07ID:???
2chの危機をUNIX板住人を救ったとかいう「悪い」前例があるからな、いやあえて
日本人らしいと言えば日本人らしいけど
技術力を高めることよりサービスに注力すればリソースの増強が一番だよな
0035nobodyさん2008/10/17(金) 22:17:01ID:???
>>34
誰が救ったん?
0036nobodyさん2008/10/17(金) 22:19:14ID:???
お前
0037nobodyさん2008/10/18(土) 01:16:03ID:???
>>28
プログラムが扱う外部ファイル(fopen等で)
共有モードならいいが、排他ロックしてるなら他のプログラムは待機させられる
で、ここでもタイムアウト、と
0038nobodyさん2008/10/18(土) 01:23:49ID:ovI7JoE2
全スレ
>>924 です。
guid=ON で取得できなかった理由がわかりました。
i-modeでIMODE IDを発信にしていなかったためです。
ご迷惑をおかえkしてすみませんでした。
0039nobodyさん2008/10/18(土) 06:03:08ID:iDAfIXK5
ソースってずっと何回も上から繰り返してるんですか?
mysql_connectとmysql_closeを入れてたら
接続と切断を繰り返してるんですか?
それとも一回だけ?
0040nobodyさん2008/10/18(土) 08:16:06ID:???
書き方次第
0041nobodyさん2008/10/18(土) 08:31:19ID:???
for(;;){
mysql_connect();
mysql_close();
}
とかアホなことでもやるのか?
0042nobodyさん2008/10/18(土) 08:47:53ID:???
使い方知らないなら答えるなよ
0043nobodyさん2008/10/18(土) 09:03:55ID:???
引数とか細かい処理ぬいて簡素化して聞いてるのに
使い方知らないなんてよくアホなこといえるな
見ればわかるだろ
0044nobodyさん2008/10/18(土) 10:35:10ID:gcgVi4vG
聞きたいんですが、みんなDBとの接続処理とかはpearなどの機能を使ってるんですか?
adodbとか、、 あと各種FWとか
そういう機能を使ったほうがある程度効率的な開発のパッケージが最初から
出来てるからくだらない凡ミスも減ると考えたほうがいいんでしょうか?
0045nobodyさん2008/10/18(土) 10:53:43ID:???
そのレベルでは標準関数使ったほうが吉
0046nobodyさん2008/10/18(土) 10:58:03ID:???
組み込みクラスのPDO使えばいい
0047nobodyさん2008/10/18(土) 10:59:49ID:???
不安ならPHPの処理の終わりに exit; なり入れてみたら?
0048nobodyさん2008/10/18(土) 11:26:22ID:8hP8Ud/7
ファイル書き込みの際に、指定行に書き込むにはどうすればいいでしょうか?
簡単なソースでいいので教えていただけませんか?
よろしくお願いします。
0049nobodyさん2008/10/18(土) 11:28:09ID:???
ないよ
0050nobodyさん2008/10/18(土) 11:38:48ID:???
>>48
1回配列に読み込んで挿入したのを書き出すのが基本
0051nobodyさん2008/10/18(土) 11:45:25ID:8hP8Ud/7
>>50
ありがとうございます。
その方法でやりたいと思います。
0052nobodyさん2008/10/18(土) 12:21:26ID:???
>>44
sqlインジェクション等のセキュリティ対策にもなるから使用する。
それらの勉強も含めて標準関数でやってみるのも良いかと。
でも、作りたい物あるならさっさと導入したほうが楽な気もする。
0053nobodyさん2008/10/18(土) 13:00:10ID:StJfJoYV
list($hon,$mi)=explode("|",$chi) ;
list($title,$url,$saishu,$touroku,$bikou)=explode("@",$hon);

Parse error: syntax error, unexpected '@' in C:\xampp\htdocs\link_edit.php on line 77

とのことです。
0054nobodyさん2008/10/18(土) 13:07:07ID:???
そうですか
0055nobodyさん2008/10/18(土) 13:09:12ID:???
'@'
0056nobodyさん2008/10/18(土) 14:15:30ID:StJfJoYV
事故解決したとのことです
0057nobodyさん2008/10/18(土) 14:48:49ID:8hP8Ud/7
度重なる質問失礼します。

文字列を配列に変換するにはどうすればいいでしょうか?
当方の環境では、PHP4が使用されており、str_split関数を
使用することができません。。
0058nobodyさん2008/10/18(土) 15:00:44ID:???
関連関数を見るといいよ
0059nobodyさん2008/10/18(土) 15:01:35ID:???
>>57
ファイル書き込みの際といってるんだから
ログかなんかのファイルがあるんだろう?
fileで読めば改行ごとに配列に入るよ
0060nobodyさん2008/10/18(土) 15:14:55ID:8hP8Ud/7
すみません、自己解決しました。
http://php.benscom.com/manual/ja/function.str-split.php
note_04-Aug-2008 04:20

>>58-59
別のコードでの質問でした。
本当にありがとうございました。
0061nobodyさん2008/10/18(土) 15:51:36ID:???
別のコードって何だ。つまり57が嘘だったってことかよ。
0062nobodyさん2008/10/18(土) 16:39:56ID:8hP8Ud/7
>>61
そういう事ではありません。

59さんは、48の質問(ファイル書き込み)の過程で、文字列を配列に
変換する必要が出てきたと思われたのです。
しかし実際にはファイル書き込みの過程で必要になった訳ではなく、
別のコード(関係のないところ)で必要になったのです。

誤解を招くを書き込みしてすみませんでした。
0063nobodyさん2008/10/18(土) 17:50:31ID:gcgVi4vG
>>52
なるほど ありがとうございました


質問です、foreachを使って要素が10こある配列の
2個目から5個目までを書き出したいとき、どんな風に書いたらいいですか?
forなら for($i=1; $i<4; $i++){}だろうと思うんですが、、
0064nobodyさん2008/10/18(土) 19:11:11ID:???
>>63
forでいいじゃん

foreachでやるなら初期値0の適当な変数用意して

$count = 0;
foreach($list as $valie) {
$count++;
if ($count > 2 && $count < 5) {
echo $value;
}
}

とか?
0065nobodyさん2008/10/18(土) 19:16:57ID:???
countはいらんだろ
0066nobodyさん2008/10/18(土) 20:49:55ID:???
切り取る関数あるだろ
0067nobodyさん2008/10/19(日) 13:15:27ID:VVm7alzF
$targetとarray('foo', 'bar')と$varの3つを渡すと、
$target['foo']['bar'] = $var; をセットしてくれるような
処理ってうまい方法ないですか?

evalでやるなら、

function hoge(&$target, $keys, $var) {
$name = sprintf("\$target['%s']", implode("']['", $keys));
eval($name.' = $var;');
}

こんな感じなのですが、evalは使いたくないのです。
0068nobodyさん2008/10/19(日) 13:17:21ID:???
function hoge(&$target, $keys, $var){
$target[$keys[0]][$keys[1]] = $var;
}
0069672008/10/19(日) 13:26:51ID:VVm7alzF
thx!
でも、それだと$keysがarray('foo', 'bar', 'boo')だとセットされないんですよね。
この場合$target['foo']['bar']['boo']に$valをセットしたいのです。
0070672008/10/19(日) 13:32:21ID:???
補足すると、$keysの要素の数は不定にしたいです。
eval使えば簡単なんだけど・・・
0071nobodyさん2008/10/19(日) 13:46:24ID:???
再帰使えばいいじゃん
eval使うほうがめんどい
0072672008/10/19(日) 13:59:09ID:???
>71
getする関数は再帰で書いたんですが、
再帰でsetする関数がどうにも思いつかないんですよ。
もうちょっとヒントもらえるとうれしいです。
0073nobodyさん2008/10/19(日) 14:00:16ID:???
getできてるんならもう9割方できてるようなもんじゃん
ちょっと変えるだけだよ
0074672008/10/19(日) 14:34:04ID:???
> 73
ほんとだ、できた。アドバイスthxでした。
0075nobodyさん2008/10/19(日) 14:41:40ID:w27rzwDg
XPsp3でPHP5.2.6、apache2.2.9です。
10月分のWindowsUpdateを行うと、
crypt関数の戻り値が違ってしまうのですが、
同様な現象の方、いますでしょうか?
0076nobodyさん2008/10/19(日) 15:05:34ID:???
例示しなさい例示
0077752008/10/19(日) 16:18:04ID:w27rzwDg
例示します。
まず、WindowsUpdateは関係ありませんでした。
ソースは下記です。

<?php

for ($j=0; $j<10000; $j++) {
for ($i=0; $i<5; $i++) {
$kekka = angou($dummy);
echo $kekka." ";
};
echo "<br>\n";
};

return;

function angou($dummy) {
$f_str = "aaaaaaaa";
$f_salt = "aa";
$f_kekka = crypt($f_str,$f_salt);
return $f_kekka;
};

?>

これを鯖、WinXPsp3、PHP5.2.6、apache2.2.9で動かします。
IE6でテストしたのですが、単純に表示すると、
aakcR08PK3l1oが羅列されます。
が、F5連打を行うと、aakcR08PK3l1oの羅列の中に
aaFpkQMBggD8Aというような文字列が混じります。
多重処理関係で、PHPの基本がなっていないのでしょうか?
どうか、ご教授願います。
0078nobodyさん2008/10/19(日) 16:30:41ID:???
ほんとだ、たまに変なの混ざるw 面白いね
0079nobodyさん2008/10/19(日) 17:00:11ID:cbDAkf2P
質問

PHP で作られた wordpress っていうブログ用ソフトなんだが、
メールアドレスの入力で、
localhostを入れると

「エラー: メールアドレスが不正です。」

って出てしまうんだが、これって回避するには
どうしたらいいの?すごい困るんだが。

おそらく、メールアドレスの形式のチェックルーチンがあって、
そこで、@の右側がドット無しで1ブロックしかなければ
「不正」
って判断するアルゴリズムだと思うんだが、ソースコードの
どこを修正すればいいのかな?
0080nobodyさん2008/10/19(日) 17:09:46ID:???
PHPって再帰処理できたっけ
0081nobodyさん2008/10/19(日) 17:15:07ID:???
できないのなんてあるんか

>>79
なんでlocalhostを入れたがるのか分からんからすごい困る
0082nobodyさん2008/10/19(日) 17:33:43ID:???
>>81
ローカルの実験環境に入れたいんじゃない?
0083752008/10/19(日) 17:38:30ID:w27rzwDg
>>78
   〃∩ ∧_∧
   ⊂⌒(  ・ω・)    面白いでしょ?
     `ヽ_っ⌒/⌒c
        ⌒ ⌒

  ∧_∧
⊂(#・д・)  って、cryptの返り値が変わったらダメだろ!!!
 /   ノ∪
 し―-J |l| |
         人ペシッ!!
       __
       \  \
          ̄ ̄

誰か代替案を教えてください。
0084nobodyさん2008/10/19(日) 17:42:23ID:???
cryptを使わない
0085752008/10/19(日) 17:47:02ID:w27rzwDg
>>84
cryptを使わないでmcryptで出来ないか、ググってます。
どういうモジュールを使っても、cryptの結果が欲しいのです。
0086nobodyさん2008/10/19(日) 17:47:57ID:cbDAkf2P
>>81
xampp + wordpress で
自分のパソコンの中に入れてるからです
0087nobodyさん2008/10/19(日) 17:49:42ID:cbDAkf2P
>>82
そうです。localhost ドメインのメアドだったら
10個でも20個でも、いくらでも発行できますので。

コメントが新たに書き込まれるたびに
自分のメールアドレスに通知がくる、という
機能とかがあったりするのですが、そういう実験に
使います。
0088nobodyさん2008/10/19(日) 18:03:05ID:???
エラーメッセージから逆に辿ってけば見つけられるでしょ
0089752008/10/19(日) 18:03:53ID:w27rzwDg
すみません。お願いします。
cryptの結果と同じになるmcryptの
コーディングを教えてください。
mcryptよく分かりません。
0090nobodyさん2008/10/19(日) 18:05:05ID:???
なんでcryptじゃないとだめなの?
0091nobodyさん2008/10/19(日) 18:05:43ID:???
>>79
[127.0.0.1]でもダメ?
0092752008/10/19(日) 18:18:47ID:w27rzwDg
>>90
cryptの返り値のデータが既存である為です。
0093nobodyさん2008/10/19(日) 18:21:27ID:cbDAkf2P
>>91
登録したいメールアドレスは

aaa@localhost

なのですが、

aaa@127.0.0.1

で試してみろという趣旨でしょうか?
0094nobodyさん2008/10/19(日) 18:22:50ID:???
aaa@[127.0.0.1]ってこと。
ていうか試してから聞き返してくれるかな。
0095nobodyさん2008/10/19(日) 18:23:39ID:???
>>92
crypt = DES
0096nobodyさん2008/10/19(日) 18:28:15ID:???
>>93
つかlocalhostにメールサーバー立ってるの?
立ってないなら自分のプロバメールでもフリーメールでも
届くアドレスを登録すりゃいいだけの話だと思うんだが
0097nobodyさん2008/10/19(日) 18:32:07ID:???
>>93
WPのスレもあるわけだが
WordPress (ワードプレス) その9
http://pc11.2ch.net/test/read.cgi/blog/1217601429/924924
0098752008/10/19(日) 18:37:58ID:w27rzwDg
>>95
もう、ダメだ。。。
朝から悩んで疲れ果てた。
今日中に対応したいけど、
もう眠い。
0099nobodyさん2008/10/19(日) 18:42:07ID:cbDAkf2P
>>94
なにそれ?
スクエアブラケットでIPを囲まないとだめなんだっけ?
0100nobodyさん2008/10/19(日) 18:43:25ID:cbDAkf2P
>>96
立ってる。xampp だから、マーキュリー。
てか、自分のプロバイダメールとかなら、
マーキュリーから送信できたのは確認済み。

wordpress で localhost がメアドとして
登録できないのが今の問題なの。
0101nobodyさん2008/10/19(日) 18:48:07ID:???
いやだからソース見ろよ
0102nobodyさん2008/10/19(日) 18:48:23ID:???
>>99
IPアドレス直で指定する場合の書き方。囲んでおかないとmxを引こうとする。
で、試したの?
0103nobodyさん2008/10/19(日) 18:49:52ID:???
つかwordpressのどこの機能で入力する話だよ
メールアドレス入力する場所複数あるじゃん
0104nobodyさん2008/10/19(日) 19:13:39ID:cbDAkf2P
>>101
ソースは見てるよ。ボケ
0105nobodyさん2008/10/19(日) 19:24:33ID:cbDAkf2P
>>103

http://tkoolup.hp.infoseek.co.jp/cgi-bin/src/tkoolup1424.png

この画面だっちゃ。
0106nobodyさん2008/10/19(日) 19:26:14ID:cbDAkf2P
MXレコードってなんだっけ?
ああ、、、またぐぐらないといけないのか、、、
ただブログソフトを使いたいだけなのに、、、
0107nobodyさん2008/10/19(日) 19:26:58ID:cbDAkf2P
ひとつのことを勉強しようとすると
わからないことがあらたに3つでてくる、
この現象に名前をつけようぜ
0108nobodyさん2008/10/19(日) 19:37:04ID:???
馬鹿の考え休むに似たり
0109nobodyさん2008/10/19(日) 19:42:06ID:cbDAkf2P
メールアドレスの入力のとき、
入力されたメールアドレスの形式が
正しいかどうか、チェックする、
割とありふれたルーチンですよね。

でもローカルホスト内でテストするときに
localhostって入れられないのは
はっきりって迷惑ですよ。

もうちょっと考えてアルゴリズム組めよと。
0110nobodyさん2008/10/19(日) 19:45:01ID:???
じゃあwordpress使うなよ
0111nobodyさん2008/10/19(日) 19:51:23ID:???
>>104
死ね。ソース見てるならすぐ分かるのに見当違いな方向に取り組んでるのは見てない証拠。
お前みたいなのはスレ違いだからとっとと消えろ
0112nobodyさん2008/10/19(日) 19:57:29ID:cbDAkf2P
>>111
警察に通報しました。
0113nobodyさん2008/10/19(日) 20:03:46ID:???
そもそもメールアドレスの形式として、hogehoge@localhostってRFC的にいいんだっけ?

アドレスチェックがピリオドが含まれているかで正当性を見てるなら、
localhost.localdomain で解決できるようにすりゃいいだけの話の気もするが。
0114nobodyさん2008/10/19(日) 20:10:11ID:???
メールアドレスのチェックなんてZend Framework使えばいいだろ
0115nobodyさん2008/10/19(日) 20:15:16ID:???
>>113
本来mx引けないドメイン名はNGだからな。
あとは>>94の方法しかないんだけどwordpressが弾くなら仕方ないんじゃね。

で、まぁwordpress依存の話は>>97専用スレの方が早いと思うんだ。
0116nobodyさん2008/10/19(日) 21:14:14ID:???
俺なら引っかかった瞬間諦めてGmail使う。
Gmailも擬似無限メアド機能あるしな。
試験したいのがそれでできない事ならhosts書き換えて適当なドメインを自称する。
0117nobodyさん2008/10/19(日) 21:22:03ID:cbDAkf2P
hostsファイル書き換えについては試したんだが、
IPアドレスをドメインに変換する機能なのでできなかった。
0118752008/10/19(日) 21:26:39ID:w27rzwDg
>>77をお願いします。
■ このスレッドは過去ログ倉庫に格納されています