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

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

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

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 103
http://hibari.2ch.net/test/read.cgi/php/1295956018/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0715nobodyさん2011/03/09(水) 14:32:53.63ID:???
CSRFやり放題!
0716nobodyさん2011/03/09(水) 14:34:58.26ID:???
>>711
その知識レベルで、パスワード制のシステムを作るのはやばい
個人の趣味でやってるサイトだとしても、他人に使わせてはいけない
0717nobodyさん2011/03/09(水) 14:48:37.13ID:GqBXYpF1
>>714
パスワードの受け側をPOSTからGETに変えたら
↓でログインが成功しました。ありがとうございます。

aaa.com/admin.php?admin=0000


もう一度、POSTとGETの違いを勉強してきます☆
0718nobodyさん2011/03/09(水) 14:51:40.07ID:???
というか利用者もパスワード無いと不安で使わないんじゃね?
せめて初回のみパスワードログイン出来るようにして、クッキー発行。次からはクッキー読みに行ってログインされていればダイレクトにログイン後画面にリンク。

どうしてもパスワード無しでやるならURLのクエリを30文字くらいで暗号化して渡すかな
0719nobodyさん2011/03/09(水) 16:07:35.34ID:???
>>717
そんなレベルだったのかよw
とりあえず、パスワードを実装する前に
getでもpostでもページに表示させるとこ練習しろ
0720nobodyさん2011/03/09(水) 16:52:25.26ID:???
パスワード付きURIがグーグル先生に捕獲されるw
って事件があったなw
0721nobodyさん2011/03/09(水) 16:52:32.31ID:???
初歩的な質問かと思いますが宜しくお願いします。

$valueに値を代入するとして、
@ $_POST['value'] がtrueなら $value = で代入
A @がfalseで$_COOKIE["$value"]がtrueなら $value = で代入
B @もAもfalseなら $value = "〜"; で代入

というのをスマートに書くアイディアがないでしょうか。
順番にnullかチェックしていくのはスマートじゃない気がしてモヤモヤしてます。
nullなら代入っていう演算子はPHPにはないのでしょうか・・(Perlでの ||=)
0722nobodyさん2011/03/09(水) 16:55:28.36ID:???
>>720
グーグル先生が綺麗にサイトのデータ消したとかもあったよな

<a href="index.php?id=300&mode=delete">削除</a>

こんなことしてるやつ稀によく見かけるから注意な
0723◆oDupeixhZv52 2011/03/09(水) 17:25:56.14ID:???
$value= $_POST['value']?:$_COOKIE["$value"]?:"〜";
普通にチェックして入れるの書こうよ…
0724nobodyさん2011/03/09(水) 17:34:07.08ID:???
>>721
PHP5.3から3項演算子の2番目が省略できるから、たぶんこれで出来ると思う。
けれども、ユーザ入力の部分なのに未定義チェックを含めたチェックがまったく
出来なくなるから、あまり薦められない。

こないだから来ているスマート君だと思うんだけど、ユーザ入力が絡む場合は
特にスマートさよりも堅牢性や確実性をとったほうがいいよ。スマートさを追求
してセキュリティホールを開けてしまっては目も当てられない。
0725nobodyさん2011/03/09(水) 18:14:32.55ID:???
>>723
なにこれ
0726nobodyさん2011/03/09(水) 18:16:23.75ID:???
ごめん>>724のこと知らなかった
0727nobodyさん2011/03/09(水) 18:18:07.22ID:???
けどやっぱりちゃんと動かないように思う>>723
0728nobodyさん2011/03/09(水) 18:20:48.58ID:???
>PHP5.3から
0729nobodyさん2011/03/09(水) 18:23:07.78ID:???
てか、コード省略するな
可読性重視しろ

っていっても個々の好き好きだよな・・・。

ただ、
<?
?>
とか
<?=$value?>
は許せない
0730nobodyさん2011/03/09(水) 18:30:01.38ID:???
>>729
その略し方はshort_open_tagsがoffだったり、HTMLの頭にxml宣言があると面倒だよな。
07317212011/03/09(水) 19:29:38.08ID:???
>>723-724
レスありがとうございます。
うーん、やっぱり例外が発生しないようにきっちり制御していったほうがいいみたいですね
3項演算子も試してみたけど、パターンが2種でなく3種になるとスマートとは程遠くorz

> こないだから来ているスマート君だと思うんだけど
おうふ、違いますん
0732nobodyさん2011/03/09(水) 19:48:25.35ID:???
>>721 質問するならIDだせ

出さずに質問する奴は確信犯
0733nobodyさん2011/03/09(水) 20:04:33.69ID:2uu1lCib
>>685です。
ご迷惑をおかけしております。
あれから更に色々と調べたのですがうまくできなくて困っています。


<?php
$str="$URL";
$encdata = urlencode($str);
?>
とやって、
<a href="http://google/test.php?url=$url">
の「$url」の部分がエンコードされるって考えは全く間違ってますでしょうか?
0734nobodyさん2011/03/09(水) 20:08:10.77ID:???
全く間違っている
0735nobodyさん2011/03/09(水) 20:14:24.38ID:???
$str="$URL";
これは何のつもりなんだ
0736nobodyさん2011/03/09(水) 20:22:58.71ID:2uu1lCib
$str="$URL";
$strには$URLをエンコードした結果が入るつもりです。

0737nobodyさん2011/03/09(水) 20:23:59.26ID:???
その$URLはどこからやってくるんだ
0738nobodyさん2011/03/09(水) 20:31:17.41ID:???
何度も質問することは恥じることではない
IDを出す潔さが回答を生むのだ
0739nobodyさん2011/03/09(水) 20:37:42.42ID:???
$URLがまず未定義なわけだが

<?php
$url = "http://www.google.co.jp/search?q=";
$searchStr = "おっぱい";
echo '<a href="' . $url . urlencode($searchStr) . '">Googleで' . $searchStr . 'を検索</a>';
0740nobodyさん2011/03/09(水) 20:44:06.93ID:TtEEwLYN
【OS名】Windows7
【PHPのバージョン】5.2
【連携ソフトウェア】MySQL
【質問内容】
PHPを使って、twitter検索で特定の文字を検索して(フォロワーだけじゃなく全体)
リアルタイムで流れてくるように表示したいんですが、
twitter APIは使用制限があるみたいで、更新しまくるとだめみたいなんです。

何か回避方法ありませんか?
ttp://twitterkensaku.com/
このサイトのような感じをベースに、検索した後はチャットのように見てるだけで勝手に流れるような仕組みにしたいです。
0741nobodyさん2011/03/09(水) 20:44:10.71ID:???
><a href="http://google/test.php?url=$url">
よくわからんがこれはPHPの外に書いてるのか?
もしそうなら$urlはPHPの変数なんだから
<a href="http://google/test.php?url=<;?php echo $url; ?>">
ってしないと
ていうかサンプルいじるのはいいけど
HTMLと違って手探りでどうにかなるもんじゃないから
基礎はちゃんと勉強したほうがいい
>>3の本家マヌアルをなめるように見てきなさい
0742nobodyさん2011/03/09(水) 20:45:33.52ID:???
>>740
岡崎図書館ですねわかります
0743nobodyさん2011/03/09(水) 20:50:37.94ID:TtEEwLYN
>>742
ぐぐったらなんとまぁw
事件に発展してるんですねw
MySQLを仲介に、一定時間ごとに一定数のつぶやきを確保して
PHPからMySQLに接続して疑似リアルタイムを実現するとかならいけますかね・・・?
0744nobodyさん2011/03/09(水) 20:53:39.30ID:2uu1lCib
みなさま、貴重なご意見、ソースありがとうございます。
わかる方ならすぐ試してレスできるのでしょうが・・・

勝手で申し訳ないのですが、これらを色々と試す時間をください。
返事は必ずしますm(_ _)m
0745nobodyさん2011/03/09(水) 21:02:32.21ID:2uu1lCib
$URLはどこからくるか自分も思ったのですが、
それでも「ぐーぐる」にマウスを置くと、URLは表示されるのです。
以下がソース全部ですがそれらしき箇所が見当たらないのです・・・

<?php

class DataObject {
function set($key,$value){
$valname = "_".$key;
$this->$valname = $value;
}
function get($key){
$valname = "_".$key;
return $this->$valname;
}
function output() {
if (isset($this->_filesize)) {
$this->imageOut();
} else {
$this->webOut();
}
}
function webOut() {
$url = $this->_url;
$title = $this->_title;
$summary = $this->_summary;
echo <<<EOM
<a href="$url">$title</a><br />
(続き以下)
0746◆oDupeixhZv52 2011/03/09(水) 21:03:23.05ID:???
>>743
表示ごまかすにしても、結局は
使用制限にかからないように取るしかないのでは。
http://twitter.com/account/rate_limit_status.xml
0747nobodyさん2011/03/09(水) 21:03:43.51ID:2uu1lCib
<hr>
EOM;
}
function imageOut() {
$url = $this->_url;
$title = $this->_title;
$thumb_url = $this->_thumb_url;
$thumb_width = $this->_thumb_width;
$thumb_height = $this->_thumb_height;
echo <<<EOM
<a href="http://google/test.php?url=$url">ぐーぐる</a>
EOM;
}
}
?>
0748nobodyさん2011/03/09(水) 21:08:01.35ID:???
それ初心者がイジクリまわるようなソースじゃないぞ
もっと基本からやらないと
0749nobodyさん2011/03/09(水) 21:12:20.34ID:???
大文字と小文字が違うって気づかない時点でダメダメだ。
マヌアル最低でも3回くらい読むべし。
ヒアドキュメントも出てくるし
0750nobodyさん2011/03/09(水) 21:15:55.12ID:???
>>741
仕様書見たけど、制限が60分に100回なら一分一回でも大丈夫じゃん
どの程度の頻度で新着があるのかわからないけど、
きちんとキャッシュ取って使えば問題ない
0751nobodyさん2011/03/09(水) 21:17:21.81ID:???
アンカーミス>>740
0752nobodyさん2011/03/09(水) 21:23:32.65ID:2uu1lCib
みなさま本当にありがとうございます。
相当な難題だったんですね・・・
でも、まだ諦めたくないので調べながら
がんばってみたいと思いますm(_ _)m
0753nobodyさん2011/03/09(水) 21:29:53.24ID:???
何で初心者以下の知識しかないのに自分で理解できないコードをいじろうとするんだ?
そこに書いてあるコードを理解することは今は無理だろうし、
やろうとしてることはもっと簡単にできるはずだよ。
試行錯誤する前に、基礎を勉強しなよ。
0754nobodyさん2011/03/09(水) 21:30:07.19ID:???
急がば回れって言葉しってるかね
0755nobodyさん2011/03/09(水) 21:31:59.26ID:???
html感覚でやってるでしょ?
htmlと違ってプログラムは適当にいじっても動かないよ
0756nobodyさん2011/03/09(水) 21:33:44.69ID:???
全然難題じゃない。
urlencodeの結果を使えばいいだけ。
0757◆oDupeixhZv52 2011/03/09(水) 21:33:49.29ID:???
いろいろ遊んでみればいいんじゃないの?
$url = $this->_url; を  $url = urlencode( $this->_url );
どうやろうが個人の自由だしな
0758nobodyさん2011/03/09(水) 21:34:17.42ID:???
他の人も言ってるが、「0から9がランダムで出るサンプルプログラムを改造して0から99が出るようにする」
みたいなのなら別だが、一般的に言って、プログラミングは勘でやってどうにかなるもんじゃない。
もしたまたまうまく動いても、あなたは多分ID:GqBXYpF1みたいなことをやらかすよ?
個々の関数の使い方がわからないんなら聞けば教えてくれるから、まず変数とかfor文とか、
PHP以前の「プログラミングの基礎」からやるべし。

あと、悪いが>>744もう「返事」しないでくれ・・・
0759nobodyさん2011/03/09(水) 21:39:42.40ID:???
くだ質でなに張り切ってんだよ落ち着けよ
0760nobodyさん2011/03/09(水) 21:40:09.61ID:???
釘が打てるからって大工の真似事しても家は建たんよ('A`)
0761nobodyさん2011/03/09(水) 21:42:27.94ID:???
いい例えだな
ひさびさに感心した例えだ
0762nobodyさん2011/03/09(水) 21:46:07.87ID:???
釘すら打てないんじゃないか?と思ったのは内緒だw
0763nobodyさん2011/03/09(水) 22:10:16.92ID:???
物理的な製造業にたとえることは出来ないと思うんだが。
それでも感心する人がいるんだから不思議なもんだ。
0764nobodyさん2011/03/09(水) 22:15:06.27ID:???
今どきのPHPプログラマー様は組み込みを知らんのか
0765nobodyさん2011/03/09(水) 22:17:21.22ID:???
PHPでROM焼きとかLSI焼きとかやってるとこあるの
0766nobodyさん2011/03/09(水) 22:20:34.01ID:???
>>763
「たとえ話」というものの全てを否定してないか?
0767nobodyさん2011/03/09(水) 22:21:16.44ID:TtEEwLYN
>>746
>>750
新着は数秒置きにあるみたいですが、MySQLを仲介してAjaxも組み込めば
疑似リアルタイムが作れそうです。
回答ありがとうございました!
0768nobodyさん2011/03/09(水) 22:24:05.57ID:???
>>766
プログラミングと大工を比べるのは無理があるよ。
もしかしたらいまどきの大工は家を建てたあとで大黒柱を変えることが出来るのかもしれないけど。
0769nobodyさん2011/03/09(水) 22:27:59.49ID:???
プログラマ96乙
0770nobodyさん2011/03/09(水) 22:29:18.76ID:???
プログラムと大工ってのはかなり概念としては近いぞ
犬をニャーと鳴かせるよりは全然喩え話として自然
0771nobodyさん2011/03/09(水) 22:30:29.32ID:???
プログラマ96嫁
0772nobodyさん2011/03/09(水) 22:31:38.25ID:???
97だろw
0773nobodyさん2011/03/09(水) 22:45:49.38ID:???
プラモデル組み立てるのに似てると思ってたお
0774nobodyさん2011/03/10(木) 01:18:30.23ID:???
釘が打てるだけの人間に建築させるのがブラック会社
そしてそれは決して少なくないのがホラーだよね
0775nobodyさん2011/03/10(木) 03:53:28.78ID:???
IT業界なんて免許のない時代の車社会みたいなもんだろ。
レーサー級のやつもいれば「アクセルどれ〜?」みたいなやつもいて玉石混交。
怖くて道歩けないw


・・・ということにもクライアントは気付かずry
0776nobodyさん2011/03/10(木) 07:21:30.65ID:???
$_SERVER[REMOTE_ADDR]
$_SERVER['REMOTE_ADDR']
$_SERVER["REMOTE_ADDR"]
どれが正しいんだろう
激しく今更なんだが、一度気になったら眠れなかった俺のために頼む
0777nobodyさん2011/03/10(木) 07:23:37.51ID:???
>>1
0778nobodyさん2011/03/10(木) 09:30:22.98ID:???
>>776
なんか答えたくなったので

> $_SERVER[REMOTE_ADDR]
これ使ってる人たまに見るけどまずアウト!
""や''で囲ってないと定数として扱われる
定数として宣言されていない場合はそのまま文字列になるから問題ないんだけど
どこかで定数宣言define('REMORT_ADDR', 'test')とかされてるとAUT!
どこかでdefine('REMORT_ADDR', 'REMORT_ADDR')

> $_SERVER['REMOTE_ADDR']
一番ベターな方法かな


> $_SERVER["REMOTE_ADDR"]
""は中で変数展開ができるから
$addr = 'REMORT_ADDR';
$_SERVER["{$addr}"]とかするなら使ってもいいんじゃね?
0779nobodyさん2011/03/10(木) 10:00:39.19ID:???
使えればいいだろ
0780nobodyさん2011/03/10(木) 10:09:08.48ID:???
$_SERVER使うバカは情弱
getenvを使うべき
0781nobodyさん2011/03/10(木) 12:36:11.94ID:voVG8He8
【OS名】CentOS
【PHPのバージョン】5.2.4
【連携ソフトウェア】
【質問内容】
DBからレコードを取得して、値を変換して
テキストファイルに落としこむバッチを書いているんですが、
大小合わせて15MBほどのテキストをファイルをつくるのに
メモリを1200MBくらい消費してしまいます。

php.iniのmemory_limitが8MBやら512MBとかだと
当然バッチはメモリ不足でおっこってしまいます。

memory_limitを-1にするのは、
ちょっと怖い気もします。

色んなサイトを見るとPHPをバッチで動かすと
メモリの開放がされるのはバッチが終了してからとのことだったのですが、
たしかにunsetなどを使用してもメモリの使用量は減りませんでした。

memory_limitを-1にすることの是非と、
なにかメモリの解放をする方法があれば教えて頂けないでしょうか。
0782nobodyさん2011/03/10(木) 12:40:15.52ID:???
ファイル追記でlinux toolたたけばいいじゃん。
0783nobodyさん2011/03/10(木) 13:14:48.77ID:???
>>781
根本的にメモリの使い方がおかしいだけだと思うが、ソース公開できないの?
0784nobodyさん2011/03/10(木) 13:23:09.73ID:???
1ギガも使うような処理じゃなさそう
07857812011/03/10(木) 14:22:03.76ID:voVG8He8
>>783
すみません。ソースの公開はちょっと厳しいです。
(一部抜粋できないかちょっと試してみます。)

memory_get_usageを使ってどのタイミングでメモリの使用量が増えているか
調べているのですが、
データベースからレコードを取得して
連想配列に値を入れ込むところで
消費量が増えてました。
10万件のレコードを連想配列に入れる処理で
500MB程使用量が増えました。

>>784
ですよね。1ギガは行き過ぎですよね。



ちなみに
memory_get_usageで取得できるメモリの使用量は
topコマンドで表示されるメモリの使用率と異なるようなのですが、
見かたがまちがってますか?

サーバにはメモリを8GB積んでいるんですが、
topでみるとPHPが15%弱使っているようなんです。
でもmemory_get_usageで得られる数値は700MB弱なので、
何の差なのかちょっと気味悪いです。
0786nobodyさん2011/03/10(木) 14:29:10.41ID:???
>>785
そのバッチって頻繁にデータ書き換わったりすんの?
しなければ、COUNTで件数取得して分割して試してみたら?
0787nobodyさん2011/03/10(木) 14:32:35.71ID:???
書き出してるのがテキストというだけであって
DBから引いてくるときに不必要なバイナリデータとかも
引いてきてイッパイイッパイになってるとか?
0788nobodyさん2011/03/10(木) 14:33:59.22ID:???
10万件も連想配列に入れたら500メガ増えてもおかしくない気がするな
0789nobodyさん2011/03/10(木) 14:36:18.58ID:???
あああああ わしもそう思う
0790nobodyさん2011/03/10(木) 14:40:06.10ID:???
1ギガってことは1,000メガバイトで1,000メガバイトってことは
1,000,000キロバイトで1,000,000キロバイトは
1,000,000,000バイトでこれを10万で割ると
10,000バイトか。

500メガいくかな?いかなそうだな。
0791nobodyさん2011/03/10(木) 14:41:32.39ID:???
>>790
そんなとこで算数得意アピールしなくていいからまじで
0792nobodyさん2011/03/10(木) 14:45:09.90ID:voVG8He8
>>786
はい。頻繁に変わるものになります。
頻繁に値が変わるのでテキストに書き込む対象を一気に持ってきてます。。。

>>787
不必要なバイナリですか。
たとえばどういったものが考えられますか?
SQLのなかでは、必要な分のカラムのみ
指定していますが、それとは別の話しでしょうか?

>>788 >>789 >>790
連想配列から通常の配列に入れるようにしたら
60MBほど使用量が減りました。
それでもまだ相当な消費量ですが・・・・。

0793nobodyさん2011/03/10(木) 14:47:23.23ID:???
10万件もオンメモリするなら60MBくらい普通じゃね?
オンメモリが必要かどうか考えるべきでは?
0794nobodyさん2011/03/10(木) 14:56:32.26ID:???
テストしてみました 10万件配列に入れても
そんなにメモリ食わない感じですた。


for($i=1;$i<100000;$i++){
$hoge[] = "ああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああああああああ
あああああああああああああああああ";


}
0795nobodyさん2011/03/10(木) 15:00:25.34ID:???
ああ
60メガ減ったのか
0796nobodyさん2011/03/10(木) 15:05:13.31ID:???
それにしたって全レコードをメモリに入れる必要ないだろ
1レコードずつ処理すれば使うメモリは1レコード分で済むはずだけどな
0797nobodyさん2011/03/10(木) 15:06:00.36ID:???
// $i=0; ←エラーがうざいならコメントを消せ
for (;$i++<10;)echo str_repeat("あ", 100);
0798nobodyさん2011/03/10(木) 15:06:52.61ID:???
<?php
// $i=0; ←エラーがうざいならコメントを消せ
for(;$i++<10;)$hoge[]=str_repeat("あ",100);
0799nobodyさん2011/03/10(木) 15:07:14.36ID:???
<?php
// $i=0; ←エラーがうざいならコメントを消せ
for(;$i++<100000;)$hoge[]=str_repeat("あ",100);
0800nobodyさん2011/03/10(木) 15:08:43.54ID:voVG8He8
>>796
ですよね。
今から作りを変えて1行ずつ書き込む処理にしてみます。
0801nobodyさん2011/03/10(木) 19:13:27.55ID:1kHolUfg
ロダみたいなPHPプログラムにアフィリエイト埋め込んでユーザーの利用先で
踏んでもらう仕組みって法的に問題ある?
0802nobodyさん2011/03/10(木) 19:14:03.99ID:???
>>801
そんぐらいggrks
0803nobodyさん2011/03/10(木) 19:45:11.27ID:Z6kki2tA
mail();をつかったメール送信での処理時間について質問させてください。
いま、PHPとmysqlでウェブアプリを作ってて、フォーム送信からデータベースへの登録処理が失敗した時に
mail();(正確にはフレームワークのメソッドを通じてですが)で管理者向けに警告メールを送るようにしています。
流れとしては以下のような単純なものです

$rt = $dbObj->query("クエリ文");
if($rtを使ったエラー判別){//成功
 //成功画面へ
}else{//失敗
 //管理者向けmail送信処理&エラー画面へ
}
//このあと画面出力へ

これで、気になるのが、失敗時に画面の出力(正確にはフォームの送信前画面から失敗画面への遷移)に
ずいぶん時間がかかるんです。体感で1秒はかかっているような…

そこで質問させてください。
1)普通、phpでのメール送信ってこんなに時間かかるものなんでしょうか?
  ※ちなみにcentOSとPostfixとzendFWを利用しています
2)この時間の間にメール送信処理をしてるんでしょうが、この時間を少なくする方法はないでしょうか?
  ※メモリやCPUの強化でなく、プログラムのテクニックやアイディアで改善したいです。

単純なのは、エラー発生時のリアルタイムのメール送信をやめて、専用のログ出力をして、
利用者のUIと関係ないところで定期的にエラーログの確認&送信することでしょうが、
それだと速報性がなくなるので避けたいんです…

ご意見・アドバイス、よろしくお願いします
08047812011/03/10(木) 20:22:59.45ID:voVG8He8
あれからレコード1件ずつ処理するように変更したところ、
メモリの使用率がマックスでも32MBになりました。

おかげでメモリ不足で落っこちることもなくなりました。
どうもありがとうございました。
0805nobodyさん2011/03/10(木) 21:25:15.97ID:kXpKnSNr
if (!mb_ereg_match("[あ-ん]", $_POST['body'])) {

}

スパム対策で紹介されてたコードなのですが
これをやると mbregex compile err: empty range in char class とエラーがでてしまいます。
どうしたらいいでしょうか
0806nobodyさん2011/03/10(木) 21:41:33.45ID:???
紹介されてたとこ行って見直してこい
なんか使い方違わないか?
0807nobodyさん2011/03/10(木) 21:42:59.44ID:???
ereg系は使うな!!!!!!!!!!!!!!!!!!!!
08088052011/03/10(木) 21:50:43.07ID:kXpKnSNr
mbregex compile err: empty range in char classはファイルのエンコードが問題
だったみたいです。すみません

>>806
サイト見たところコメ欄に
"[あ-ん]"だと"aあ"にマッチしない。
".*[あ-ん]"が良いかと。

これでいけそうです

>>807
この場合何を使ったらいいのでしょうか?
0809nobodyさん2011/03/10(木) 21:52:30.56ID:???
ereg が erogeに見えた……
0810nobodyさん2011/03/10(木) 21:54:45.64ID:???
>>808
preg_match("/[あ-ん]/u",$_POST['body'])
08118052011/03/10(木) 21:58:10.60ID:kXpKnSNr
>>810
ありがとうございます。
0812nobodyさん2011/03/10(木) 22:25:32.86ID:???
>>803
1)メール送信に1秒くらいかかるのは普通だと思う
2)お好きなのをどうぞ
・失敗画面にIFRAME等を入れて、そこからメール送信用のPHPをキックする
・失敗時にsystem関数等で、メール送信用PHPをキックする(コマンドの最後に & を付ける等)

予期しない事態が発生してエラーメールが1万通とか送信されると、そのせいで
更に別のエラーを併発したりするから、ちゃんとエラーログも取って、
前回メール送信日時も記録して、連続メール送信しちゃわない仕組みも作ったほうがいいよ
0813nobodyさん2011/03/10(木) 22:55:42.34ID:???
エロゲ とか あ〜ん とか
おまいらときたらwww
0814nobodyさん2011/03/10(木) 23:16:46.34ID:???
>>803
マルチスレッドにすればいいよ
■ このスレッドは過去ログ倉庫に格納されています