【PHP】下らねぇ質問はID出して書き込みやがれ 96
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/05/28(金) 16:33:44ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0215nobodyさん
2010/06/05(土) 23:25:25ID:IfiEpjR7すみません、既に読んでます。
お尋ねしたいのは以下の2点です。
・プリペアードステートメントを使えば、SQLインジェクションの対策としては完璧ですか?
・SQLインジェクションを防ぐ方法はプリペアードステートメントを使うのが良いのはわかりますが、
htmlspecialcharsを使う方法が代わりにならない理由は何ですか?
(数値が期待される部分では、その部分に用いる値をintval()で数値化する方法もダメですか?)
0216nobodyさん
2010/06/05(土) 23:32:48ID:???>プリペアードステートメントを使えば、SQLインジェクションの対策としては完璧ですか?
いいえ
プリペアードステートメントとは簡単に言えばSQLを高速に実行するための準備のことなので
sqlインジェクションとは関係ありません
PDO::prepareはこの準備をしつつSQLインジェクション対策を同時に行うメソッドです
>・SQLインジェクションを防ぐ方法はプリペアードステートメントを使うのが良いのはわかりますが、
> htmlspecialcharsを使う方法が代わりにならない理由は何ですか?
xssとsqlインジェクションとではエスケープすべき文字列が異なるからです
0217213
2010/06/05(土) 23:34:04ID:bkBaLixKつまりどう書けばいいんですか?
0218nobodyさん
2010/06/05(土) 23:37:11ID:???preg_match("/[0-9]+$/", $str);
0219nobodyさん
2010/06/05(土) 23:37:52ID:???$str = "28habcpt918";
$length = count($str) - strlen((int)strrev($str)) - 1;
$format = sprintf("%05d", strrev((int)strrev($str)));
echo substr($str, 0, $length) . $format;
0220nobodyさん
2010/06/05(土) 23:39:11ID:Jla4xmZF文字列のある部分だけ置き換えたいのですが、
1)12345-12345-123-a
2)aaa-aaa-aaa-12345-a
の2つの文字列があるとき、結果を
11111-123-a
11111-12345-a
と置き換えしたいです。
$AAA = preg_replace('/(.*?)-(.*?)-a/','11111-(.*?)-a',$AAA);
と記述したのですが、結果は、
11111-(.*?)-a
11111-(.*?)-a
になってしまいます。初歩的で申し訳ありませんが、
希望の動作にするためにはどう記述すればいいか宜しくお願いします。
0221213
2010/06/05(土) 23:46:34ID:bkBaLixKすごいです
感動しました
0222219
2010/06/05(土) 23:47:44ID:???$length = count($str) - strlen((int)strrev($str)) - 1;
↓
$length = strlen($str) - strlen((int)strrev($str));
0223205、208です
2010/06/05(土) 23:54:22ID:IfiEpjR7レスありがとうございます。
> プリペアードステートメントとは簡単に言えばSQLを高速に実行するための準備のことなので
> sqlインジェクションとは関係ありません
> PDO::prepareはこの準備をしつつSQLインジェクション対策を同時に行うメソッドです
知りたいのは、プリペアードステートメントの本来の目的ではなく、
「SQLインジェクション対策として十分か」ということです。
> xssとsqlインジェクションとではエスケープすべき文字列が異なるからです
htmlspecialcharsでは「\」がエスケープされないのが問題ということですね。
疑問が解消できました。
0224213
2010/06/05(土) 23:54:48ID:bkBaLixK文字列の最後が0の場合うまくいかないようです
0225nobodyさん
2010/06/06(日) 00:06:05ID:???http://php.net/manual/ja/function.preg-replace.php
0226nobodyさん
2010/06/06(日) 00:06:32ID:???もう正規表現でええやん。
$str = '28habcpt918';
if (preg_match('/([0-9]+)$/', $str, $matches)) {
$format = sprintf('%05d', $matches[1]);
echo $format;
}
0227219
2010/06/06(日) 00:21:03ID:???失礼
全然考えてなかった
intにキャストしてるから頭にある0が消えちゃう
>>226さんので取れるからそれでおながいします
0228nobodyさん
2010/06/06(日) 00:26:42ID:???> 「SQLインジェクション対策として十分か」ということです。
そらおまえさん用意されてる関数を信じないで何を信じるの?
そんなに心配ならDBの資料あさって自前でエスケープしたらいいんとちゃうの?
0229nobodyさん
2010/06/06(日) 00:41:50ID:???SQLインジェクション対策に有効だということはわかっていても
「十分」有効なのか「ある程度」有効なのかわからないということです。
プロが作ったサイトでも対策に失敗している場合があるようなので、
素人にとっては自分勝手に信じるのが怖いのです。
そのため、他者の裏付けを求めてお尋ねした次第です。
「信じないで何を信じるの?」ということは、つまり「信じていい」ということですね。
ありがとうございました。
0230nobodyさん
2010/06/06(日) 00:43:05ID:???$a = "12345-12345-123-a";
$b = explode("-", $a);
echo "11111-" . $b[count($b)-2] . "-" . $b[count($b)-1];
0231nobodyさん
2010/06/06(日) 00:48:24ID:???> プロが作ったサイトでも対策に失敗している場合があるようなので、
それは関数のせいじゃなくて単にエスケープ忘れてるだけ
プロといっても人間だからね
大手サイトとかにもなると作りが複雑になるし
ちゃんと規約決めて工程を遵守して多人数でやってる場合はバグも出にくいけどコストがかかる
PHPなんかはコスト重視だから設計もなしに適当にやってるとこは潜在的なバグがいっぱい
0232nobodyさん
2010/06/06(日) 00:50:27ID:???あなたはSQLインジェクション対策の有効性について
慎重な意見を求めているようだけど、逆に他者の裏付けがあれば安心出来るのか?
そんなに心配なら自分で納得いくまでとことん調べるしかないだろう。
0233220
2010/06/06(日) 00:51:00ID:uQxRO+T3ありがとうございます。
すいません読んでみましたが、初心者なのでよくわからなかったです。
$n形式という方法ですか?
0234nobodyさん
2010/06/06(日) 01:00:02ID:???第二引数の置き換えのところで正規表現使ってるけどここは使えない。
マッチしたものをここで参照する場合$nもしくは\\nと書く。
マッチした全体が$0(\\0)になり、以降()で囲ったところが順番に$1(\\1)、$2(\\2)と入っていく。
まぁ>>220は第一引数の正規表現もおかしいので第二引数の置き換えを変えたところでどうにかなるわけではないが。
正規表現のお勉強は正規表現スレへどうぞ。
http://pc12.2ch.net/test/read.cgi/tech/1268979408/
ただそのケースだと初心者にとって難解な正規表現を使う必要もないので、
>>230を参考に組み立てたほうがよい。
0236nobodyさん
2010/06/06(日) 01:54:28ID:???それなら聞く必要ない気がするけどさ。
0237nobodyさん
2010/06/06(日) 02:11:20ID:???0238220
2010/06/06(日) 02:32:34ID:uQxRO+T3出来ました!ありがとうございます!
0239nobodyさん
2010/06/06(日) 11:18:37ID:???ワードプレスを動かしたいのですが
0240nobodyさん
2010/06/06(日) 11:19:21ID:lMgRzA8Fワードプレスを動かしたいのですが
0241nobodyさん
2010/06/06(日) 11:51:52ID:???http://wordpress.org/extend/plugins/pdo-for-wordpress/
0242nobodyさん
2010/06/06(日) 12:16:08ID:???SQLインジェクションを予防するのに、
・「SQLインジェクションを予防するための関数」と
・「XSSを予防するための関数だけど、たまたまSQLインジェクションも防止できるような気がする関数」
どっちを使うかって話だよ。
つうか、「\がエスケープされないから危険」という思考は、要は裏で「SQLに混じって危険なのはコレとコレとコレと…」と候補を自分で考えてるだろ。
「危険な要素を弾く」はセキュリティ対策として非常に危険なので(見落としがあるとアウト)、自己の判断で行なうのを極力避けるべき。
俺を含めPHPプログラマの9割がカスなのは事実だが、言語自体の開発者や標準ライブラリの設計者は優秀だし、しっかりテストもされてる。
だから、「2chの意見と標準ライブラリどっちを信じるか」ならば、標準ライブラリを信じたほうが絶対にいい。
0243nobodyさん
2010/06/06(日) 12:24:40ID:lMgRzA8Fpdoドライバが必要になります。なしで使える方法無いですか。
0244nobodyさん
2010/06/06(日) 12:29:00ID:lMgRzA8F;extension=php_pdo_sqlite.dll
こっちがONで
extension=php_sqlite.dll
extension=php_sqlite3.dll
動く方法ないですか
0245nobodyさん
2010/06/06(日) 12:40:03ID:lMgRzA8F未完成
http://polygon-blog.blogspot.com/2010/03/posql-for-wordpress.html
0246nobodyさん
2010/06/06(日) 12:47:37ID:???wordpressのソースをハックすればどうにでもなるが
あんな長いのを見るのもめんどくさいしな
ちゃんと抽象化されてて他のスクリプトへの影響が最小限の作りになってて
DB操作用のクラスなんかがあってそのファイルだけいじればOK
みたいなかんじの作りになってたら修正も簡単なんだけど
wpのソースなんて見たことないしシラネ
0247nobodyさん
2010/06/06(日) 13:15:59ID:lMgRzA8F0248nobodyさん
2010/06/06(日) 13:39:02ID:???0249nobodyさん
2010/06/06(日) 13:57:01ID:???0250nobodyさん
2010/06/06(日) 14:22:36ID:???入力画面から確認画面に遷移する際のバリデーションは、どこに実装すべきでしょうか?
0251nobodyさん
2010/06/06(日) 14:42:53ID:???確認画面と完了画面の両方。
コピペはあり得ないので、外部ファイルに関数の形で定義する事になるな。
0252nobodyさん
2010/06/06(日) 15:00:52ID:???そうなると、確認画面で入力エラーになったら、入力画面にリダイレクトさせることになるんですよね。
その場合の入力値って、セッションに保存しておくしかないのですか?
0253nobodyさん
2010/06/06(日) 15:30:15ID:???確認画面にinput type="hidden"で仕込めばいい。
あと、入力された値がちょっと全角英数だったからとかいう理由で入力値を全部消滅させやがる糞フォームを作るような奴は地獄に落ちるべき。
普通にエラー表示するだけにしとけ。ブラウザバックで戻れば入力値は保持されてることが多いし。
確認画面にエラー内容と、ユーザーが入力したものがそのまま入ってる入力フォームが出てるのがベスト。
0254nobodyさん
2010/06/06(日) 15:39:21ID:lMgRzA8Fバイナリ(エクステンション)なしで
動かす方法ないですか。
0255nobodyさん
2010/06/06(日) 16:37:25ID:B6xMlzjU画像保存時に縮小画像を保存しておくのがいいのか
表示時に毎回縮小するのがいいのか、どっちでしょう?
全画像の縮小版をあらかじめ保存しておくと容量を喰いそうなので
表示のタイミングで縮小するのが良いと思ってますが、
縮小画像を削除するタイミングがわかりません。
0256nobodyさん
2010/06/06(日) 16:47:41ID:???バッチで定期的に古いファイルを削除すれば?
実際には更新日時をいちいち判定するのは面倒くさいので、例えば月ごとにディレクトリ掘ってそこに置いといて、月イチで古い月のディレクトリを丸ごと削除とか。
保持しておくべきか動的に生成すべきかは画像の量と表示回数次第だろうね。
容量をざっくり見積もって、それが許容できそうな範囲なら静的に置く方が楽だと思う。
0257nobodyさん
2010/06/06(日) 17:00:31ID:B6xMlzjUなるほど。その方法いいですね。
でも考えてみれば、アクセスが多くなると毎回縮小するのは負荷がかかりますね。
容量的にいけそうだったらやっぱり静的なほうにしようと思います。
0258nobodyさん
2010/06/06(日) 17:02:41ID:lMgRzA8F量が多いなら、3Mくらいの複数の書庫に詰め込んで呼び出せばいい。
実測も書庫の方が高速になる。
たとえば100個表示させるとすると、画像への100回オープンが発生するが。
書庫なら一回。
0259nobodyさん
2010/06/06(日) 17:18:34ID:???はいって何だよ。さっきから何度も。何がはいなんだよ。
出来もしねえ奴が軽々しくはいなんて言うんじゃねえよ。
だから申し訳ありませんじゃねえだろうよ。何が申し訳ねえんだよ。
本当に反省してんのかよ。
本当に今なら出来んのかよ。
口先だけの謝罪をするんじゃねえよ。
いい加減な気持ちでやってるんだったら今すぐ帰れよ。
だから以後じゃねえんだよ。俺は今の話をしてんだろうが。
今の反省も出来てねえ奴が勝手に未来語ってんじゃねえよ。
勝手に話を切り上げようとするなよ。失礼だろうが。
そんなにやりたくないんだったらだったら今すぐ辞めろお前。
0260nobodyさん
2010/06/06(日) 17:45:19ID:???0262nobodyさん
2010/06/06(日) 18:15:18ID:???0266nobodyさん
2010/06/07(月) 03:25:38ID:???0267nobodyさん
2010/06/07(月) 06:44:36ID:FJeCaP+n自分でテンプレートを作成することになると思いますが、
その場合例えばDBから値を取り出してそれを表示するなんて場合、
DBから結果取得〜表示までのロジックをかかなければなりません。
一部用意されている関数で処理が省略できるとしても、
PHPを知らないとなりません。
そこであらかじめテンプレートで使われそうな処理(上記の例の場合、ある結果の取得から表示まで)を
関数単位で用意し、テンプレートではHTMLの構文に似たカスタムタグを使うことで、
テンプレートからHTMLに変換する際、カスタムタグを構文解析して対応した関数を呼び出そうと考えました。
こういう方法は一般的でしょうか?
構文解析方法ですが、正規表現を使って行っています。
0268nobodyさん
2010/06/07(月) 07:40:10ID:???Smartyとかテンプレートエンジン使うとかではダメなの?
もちろん、HTMLタグに似せたり、テンプレート側から呼び出せる機能を制限したい、ということであればあり得る方法だと思う。
0269nobodyさん
2010/06/07(月) 10:11:02ID:???告知させて。
現在のところあまり盛んに動いてるオンライン勉強会がないので
あたらしくグループつくりました。
オンラインでチャット・生中などいろいろ(未定)で
できれば毎晩だらだら勉強やる予定です。
熱意のある人いたらたまーに課題だしてってアプリ作るなんてのも
ありかなと思ってます。
初心者の人はもちろん、おれが仕切って教えてやるわって人も大歓迎です。
グーぐるグループ
「初心者歓迎 PHP勉強会 2ch発」
ttp://groups.google.co.jp/group/2ch-php
php.2ch@gmail.com
参加希望の人いたら、メールくださいな。
0270267
2010/06/07(月) 12:08:54ID:dndZJJbf>>268
レスありがとうございます。
Smartyはどういうものかよく知りません。
テンプレートエンジン自体どういうものかよくわからなくて・・・
ただMovableTypeを数年前に使っていて、
そこではテンプレート用のMT専用タグみたいなのが使えたので、
>>267のような仕組みになってるのかな?と思い実装しました。
そういう実装もありとのことなので少し安心しました。
テンプレートエンジンについても後ほど調べてみたいと思います。
0271nobodyさん
2010/06/07(月) 14:06:21ID:hz9Zbx6T./configureの度にgccがないとか、libxml2がないとか、libpngがないとか、とにかくエラーばっか
自分centOS5.4使ってるんだけど、皆さんやっぱこういう風に色々とインストールしてPHP環境(ApacheとかMySQLとか)作ってるんですか?
以前yumで全部インストールしたんだけど、あまりにバージョンが全部古いんで今回最新版を全部入れようと思ったら予想外に時間と手間がかかって
それとも何か自分のやり方が間違ってるんですかね?
0272nobodyさん
2010/06/07(月) 14:22:18ID:MuZbivCshttp://ja.wikipedia.org/wiki/LAMP
0274nobodyさん
2010/06/07(月) 14:42:06ID:???あと
> 以前yumで全部インストールしたんだけど、あまりにバージョンが全部古いんで今回最新版を全部入れようと思ったら
yum update
0275nobodyさん
2010/06/07(月) 14:50:49ID:hz9Zbx6Tそれはやっぱりyumでって事なんでしょうか?
自分は以前yumで全部入れたんですが、バージョンが古くて
PHPなんかも名前空間使いたかったので5.3が必要で
それともyum以外で何かインストールするパッケージがあるのでしょうか?
centOSは他のディストリビューションよりもサーバ型だと思うんですが
>>273
あぁ、やっぱyumで入れてるんですか?
確かcentOS5.4のPHPは確か5.1か何かで古くて自分でWindowsで作ったソースがエラーが出たりして最新版を入れようと奮起していまして
いやぁ、ほんと次から次に./configureでエラーが出まくってくれて、その度にダウンロード→./configure→make→make installの繰り返して・・・
相当萎えていました
こんなんじゃ企業で使うとき、クリーンインストールや新規PC等の度に1台につき設定が物凄い無駄な時間かかるなぁ、と思いまして
Windowsだとすぐだけど
0276nobodyさん
2010/06/07(月) 15:15:25ID:hz9Zbx6Tあれ?
yum updateでPHPのバージョンとかも5.2とかにアップデートされるのでしょうか?
自分はyumでPHP環境を作る前に2度ほどyum updateをしたのですが、5.1.16とかの古いバージョンのままでした
php infoでも確認したつもりだったのですが
それかcentOSはそうなのでしょうか・・・
自分が勘違いしてたか、何かおかしな事をしたのかもしれませんね
0278nobodyさん
2010/06/07(月) 16:39:40ID:???最新版が使いたいならCentOSやめろ。そんなことのためのディストリじゃない。
>>275
突っ込みどころは腐るほどあるけど、どうしてもそのディストリで自前ビルドしたものを使いたい、かつ、
ほかにも使いまわしたいのならRPM作って署名してローカルリポジトリを使うようにする。
>>276
全部yumでインストールしたなら全部yumでアップデートすればいい。
なぜ最新版がリポジトリにないのかについては、それがCentOSだからという答えになる。
RHELのクローンということを認識してるか?
0279nobodyさん
2010/06/07(月) 18:46:23ID:???0280nobodyさん
2010/06/07(月) 19:28:33ID:???0282nobodyさん
2010/06/07(月) 21:36:24ID:goYJN4/h【PHPのバージョン】5.3
【連携ソフトウェア】いまのところなし
【質問内容】
すみません。質問させてください。
「10日でおぼえるPHP入門教室(第2版)」という本で勉強中のものです。
5日目の2限目のゲストブック閲覧のところで、つまってしまいました。
うまく動いてはいるのですが、名前かメッセージのところの1文字目が全角英数字だと、
(2文字目以降だと正常に表示されます)
guest.datには書かれるのに、閲覧ページのguest_read.phpには何も入っていなく空欄なのです。
ぐーぐる先生に聞いても半角⇔全角変換のことばかり出てきてうまく答えがみつかりませんでした。
全角英数字のまま出力はできないのでしょうか?
文字コードは本のとおりUTF-8(BOM無し)です。
よろしくお願いします。
0283nobodyさん
2010/06/07(月) 23:41:38ID:???0284nobodyさん
2010/06/08(火) 01:43:03ID:X6L4SMDoソースを出せよ。
それじゃわからんないでしょうが。
0285nobodyさん
2010/06/08(火) 01:55:27ID:???0286nobodyさん
2010/06/08(火) 01:59:43ID:X6L4SMDoもっとちゃんとした本買ったほうがいいぞ。
本の名前書くと著者乙とか書かれてしまうから
かかねーけど
0287nobodyさん
2010/06/08(火) 02:28:54ID:???0288nobodyさん
2010/06/08(火) 02:33:17ID:???買ってね!
Amazon.co.jp: 10日でおぼえるPHP5入門教室 第2版 (CD-ROM付): 山田 祥寛: 本
http://www.amazon.co.jp/dp/4798118761
0289nobodyさん
2010/06/08(火) 02:55:18ID:???Webからの情報のみで勉強してるのは俺ぐらいなのか?
0290nobodyさん
2010/06/08(火) 03:24:23ID:???手っ取り早く1-10を見れるのは本かな
来週から突然pythonやってね。って言われたら
経費で本買って読む。みたいな
0293nobodyさん
2010/06/08(火) 10:57:16ID:???↓ ↓ ↓ ↓ ↓
ttp://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html
1) 例えば、PHPを避ける
↓ ↓ ↓ ↓ ↓
1) プログラマが脆弱性をつくり易い環境を避ける
0294nobodyさん
2010/06/08(火) 10:59:33ID:???0295nobodyさん
2010/06/08(火) 11:03:23ID:O0+3kZk7PHP実行可能ファイルの設定の所で実行ファイルパスにphp.exeを指定する所があるのですがここが分かりません
検索しても出てきませんでした
後、/usr/local/lib/phpの中にphpが展開されていると思うのですが、いくら探しても出てきませんでした
linux(FedoraやcentOS)ではどこにphp.exeがあるのでしょうか?
linuxにそもそもphp.exeというものはあるのでしょうか?
もし無いとすれば、この実行可能ファイルパスの所には一体何を指定すればいいのでしょうか?
0296nobodyさん
2010/06/08(火) 11:15:18ID:???そりゃあ、Linuxにphp.exeは無いでしょうね。
単に「php」。
ちゃんとphpがインストールされてるなら、"whiich php"で、どこにあるやつが遣われるか判るよ。
0298295
2010/06/08(火) 11:26:48ID:???which phpで検索した/usr/local/lib/php というディレクトリ(?)では先に進めないのですが
system.phpとかを指定するのでしょうか?
0300295
2010/06/08(火) 11:33:04ID:???which phpで検索した/usr/bin/php の間違いでした
0301295
2010/06/08(火) 11:34:23ID:???/usr/local/bin/phpで解決しました
解決したことを書き込む前にアップしてしまいました
0303nobodyさん
2010/06/08(火) 12:39:50ID:???0304nobodyさん
2010/06/08(火) 12:52:25ID:lvF7sIjDどのような点に気をつければよいでしょうか。
JavaでいうところのBigDecimalを使うとか、
特定のクラスを使用する必要がありますか?
0305nobodyさん
2010/06/08(火) 13:08:53ID:???0308nobodyさん
2010/06/08(火) 14:06:45ID:YOnOVKl0OS:Centos
utf-8でmail関数を使ってメールを送るクラスをつくっています
phpスクリプトから送信をしてOutlookで受信した際に本文が正しく表示されません
通常であれば表示されてはいけない This is a MIME encoded message から全て表示されてしまいます
正しくメッセージを表示するようにするにはどうしたらいいでしょうか?
メッセージ部分を生成関数
private function MakeBody()
{
if(count($this->APPENDFILE) > 0)
{
$FILEDATA = '';
foreach($this->APPENDFILE as $RECORD)
{
$FILE = chunk_split(base64_encode($RECORD['DATA']));
$FILEDATA .= "--{$this->BOUNDARY}\n\n"
. "Content-Type: text/plain; name=\"{$RECORD['NAME']}\"\n"
. "Content-Transfer-Encoding: base64\n"
. "{$FILE}\n";
};
};
$RESULT = mb_convert_encoding("This is a MIME encoded message.\n\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("--{$this->BOUNDARY}\n\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("Content-Type: text/plain; charset=\"iso-2022-jp\"\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("{$this->MESSAGE}\n\n",'iso-2022-jp','utf-8');
$RESULT .= $FILEDATA;
$RESULT .= mb_convert_encoding("--{$this->BOUNDARY}--\n",'iso-2022-jp','utf-8');
return $RESULT;
}
0309nobodyさん
2010/06/08(火) 14:07:40ID:???function Send($MODE = true)
{
$SUBJECT = mb_encode_mimeheader($this->SUBJECT,'iso-2022-jp','utf-8');
$HEADER = $this->MakeHeader();
$BODY = $this->MakeBody();
$FROM = "-f{$this->FROM['NAME']} <{$this->FROM['ADDRESS']}>";
foreach($this->TO as $RECORD)
{
$TO = mb_encode_mimeheader("{$RECORD['NAME']} ",'iso-2022-jp','utf-8')."<{$RECORD['ADDRESS']}>";
if($MODE === true)
{
mail($TO,$SUBJECT,$BODY,$HEADER,$FROM);
}
else
{
echo "--HEADER--\n{$HEADER}\n--TO--\n{$TO}\n--SUBJECT--\n{$SUBJECT}\n--BODY--\n{$BODY}\n";
};
};
}
0310nobodyさん
2010/06/08(火) 14:08:41ID:???$MAIL = new SENDMAIL();
if($MAIL->SetFROM('送信テスト元','hoge@example.com') === true)
{
if($MAIL->AddTO('送信テスト先','hagu@example.com') !== false)
{
$TIME = 'TEST'.strftime('%Y-%m-%d %H:%M:%S',time());
$MAIL->SetMessage("てすとにゃーん {$TIME} ");
$MAIL->SetSubject("サブジェクトテスト");
$MAIL->SEND(true);
}
else
{
echo 'error TO';
};
}
else
{
echo 'error FROM';
};
0311308
2010/06/08(火) 14:17:04ID:YOnOVKl0>>308
違:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
正:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: 7bit\n",'iso-2022-jp','utf-8');
0312200
2010/06/08(火) 14:23:33ID:KP/ycwH2Error: invalid method
そのままではこれがでます。なので、
//エラーチェック
//リクエストメソッドチェック
if($REQUEST_METHOD != "POST") {
print "Error: invalid method";
exit();
}
を削除しました。
するとやはりDBの中身すべてが出てしまいます。
0313282
2010/06/08(火) 14:41:31ID:IOcc/livファイルは全部で5つあるのでzipにしてアップしました。
http://loda.jp/shm/?id=12
>>292 ぐぐってみたらこれっぽい気がするのですが、なにがなんだか分からない状態です;
もう少しがんばってみようとおもいます。。
0314282
2010/06/08(火) 14:57:42ID:???while ($row = fgetcsv($file, 1024, "\t")){
を
while ($date = fgets($file, 1024)){
$row = explode("\t", $date);
としたら解決しました。
すみませんでした。
■ このスレッドは過去ログ倉庫に格納されています