Pear
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0422nobodyさん
04/02/21 11:06ID:???おめでとうございます.もうコレなしで PHP できません(w
テーブル定義は ini ファイルがメインになり,内部動作もこれに依存します.
例えば setFrom() や toArray() といった「全てのフィールドをアレコレする」というメソッドは,
クラスのコードに書いてあっても ini にないフィールドは無視されます.
テーブルのフィールド名や構成を変更した時は,
必ず createTables.php を再走行しましょう.
この時,クラス定義のコードで AUTOCODE とかなってる部分以外は保存されるので,
安心して上書きできます.
0423nobodyさん
04/02/22 17:42ID:???自分のコードががらりと変わってしまいました(・∀・)イイ!!
ところで DB_DataObject には isError() がないみたいなんで
すがどうやってエラーを検出したらいいんでしょうか。
クラス定義を見ると raiseError() でエラーを作成してる
のですが。
0424nobodyさん
04/02/22 18:03ID:???「DB Error: connect failed」
と表示されてしまうので、ここらへんを制御したいと
思った次第です。
DB_DataObject::debugLevel();
でも、このエラーは表示されてしまいます。
0425nobodyさん
04/02/22 18:45ID:???実際どのようなSQLクエリが発行されるか確認する方法ってありますか?
->update()する前等に生成されるSQLクエリが
正しいかをテストしたいのですが・・・
それらしいメソッドが見当たらない・・・
0426nobodyさん
04/02/22 18:51ID:???PEAR::isError() が使えませんか?
>>425
DB_DataObject::debugLevel() で表示されます.
あと ini で設定する ignore_update とかそんなんも参考までに.
0427nobodyさん
04/02/22 20:27ID:???発行したSQLクエリを表示はできるようなのですが、
->update()を実行した時点で自分の書いたコードに誤りがあると
間違ったSQLクエリを実行してしまう可能性がありますよね。
なので、実質的なデータベースのupdate自体は行わずに
SQLクエリのみを表示するという事は無理でしょうか・・・?
$person = new DataObjects_Person;
$person->get(12);
$person->name='fred';
/* ここで一度確認したい */
//$person->update();
0428nobodyさん
04/02/22 22:38ID:???>>426
> あと ini で設定する ignore_update とかそんなんも参考までに.
正確には debug_ignore_updates だった.
あるいは,全てにおいてとにかくどんなクエリが実行されてるかを知りたいのならば,
_query() を自分のクラスで overload して,特定条件で引数を表示するようにしたら良いかと.
0429nobodyさん
04/02/22 23:44ID:???どうしてますか?
いちいち Auth のインスタンスを作成して getAuth() メソッドを呼出してる
のでしょうか。それとも自前で session_start() して $_SESSION['_authsession']['registered']
を調べてますか?自分は後者なんですが何か変ですかね。
0430nobodyさん
04/02/23 00:08ID:???0431nobodyさん
04/02/23 00:12ID:???auto_prepend_file では不便だったので,
auth_check.php なんてファイルを先頭で include してる.
そのファイルの中では new Auth したりエラーだったらログイン要求ページに飛ばしたり
ログインしてたらグローバル変数にメンバ情報のオブジェクトを入れたりとかしてる.
0432nobodyさん
04/02/23 00:57ID:???のがよさそうですね。参考になりました。
そろそろ LiveUser も試してみようかな。
0433nobodyさん
04/02/24 04:09ID:???部分に理解できない点がありました。$settings は UPDATE構文での
SET に続く部分を設定する変数のようです。
// if の条件部は何を判別してるのか?
if ($v & DB_DATAOBJECT_STR) {
// name = 'mona' という文字列を追加してるんだろうけど
// なぜ末尾に ' ' を追加してる?
$settings .= "$kSql = ". $DB->quote($this->$k) . ' ';
continue;
}
if (is_numeric($this->$k)) {
$settings .= "$kSql = {$this->$k} ";
continue;
}
// なぜ、どの if にもマッチしなかった場合に intval() するのか?
$settings .= "$kSql = " . intval($this->$k) . ' ';
0434nobodyさん
04/02/24 04:17ID:???自分なりの理解だと、update() は次のような手順
1. データベースに接続
2. 指定したテーブルが存在するか確認。なければ false を返す
3. テーブル定義を ini ファイルから読み出すか、table() を実行して取得
4. 各カラムの値について
4.1 オブジェクトの変数に保存されてるか調べる
4.2 文字列ならクォートして、数値ならそのままにして、結合する(条件があえば Cast.php を使う)
5. 手順4を元にしてSQL文を生成
6. SQL文を実行する
こんな感じだと思うんですが合ってますか?
update() を参考にして、SQLを実行しないで表示だけするメソッド作るのと
int型のカラムに文字列を挿入しようとすると 0 に変更するのを、NULL に変更したいのです。
0435nobodyさん
04/02/24 11:16ID:???> // if の条件部は何を判別してるのか?
> if ($v & DB_DATAOBJECT_STR) {
フラグが立ってるか見てるだけでそ。そういう意味ではなく?
> // name = 'mona' という文字列を追加してるんだろうけど
> // なぜ末尾に ' ' を追加してる?
> $settings .= "$kSql = ". $DB->quote($this->$k) . ' ';
次の sql構築のための空白を追加してるんでわ?
> // なぜ、どの if にもマッチしなかった場合に intval() するのか?
> $settings .= "$kSql = " . intval($this->$k) . ' ';
コメントが書いてあるね。v1の制限ということにしたいんじゃないのかな。
> update() を参考にして、SQLを実行しないで表示だけするメソッド作るのと
> int型のカラムに文字列を挿入しようとすると 0 に変更するのを、NULL に変更したいのです。
こういうの DataObjectに限らず、PEAR全般的に苦手でしょう。
一つのメソッドに処理詰め込み過ぎ、クラスにメソッド詰め込み過ぎは PEARの十八番。
0436nobodyさん
04/02/24 20:17ID:???ありがとうございます。大体分かったのですが
> if ($v & DB_DATAOBJECT_STR) {
ここの & って && とは違いますよね?
リファレンス以外の & の使用法をマニュアルから発見できませんでした。
あと v1 ってのは DB_DataObject のバージョン 1.x 系列という意味ですか?
0437nobodyさん
04/02/24 20:27ID:???& はビット演算子の AND です。
http://www.php.net/manual/ja/language.operators.bitwise.php
0438nobodyさん
04/02/25 02:00ID:???> ここの & って && とは違いますよね?
確かにビット演算するメリットは薄いからね。
> あと v1 ってのは DB_DataObject のバージョン 1.x 系列という意味ですか?
たぶんそうじゃないかな。コメントには V2としか書いてないけど。
正しい解釈は俺が知りたいくらい。
0440nobodyさん
04/03/02 22:11ID:???0441nobodyさん
04/03/02 23:33ID:???MySQL や pgsql では,けっこうマトモに動きます.
ttp://pear.php.net/manual/ja/package.database.db-dataobject.db-dataobject.joinadd.php
ここの「例」を見ればだいたい解ることでしょう.
ただ,こういう単純なの以外は「query() で直接 SQL 叩いた方が良いよ」とマニュアルにありますね(w
0442nobodyさん
04/03/03 10:02ID:???使いたすぎるよ・・・
・・・というのは冗談で。
いつの間にか消えてますね。
googleで検索すると残骸らしき物が出てくるけど。
何となく、MDB2に統合される予感が。
pear install MDB2-alphaで確認してみてくださいな。
0445nobodyさん
04/03/05 05:53ID:???0446nobodyさん
04/03/05 10:17ID:???0447nobodyさん
04/03/05 12:10ID:???MySQLやPostgreSQLみたいにインスコやDB作成も楽だし
運用面を考えると慎重になるけどね
0448447
04/03/05 12:11ID:???○MySQLやPostgreSQLみたいにインスコやDB作成も楽だし
×MySQLやPostgreSQLと比べるとインスコやDB作成も楽だし
0449nobodyさん
04/03/05 15:33ID:???DB に比べて使いにくいと思うのだが.
SQL 解析エリアをケチろうとして ? とか & とか多用すると,
いちいち prepare() → query() しなきゃならんですよ.
……もしかしてもっと良い方法がある?
0450nobodyさん
04/03/09 16:18ID:???pearでよく↑みたいなスキーマ図を見るけど、結構きれいだよね。
これって何のツールで出力してるんですか?
0451nobodyさん
04/03/10 14:01ID:???> PHP_CompatInfo will parse a file/folder/script/array to find out the minimum
> version and extensions required for it to run.
これ面白いです.まだバグが多いですが(w
このノリで,過去のコードが新バージョンの PHP で問題なく動くかどうか
走査してくれるプログラムがあれば,重宝しそうだなぁ.
0453nobodyさん
04/04/02 16:49ID:???HTML_QuickForm で addElement や addRule 並べるのが鬱陶しくて配列で回してるんですが、もっとお得な方法ありません?
配慮されていてもいい箇所だなーと思ったので、自分が何か見落としているのではないかと思った次第。
0454nobodyさん
04/04/03 00:54ID:???確かに面倒なんだけど,じゃ代わりにどんな機能なら汎用的で納得できるか,と考えると,
意外に思いつかなかったですわ(w
自分は,項目を並べた CSV から QuickForm を自動生成するクラスを自分で作っちまいました.
0455453
04/04/06 04:00ID:???ありがとうございました。
やはりそういう事になりますか。
> 自分は,項目を並べた CSV から QuickForm を自動生成するクラスを自分で作っちまいました.
この辺、車輪の再発明祭になってそうなのですが、そろそろ何か出てくれませんかねぃ。
0456nobodyさん
04/04/11 20:04ID:???別にCSV作ってそれ読むクラスとかよりシンプルだと思うんだけど
0458nobodyさん
04/04/11 22:00ID:???CSV 読むクラスを読むだけのソースは addRule() 並べるよりシンプルですよ.
それと,CSV をプログラム知識のない人でも書けるので,誰でもある程度好きなフォームを設計できるようになりました.
なりました,というか,それが目的で作ったんですけどね.
0459nobodyさん
04/04/11 23:05ID:???0461nobodyさん
04/04/12 09:33ID:???目的がプログラムの知識のない人が書けることなら構わないと思う。前提条件
が違えば考慮することも違うのは当然なので。
プログラマの視点からすればビジネスロジック以外に時間を掛けるかどうかは
じっくり考慮する必要があると思う。
0462nobodyさん
04/04/27 01:15ID:???0463nobodyさん
04/04/27 01:26ID:???Perlと違って関数が豊富だから、機会がなければ全然使わない人も多そうな感じ。
あと、速度(負荷低減)重視のため、PEARはあえて使わないってこともあったりする?
0464nobodyさん
04/04/27 03:38ID:???俺の負荷が軽くなる事の方が大事です。
サーバーの負荷は問題になれば相応の投資が為されるしな。(アクセラレーター導入、サーバー買い換え等)
考えないって事じゃなくて優先順位の問題かな。。
PEAR まんせー
1 年前に比べれば爆発的に進んだよね。今頃は PEAR? 何って感じで PEAR = PEAR::DB 的な誤解も多かった。
0465nobodyさん
04/04/27 04:15ID:YGiFCKd6SMTPで送りたいのでmb_send_mailは使えないんです。
0466nobodyさん
04/04/27 04:25ID:???昔のPHPスレで誰かがまとめてくれてたやつを載せておく。
外部のSMTPサーバを使って日本語でメールを送信する
方法についてまとめてみました。PHPではEUC-JPを使う
と仮定してます。
require_once("Mail.php"); // Mail/mail.php ではない
mb_internal_encoding('EUC-JP'); // PHPで使ってる文字コードを指定
//送り先の設定
$recipients = "sendto@hoge.ne.jp"; // エンベローブの設定
//ヘッダーの設定
$headers['From'] = 'sendfrom@moga.ne.jp';
$headers['To'] = 'sendto@hoge.ne.jp';
$subject = 'サブジェクト';
$headers['Content-Type'] = "Text/Plain; charset=iso-2022-jp"; // これはなくてもいいのかも
//サブジェクトののエンコード
$headers['Subject'] = Mb_Encode_Mimeheader($subject,"ISO-2022-JP",B);
//本文
$body = "日本語だよママン";
//本文のエンコード
$body = Mb_Convert_Encoding($body,"ISO-2022-JP","EUC-JP"); // PHPで使ってる文字コードを指定
//SMTPサーバーの設定
$param['host'] = '192.168.0.2';
$param['port'] = 25;
//オブジェクトを生成して送信
$mailer =& Mail::factory("smtp", $param);
$status = $mailer->send($recipients, $headers, $body);
0467nobodyさん
04/04/27 10:16ID:???見た感じでは普通に mb_send_mail() を使う方が簡単に思える……
0468nobodyさん
04/04/27 10:38ID:???Unix系OSでsmtpをしゃべりたいときとか。
>>466のコードを見るとまとめとしては古臭さを感じなくもないが、
使い方のサンプルとなるとこんなもんでしょ。
0469nobodyさん
04/05/07 13:10ID:Jax/P/Ee0470マリモーマ ◆perlnoUpCk
04/05/07 13:13ID:???0471nobodyさん
04/05/07 14:12ID:???無理。以前、CRAM式の認証をしたくて調べたんだが、
認証そのものはAuthクラスから呼び出される各Container側で行っており、
Authクラスにはその結果だけ知らされる仕組みになっていた。
ま、FileだけとかDBだけと決め打ちするのなら、そのContainerだけ改造
すれば可能。
0474nobodyさん
04/05/11 11:11ID:dmRD31gk次のようなエラーになってしまいます。なんででしょう。
Fatal error: Failed opening required 'PEAR.php' (include_path='') in /home/XXXX/XXXX/PHP/DB.php on line 26
0476475
04/05/11 11:20ID:???が正解かな。スマソ
0477nobodyさん
04/05/11 11:46ID:dmRD31gkご返事、ありがとう。
ただ、開発環境もサーバもDB.phpとPEAR.phpは同じディレクトリに
おいてあるんだけどうまく行かない。
0478nobodyさん
04/05/11 11:53ID:dmRD31gkサーバー PHP Version 4.1.2
開発環境 PHP Version 4.3.4
0479nobodyさん
04/05/11 11:57ID:???include_path が空だということは DB.php は、
require_once('/path/to/DB.php');
でロードしている訳だよね。 PEAR.php は DB.php から、
require_once('PEAR.php');
のようにロードされているから include_path が空の場合は読み込みが失敗す
るのは自明のこと。 include_path に DB.php までのパスを設定できれば解決
する。 ini_set が使えるなら次のようにしてみるといい。
ini_set('include_path', '/path/to');
0480nobodyさん
04/05/11 13:52ID:dmRD31gkありがとうございました。
しかし、ini_setはしましたが、まだうまく行きません。
Fatal error: Call to undefined function: is_a() in /home/xxxx/xxxx/PHP/DB.php on line 431
431行目は
function isError($value)
{
return is_a($value, 'DB_Error');
}
0481nobodyさん
04/05/11 14:21ID:???include_pathになんて入れたの?
そのエラー文からだと、/home/xxxx/xxxx/PHP としたのか?
つーか、やる気ある?
0482nobodyさん
04/05/11 14:38ID:???is_a() 関数は 4.2.0 以上から使えるようだ。
http://jp.php.net/manual/ja/function.is-a.php
各 PEAR パッケージが要求する依存関係リストを確認して必要なら下位バージ
ョンを使うとよい。
0483nobodyさん
04/05/11 16:12ID:???DB.php を読む前に定義しとけば下位バージョンでもひとまず動作はするよ.
# つーか,エラーメッセージも読まずに「わかりません,やってください」なんてのは php-users でやってくれ(w
あと老婆心ながら.開発環境の方が新しいバージョンなのはトラブルの元になるからヤメた方が良い.
0484nobodyさん
04/05/12 01:18ID:???IEが何故か自動認識してくれず化けまくり
同じ症状の人います?
何か原因があるのかな・・・
0485nobodyさん
04/05/13 10:47ID:???その後全く動かなくなってしまうのですが、なぜでしょう?
pear download xxxでモジュールのみダウンロードして
pear install xxx.tgzをしても同じく止まったままになってしまいます
0486nobodyさん
04/05/13 18:06ID:???あと,先に手動で Archive_Tar あたりをアップデートしてから再挑戦してみるとか.
0487nobodyさん
04/05/14 09:20ID:???環境を書き忘れていました。
サーバ:MacOSXServer 10.2.8
apache1.3.29+php4.3.4
具体的な現象は485に書いた通りです。
こんな感じ
↓
[server:/Users/xxxxxx] xxxxxx# pear install auth
downloading Auth-1.2.3.tgz ...
Starting to download Auth-1.2.3.tgz (24,040 bytes)
........done: 24,040 bytes
これで止まってしまいます。この後、30分待っても応答がありません。
pearcmd.phpのソースを追っかけてみたら、>>486さんの言う通りArchive_Tar.phpの
_extractInString内にて処理が返ってこない現象が出ているようです。
(まだその中を追い切れてません)
Archive_Tarの手動アップデートを試してみます。
ありがとうございました。
0488nobodyさん
04/05/18 16:44ID:???エラーメッセージは、
cmd=edit&page=[[xxx]] は有効な WikiName ではありません。
のようなものです。
0489nobodyさん
04/05/19 00:22ID:???つーのが臭い。。。こんなバージョンで運用する管理人さんって?
ごめんなさいごめんなさい。
PHP5対応暫定でしました。
HTTP_GET_VARS
HTTP_POST_VARS
HTTP_SERVER_VARS
HTTP_COOKIE_VARS
このあたり、PHP5からもう使えないんですね・・・。
0491nobodyさん
04/05/19 09:25ID:???PHP マニュアルの
http://jp.php.net/manual/ja/configuration.directives.php#ini.register-long-arrays
によると、php.ini の register_long_arrays を On にすると使えるけどパフォーマンスの
問題で Off にすることが推奨されている。
デフォルトは On と書いていて、PHP ソースに含まれる php.ini-dist では、On だけど、
php.ini-recommend を見ると Off になっているので、その影響かな。
0492nobodyさん
04/05/29 14:44ID:???query()で書くしかない?
0493nobodyさん
04/05/29 15:06ID:???0494nobodyさん
04/05/30 23:45ID:???ありましたっけ?
0495nobodyさん
04/05/30 23:56ID:???このCLIベースの永続セッションってどうやってつかうんだろ?
0496nobodyさん
04/05/31 01:43ID:???ActionChainの仕組みが今ひとつわかりません。
http://mojavi.org/forum/viewtopic.php?t=433
を見て試してみてるんですが、
ActionChain::fetchResult()で戻ってくる結果ってどうやってセットするものなんでしょう。
0497496
04/05/31 02:35ID:???これってob_start → ob_get_contentsで
そのモジュールのVIEWが出力してる値を保存してるだけだったんですね。
0498nobodyさん
04/05/31 10:05ID:???ご存じかもしれませんが、 milestone b2 の ActionChain にはバグがあるの
で注意して下さい。
http://pear.sakura.vg/index.php?%5B%5BITEMAN%5D%5D
0499nobodyさん
04/06/02 10:19ID:???複数のデータっていうのがどういうものなのかわかりませんが
私は配列で格納された複数のデータをforeachでautoexecuteする
メソッドを用意してそれで一括登録してます。
(って全然スマートじゃないですけど・・)
MDBで言うExecuteMultipleでinsertみたいな感じかと。
それなら、まあ499さんの言うようなラッパー書くしかないかな・・・。
しかし、DB_DataObject良いね。
今まで使ってなかったのはもったいなかったよ。
誰かmojavi + QuickFormで使ってる人いますか?
上手くやるとかなり楽出来るかな、とは思うのだけど
綺麗にまとめられない・・・。
良い実装例あったら見てみたいです。
新しいトップが見えたり、ソースコードが見えたりしてる・・・。
こういう事故があるから、ドキュメントルート以下には最小限のコードしか置かない、
ってことなんでしょうね・・・。
そして
www.mojavi.org v2 released
June 9th, 2004
ですよ!
ついにきたー
0505nobodyさん
04/06/10 13:49ID:???これは Mojavi 2.0 リリースじゃなくてサイトがリニューアルされたというこ
とですよね。
dev.mojavi.org でこっそり公開されていた内容に置換されたみたいです。
ああ、サイト変わったからそろそろMojavi2.0リリースかなぁという期待です(笑
0508nobodyさん
04/06/11 23:44ID:???0509nobodyさん
04/06/11 23:58ID:u32wLhvU2.0リリース&3.0スタートみたいね。
こんなもんまでありました。↓
[Mojavi 3.0 Manual]
ttp://wiki.mojavi.org:8080/99.html
0510509
04/06/11 23:59ID:???mojavi1からmojavi2が素晴らしい変化だったと思うので、
mojavi3にも超期待ですよ。
ただ、楽は出来るんだけどほんとにする事なくなりそう(苦笑
0512nobodyさん
04/06/12 06:09ID:???まとめてありますか?
0513nobodyさん
04/06/12 06:50ID:???http://www.mojavi.org/forum/viewtopic.php?t=491
ここになるのかな。
PHP5向けでしょうかね。
>>513
激しく同意。
502氏の活躍が楽しみです
しかし、ドキュメントの充実って大変だよなぁ・・・。
PEARのほうも、明らかに足りていないし。
0515nobodyさん
04/06/12 18:40ID:???ありがとうございます。参考になりました。
とりあえず2.0.0をインストールしてみまして、index.phpとconfig.php
の設定は終わりました。version2用の crash course を読みながらトライ
してるのですが
WARNING [/usr/local/lib/php/mojavi/mojavi-all-classes.php:470]
Invalid configuration setting(s): ERROR_404_MODULE (Default) or ERROR_404_ACTION (PageNotFound)
「http://localhost/mojavi/index.php?module=Default&action=Login」
にアクセスするとこんなエラーが出ました。まずは自分でmodule?とやらを
作らないといけないんでしょうか。
どなたか最低限の開発の流れを教えていただけませんか?
ttp://dev.mojavi.org/images/diagrams/2.0/action_sequence.png
ここを見たけどいまいちピンときません。
その通りで、自分でモジュール作らないとダメです。
で、警告が出ているのは
指定したモジュールが無い場合に表示するモジュール( Default / PageNotFound)が無いために出ています。
例えば、「module=Default&action=Login」と指定してるなら
webapp/modules/Default/actions/LoginAction.class.php
webapp/modules/Default/views/LoginView.class.php
あたりを作らないといけません。
自分は
http://pear.sakura.vg/index.php?%5B%5BMojavi%2FTutorial%5D%5D
これ見て覚えました。
それにしても、すっかりmojaviスレ(苦笑
面白そうなPEAR無いですかねぃ。
0517nobodyさん
04/06/12 21:13ID:???ttp://pear.sakura.vg/index.php?%5B%5BMojavi%2FTutorial%5D%5D
これは 2.0.0 でも問題なく使えるんでしょうか?
参考にがんばってみます。作者タンに感謝。
# なんかmojaviの話題ばっかですいません
0518nobodyさん
04/06/13 22:21ID:???Console_ColorをしようしてカラフルなCLIアプリを作ったのですが,
lessにパイプすると文字化けしてしまいます。
tcshでRedhatでScreenを使用しています。
lessってカラフルにはならなかったような気がするので、
文字化けしないようになれば充分です。
解決方法はあるのでしょうか?
// PHPでCLIページャを書くとかしてみようかな
0519nobodyさん
04/06/14 01:21ID:???$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '確認済み', 'yes');
$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '未確認', 'no');
$form->addGroup($elementValid, 'valid', '確認:', ' ');
こんな風にラジオボタンを作成したんですが、「確認済み」の方を
デフォルトでチェックしておきたい場合はどうしたらいいのでしょうか?
$elementValid[] = &HTML_QuickForm::createElement('radio', null, null, '確認済み', 'yes', array('checked' => 'checked');
としてもチェックが入りませんでした。
0520nobodyさん
04/06/14 01:39ID:???とかそんなんだった気がするです.
0521nobodyさん
04/06/14 04:04ID:???Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/lib/php/HTML/Template/Flexy/Compiler/Standard.php on line 667
Warning: mb_strpos(): Unknown encoding or conversion error. in /usr/local/lib/php/HTML/Template/Flexy/Compiler/Standard.php on line 675
その後でこんなエラーが出ます
Parse error: parse error in /home/httpd/hoge/compiled_templates/flexy-static.html.en.php on line 51
これはテンプレートにマルチバイト文字が含まれてる場合だけに発生して
全部英数字の場合はうまくいきます。
php.ini で str* 関数をオーバーロードするように設定してたので、一旦
それを外したら上手く動きました。文字化けもしてないようなんで一安心
なんですが、mb_strpos じゃなくて素の strpos を使っててそのうち問題が
起きないか心配です。
このエラーはうちの環境だけで皆さんは普通に動いてますか?
■ このスレッドは過去ログ倉庫に格納されています