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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/05/28(金) 16:33:44ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0219nobodyさん2010/06/05(土) 23:37:52ID:???
>>213
$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
になってしまいます。初歩的で申し訳ありませんが、
希望の動作にするためにはどう記述すればいいか宜しくお願いします。
02212132010/06/05(土) 23:46:34ID:bkBaLixK
>>219
すごいです
感動しました
02222192010/06/05(土) 23:47:44ID:???
$lengthがおかしかったから訂正

$length = count($str) - strlen((int)strrev($str)) - 1;

$length = strlen($str) - strlen((int)strrev($str));
0223205、208です2010/06/05(土) 23:54:22ID:IfiEpjR7
>>216
レスありがとうございます。

> プリペアードステートメントとは簡単に言えばSQLを高速に実行するための準備のことなので
> sqlインジェクションとは関係ありません
> PDO::prepareはこの準備をしつつSQLインジェクション対策を同時に行うメソッドです

知りたいのは、プリペアードステートメントの本来の目的ではなく、
「SQLインジェクション対策として十分か」ということです。

> xssとsqlインジェクションとではエスケープすべき文字列が異なるからです

htmlspecialcharsでは「\」がエスケープされないのが問題ということですね。
疑問が解消できました。
02242132010/06/05(土) 23:54:48ID:bkBaLixK
>>219
文字列の最後が0の場合うまくいかないようです
0225nobodyさん2010/06/06(日) 00:06:05ID:???
>>220
http://php.net/manual/ja/function.preg-replace.php
0226nobodyさん2010/06/06(日) 00:06:32ID:???
>>224
もう正規表現でええやん。

$str = '28habcpt918';
if (preg_match('/([0-9]+)$/', $str, $matches)) {
$format = sprintf('%05d', $matches[1]);
echo $format;
}
02272192010/06/06(日) 00:21:03ID:???
>>224
失礼
全然考えてなかった
intにキャストしてるから頭にある0が消えちゃう

>>226さんので取れるからそれでおながいします
0228nobodyさん2010/06/06(日) 00:26:42ID:???
>>223
> 「SQLインジェクション対策として十分か」ということです。
そらおまえさん用意されてる関数を信じないで何を信じるの?
そんなに心配ならDBの資料あさって自前でエスケープしたらいいんとちゃうの?
0229nobodyさん2010/06/06(日) 00:41:50ID:???
>>228
SQLインジェクション対策に有効だということはわかっていても
「十分」有効なのか「ある程度」有効なのかわからないということです。

プロが作ったサイトでも対策に失敗している場合があるようなので、
素人にとっては自分勝手に信じるのが怖いのです。
そのため、他者の裏付けを求めてお尋ねした次第です。

「信じないで何を信じるの?」ということは、つまり「信じていい」ということですね。
ありがとうございました。
0230nobodyさん2010/06/06(日) 00:43:05ID:???
>>220
$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:???
>>229
> プロが作ったサイトでも対策に失敗している場合があるようなので、
それは関数のせいじゃなくて単にエスケープ忘れてるだけ
プロといっても人間だからね
大手サイトとかにもなると作りが複雑になるし
ちゃんと規約決めて工程を遵守して多人数でやってる場合はバグも出にくいけどコストがかかる
PHPなんかはコスト重視だから設計もなしに適当にやってるとこは潜在的なバグがいっぱい
0232nobodyさん2010/06/06(日) 00:50:27ID:???
>>229
あなたはSQLインジェクション対策の有効性について
慎重な意見を求めているようだけど、逆に他者の裏付けがあれば安心出来るのか?
そんなに心配なら自分で納得いくまでとことん調べるしかないだろう。
02332202010/06/06(日) 00:51:00ID:uQxRO+T3
>>225
ありがとうございます。
すいません読んでみましたが、初心者なのでよくわからなかったです。
$n形式という方法ですか?
0234nobodyさん2010/06/06(日) 01:00:02ID:???
>>233
第二引数の置き換えのところで正規表現使ってるけどここは使えない。
マッチしたものをここで参照する場合$nもしくは\\nと書く。
マッチした全体が$0(\\0)になり、以降()で囲ったところが順番に$1(\\1)、$2(\\2)と入っていく。
まぁ>>220は第一引数の正規表現もおかしいので第二引数の置き換えを変えたところでどうにかなるわけではないが。
正規表現のお勉強は正規表現スレへどうぞ。
http://pc12.2ch.net/test/read.cgi/tech/1268979408/
ただそのケースだと初心者にとって難解な正規表現を使う必要もないので、
>>230を参考に組み立てたほうがよい。
0235nobodyさん2010/06/06(日) 01:20:34ID:???
>>232 独学者なら他人の意見が欲しいものだよ
0236nobodyさん2010/06/06(日) 01:54:28ID:???
他の人の意見聞くのはいいだろうけど、聞いた上で自分なりに勝手に解釈して納得してるのはどうなんだ?
それなら聞く必要ない気がするけどさ。
0237nobodyさん2010/06/06(日) 02:11:20ID:???
くだ質で排他的なのはイクナイ。
02382202010/06/06(日) 02:32:34ID:uQxRO+T3
>>230
出来ました!ありがとうございます!
0239nobodyさん2010/06/06(日) 11:18:37ID:???
sqliteのpdoをソフトウェアで再現するやつありますか。
ワードプレスを動かしたいのですが
0240nobodyさん2010/06/06(日) 11:19:21ID:lMgRzA8F
sqliteのpdoをソフトウェアで再現するやつありますか。
ワードプレスを動かしたいのですが
0241nobodyさん2010/06/06(日) 11:51:52ID:???
>>240
http://wordpress.org/extend/plugins/pdo-for-wordpress/
0242nobodyさん2010/06/06(日) 12:16:08ID:???
>223
SQLインジェクションを予防するのに、
 ・「SQLインジェクションを予防するための関数」と
 ・「XSSを予防するための関数だけど、たまたまSQLインジェクションも防止できるような気がする関数」
どっちを使うかって話だよ。
つうか、「\がエスケープされないから危険」という思考は、要は裏で「SQLに混じって危険なのはコレとコレとコレと…」と候補を自分で考えてるだろ。
「危険な要素を弾く」はセキュリティ対策として非常に危険なので(見落としがあるとアウト)、自己の判断で行なうのを極力避けるべき。

俺を含めPHPプログラマの9割がカスなのは事実だが、言語自体の開発者や標準ライブラリの設計者は優秀だし、しっかりテストもされてる。
だから、「2chの意見と標準ライブラリどっちを信じるか」ならば、標準ライブラリを信じたほうが絶対にいい。
0243nobodyさん2010/06/06(日) 12:24:40ID:lMgRzA8F
>>241
pdoドライバが必要になります。なしで使える方法無いですか。
0244nobodyさん2010/06/06(日) 12:29:00ID:lMgRzA8F
これがOFFで
;extension=php_pdo_sqlite.dll
こっちがONで
extension=php_sqlite.dll
extension=php_sqlite3.dll
動く方法ないですか
0245nobodyさん2010/06/06(日) 12:40:03ID:lMgRzA8F
ここの人がデータベースなしでwordpress動かす方法やってるけど。
未完成



http://polygon-blog.blogspot.com/2010/03/posql-for-wordpress.html
0246nobodyさん2010/06/06(日) 12:47:37ID:???
posqlは一応データベースの一種だぞ
wordpressのソースをハックすればどうにでもなるが
あんな長いのを見るのもめんどくさいしな
ちゃんと抽象化されてて他のスクリプトへの影響が最小限の作りになってて
DB操作用のクラスなんかがあってそのファイルだけいじればOK
みたいなかんじの作りになってたら修正も簡単なんだけど
wpのソースなんて見たことないしシラネ
0247nobodyさん2010/06/06(日) 13:15:59ID:lMgRzA8F
>>241のpdo sqliteをpure PHPで動かせればいいのですが。pdo sqliteの代替え。
0248nobodyさん2010/06/06(日) 13:39:02ID:???
代替が読めない子か
0249nobodyさん2010/06/06(日) 13:57:01ID:???
犠牲になったのだ
0250nobodyさん2010/06/06(日) 14:22:36ID:???
入力画面、確認画面、完了画面の3つのphpで構成したいのですが、
入力画面から確認画面に遷移する際のバリデーションは、どこに実装すべきでしょうか?
0251nobodyさん2010/06/06(日) 14:42:53ID:???
>250
確認画面と完了画面の両方。
コピペはあり得ないので、外部ファイルに関数の形で定義する事になるな。
0252nobodyさん2010/06/06(日) 15:00:52ID:???
>>251
そうなると、確認画面で入力エラーになったら、入力画面にリダイレクトさせることになるんですよね。
その場合の入力値って、セッションに保存しておくしかないのですか?
0253nobodyさん2010/06/06(日) 15:30:15ID:???
>252
確認画面にinput type="hidden"で仕込めばいい。

あと、入力された値がちょっと全角英数だったからとかいう理由で入力値を全部消滅させやがる糞フォームを作るような奴は地獄に落ちるべき。
普通にエラー表示するだけにしとけ。ブラウザバックで戻れば入力値は保持されてることが多いし。
確認画面にエラー内容と、ユーザーが入力したものがそのまま入ってる入力フォームが出てるのがベスト。
0254nobodyさん2010/06/06(日) 15:39:21ID:lMgRzA8F
PDO-SQLITEを
バイナリ(エクステンション)なしで
動かす方法ないですか。
0255nobodyさん2010/06/06(日) 16:37:25ID:B6xMlzjU
ブログなどで画像を表示する場合、
画像保存時に縮小画像を保存しておくのがいいのか
表示時に毎回縮小するのがいいのか、どっちでしょう?

全画像の縮小版をあらかじめ保存しておくと容量を喰いそうなので
表示のタイミングで縮小するのが良いと思ってますが、
縮小画像を削除するタイミングがわかりません。
0256nobodyさん2010/06/06(日) 16:47:41ID:???
>255
バッチで定期的に古いファイルを削除すれば?
実際には更新日時をいちいち判定するのは面倒くさいので、例えば月ごとにディレクトリ掘ってそこに置いといて、月イチで古い月のディレクトリを丸ごと削除とか。

保持しておくべきか動的に生成すべきかは画像の量と表示回数次第だろうね。
容量をざっくり見積もって、それが許容できそうな範囲なら静的に置く方が楽だと思う。
0257nobodyさん2010/06/06(日) 17:00:31ID:B6xMlzjU
>>256
なるほど。その方法いいですね。
でも考えてみれば、アクセスが多くなると毎回縮小するのは負荷がかかりますね。
容量的にいけそうだったらやっぱり静的なほうにしようと思います。
0258nobodyさん2010/06/06(日) 17:02:41ID:lMgRzA8F
縮小画像はつくっておくべきだな。
量が多いなら、3Mくらいの複数の書庫に詰め込んで呼び出せばいい。
実測も書庫の方が高速になる。
たとえば100個表示させるとすると、画像への100回オープンが発生するが。
書庫なら一回。
0259nobodyさん2010/06/06(日) 17:18:34ID:???
>>254
はいって何だよ。さっきから何度も。何がはいなんだよ。
出来もしねえ奴が軽々しくはいなんて言うんじゃねえよ。
だから申し訳ありませんじゃねえだろうよ。何が申し訳ねえんだよ。
本当に反省してんのかよ。
本当に今なら出来んのかよ。
口先だけの謝罪をするんじゃねえよ。
いい加減な気持ちでやってるんだったら今すぐ帰れよ。
だから以後じゃねえんだよ。俺は今の話をしてんだろうが。
今の反省も出来てねえ奴が勝手に未来語ってんじゃねえよ。
勝手に話を切り上げようとするなよ。失礼だろうが。
そんなにやりたくないんだったらだったら今すぐ辞めろお前。
0260nobodyさん2010/06/06(日) 17:45:19ID:???
すごい誤爆だな
0261nobodyさん2010/06/06(日) 17:54:19ID:???
>>259
なにそれ、縦読み?
0262nobodyさん2010/06/06(日) 18:15:18ID:???
つうかもはやスレ違いだろsqliteのやつ
0263nobodyさん2010/06/06(日) 18:16:23ID:???
>>262
あなた誤爆さん?
0264nobodyさん2010/06/06(日) 18:21:23ID:???
>>254
無い
もうコピペに突っかかるのは止めて大人しくしてくれ
0265nobodyさん2010/06/07(月) 03:15:18ID:???

>>170試したら、sex=manのデータが確かにサーバに渡ってないな。
これは、ブラウザの仕様?RFCの仕様なの?


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:???
>>267
Smartyとかテンプレートエンジン使うとかではダメなの?
もちろん、HTMLタグに似せたり、テンプレート側から呼び出せる機能を制限したい、ということであればあり得る方法だと思う。
0269nobodyさん2010/06/07(月) 10:11:02ID:???

告知させて。
現在のところあまり盛んに動いてるオンライン勉強会がないので
あたらしくグループつくりました。
オンラインでチャット・生中などいろいろ(未定)で
できれば毎晩だらだら勉強やる予定です。
熱意のある人いたらたまーに課題だしてってアプリ作るなんてのも
ありかなと思ってます。

初心者の人はもちろん、おれが仕切って教えてやるわって人も大歓迎です。


グーぐるグループ
「初心者歓迎 PHP勉強会 2ch発」
ttp://groups.google.co.jp/group/2ch-php
php.2ch@gmail.com

参加希望の人いたら、メールくださいな。
02702672010/06/07(月) 12:08:54ID:dndZJJbf
出先なのでIDが違うと思いますが>>267です。

>>268
レスありがとうございます。
Smartyはどういうものかよく知りません。
テンプレートエンジン自体どういうものかよくわからなくて・・・
ただMovableTypeを数年前に使っていて、
そこではテンプレート用のMT専用タグみたいなのが使えたので、
>>267のような仕組みになってるのかな?と思い実装しました。
そういう実装もありとのことなので少し安心しました。
テンプレートエンジンについても後ほど調べてみたいと思います。
0271nobodyさん2010/06/07(月) 14:06:21ID:hz9Zbx6T
PHPってLinuxに入れる時ってめんどくさいんだね
./configureの度にgccがないとか、libxml2がないとか、libpngがないとか、とにかくエラーばっか
自分centOS5.4使ってるんだけど、皆さんやっぱこういう風に色々とインストールしてPHP環境(ApacheとかMySQLとか)作ってるんですか?

以前yumで全部インストールしたんだけど、あまりにバージョンが全部古いんで今回最新版を全部入れようと思ったら予想外に時間と手間がかかって
それとも何か自分のやり方が間違ってるんですかね?
0272nobodyさん2010/06/07(月) 14:22:18ID:MuZbivCs
いくつかのサーバー用Linuxディストリビューションにおいては、LAMPがセットになって配布される。LAMPを1つのセットにすることで、OSのインストール時にLAMPの多くの設定・関連付けを自動的に行うことができ、サーバー管理者の手間を軽減させることができる。
http://ja.wikipedia.org/wiki/LAMP
0273nobodyさん2010/06/07(月) 14:39:38ID:???
>>271
yum install php
0274nobodyさん2010/06/07(月) 14:42:06ID:???
>>271
あと

> 以前yumで全部インストールしたんだけど、あまりにバージョンが全部古いんで今回最新版を全部入れようと思ったら
yum update
0275nobodyさん2010/06/07(月) 14:50:49ID:hz9Zbx6T
>>272
それはやっぱり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
>>274
あれ?
yum updateでPHPのバージョンとかも5.2とかにアップデートされるのでしょうか?
自分はyumでPHP環境を作る前に2度ほどyum updateをしたのですが、5.1.16とかの古いバージョンのままでした
php infoでも確認したつもりだったのですが
それかcentOSはそうなのでしょうか・・・

自分が勘違いしてたか、何かおかしな事をしたのかもしれませんね
0277nobodyさん2010/06/07(月) 15:25:24ID:???
>>276
yumで最新版を入れたいなら、リポジトリを変える

あとLinux板のくだ質と微妙なマルチやめてくれ
0278nobodyさん2010/06/07(月) 16:39:40ID:???
なんだこの展開。
最新版が使いたいならCentOSやめろ。そんなことのためのディストリじゃない。

>>275
突っ込みどころは腐るほどあるけど、どうしてもそのディストリで自前ビルドしたものを使いたい、かつ、
ほかにも使いまわしたいのならRPM作って署名してローカルリポジトリを使うようにする。

>>276
全部yumでインストールしたなら全部yumでアップデートすればいい。
なぜ最新版がリポジトリにないのかについては、それがCentOSだからという答えになる。
RHELのクローンということを認識してるか?
0279nobodyさん2010/06/07(月) 18:46:23ID:???
なんでサーバー用のOS使ってるのに最新版にこだわるんだろうね
0280nobodyさん2010/06/07(月) 19:28:33ID:???
別にいいんじゃねーの?
0281nobodyさん2010/06/07(月) 19:39:23ID:???
>>279
名前空間って書いてあるじゃん
0282nobodyさん2010/06/07(月) 21:36:24ID:goYJN4/h
【OS名】WindowsXP
【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
>>282
ソースを出せよ。
それじゃわからんないでしょうが。
0285nobodyさん2010/06/08(火) 01:55:27ID:???
そんなタイトルからだめそうな本持ってるやつおらんで
0286nobodyさん2010/06/08(火) 01:59:43ID:X6L4SMDo
>>282
もっとちゃんとした本買ったほうがいいぞ。
本の名前書くと著者乙とか書かれてしまうから
かかねーけど
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:???
知りたいことはwebで知れるんだけど
手っ取り早く1-10を見れるのは本かな
来週から突然pythonやってね。って言われたら
経費で本買って読む。みたいな
0291nobodyさん2010/06/08(火) 08:53:55ID:???
>>289
PHP自体は違ったけど、PEAR、ZFなんかはマニュアル全ページ読んだ
0292nobodyさん2010/06/08(火) 10:14:47ID:???
>>282
fgetcsvの文字化けと予想。  fgetcsv 文字化けで検索するといろいろあるよ。
0293nobodyさん2010/06/08(火) 10:57:16ID:???
ttp://web.archive.org/web/20071011041237/http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html
 ↓ ↓ ↓ ↓ ↓
ttp://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html

1) 例えば、PHPを避ける
 ↓ ↓ ↓ ↓ ↓
1) プログラマが脆弱性をつくり易い環境を避ける
0294nobodyさん2010/06/08(火) 10:59:33ID:???
ウイルス対策はwindowsを避けろっていう程度の話か。
0295nobodyさん2010/06/08(火) 11:03:23ID:O0+3kZk7
LinuxにEclipse PDTを導入しようと思ってインストールしたのですが、
PHP実行可能ファイルの設定の所で実行ファイルパスにphp.exeを指定する所があるのですがここが分かりません
検索しても出てきませんでした
後、/usr/local/lib/phpの中にphpが展開されていると思うのですが、いくら探しても出てきませんでした
linux(FedoraやcentOS)ではどこにphp.exeがあるのでしょうか?

linuxにそもそもphp.exeというものはあるのでしょうか?
もし無いとすれば、この実行可能ファイルパスの所には一体何を指定すればいいのでしょうか?
0296nobodyさん2010/06/08(火) 11:15:18ID:???
>>295
そりゃあ、Linuxにphp.exeは無いでしょうね。
単に「php」。

ちゃんとphpがインストールされてるなら、"whiich php"で、どこにあるやつが遣われるか判るよ。
0297nobodyさん2010/06/08(火) 11:20:59ID:???
>>296
Thanksです
02982952010/06/08(火) 11:26:48ID:???
あれ、そうなるとEclipseの実行ファイル・パスにはいったい何を指定すればいいのでしょうか?
which phpで検索した/usr/local/lib/php というディレクトリ(?)では先に進めないのですが
system.phpとかを指定するのでしょうか?
0299nobodyさん2010/06/08(火) 11:32:28ID:???
>>298
phpはどうやってインストールした?
単にCLI版が入ってないだけだと思うが。
03002952010/06/08(火) 11:33:04ID:???

which phpで検索した/usr/bin/php の間違いでした
03012952010/06/08(火) 11:34:23ID:???
何度も連投すみません
/usr/local/bin/phpで解決しました
解決したことを書き込む前にアップしてしまいました
0302nobodyさん2010/06/08(火) 12:39:01ID:???
>>296
フィーーッチになってるお
0303nobodyさん2010/06/08(火) 12:39:50ID:???
ちゃんと通じていたことを見ておくべきでした
0304nobodyさん2010/06/08(火) 12:52:25ID:lvF7sIjD
PHPで1円の誤差も許さない金額計算などを行うときには
どのような点に気をつければよいでしょうか。

JavaでいうところのBigDecimalを使うとか、
特定のクラスを使用する必要がありますか?
0305nobodyさん2010/06/08(火) 13:08:53ID:???
小数を使わない。誤差が出ない計算を考える。他の言語でもそうじゃないの?
0306nobodyさん2010/06/08(火) 13:10:50ID:o6m5GUPU?2BP(2)
>>210
やってみます
0307nobodyさん2010/06/08(火) 13:17:20ID:???
>>304
例えば、PHPを避ける
0308nobodyさん2010/06/08(火) 14:06:45ID:YOnOVKl0
PHP:5.1.6
OS: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';
};
03113082010/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');
03122002010/06/08(火) 14:23:33ID:KP/ycwH2
>>210
Error: invalid method
そのままではこれがでます。なので、

//エラーチェック
//リクエストメソッドチェック
if($REQUEST_METHOD != "POST") {
print "Error: invalid method";
exit();
}
を削除しました。
するとやはりDBの中身すべてが出てしまいます。
03132822010/06/08(火) 14:41:31ID:IOcc/liv
すみません。遅くなりました。
ファイルは全部で5つあるのでzipにしてアップしました。
http://loda.jp/shm/?id=12

>>292 ぐぐってみたらこれっぽい気がするのですが、なにがなんだか分からない状態です;
もう少しがんばってみようとおもいます。。
03142822010/06/08(火) 14:57:42ID:???
guest_red.phpの13行目の
while ($row = fgetcsv($file, 1024, "\t")){

while ($date = fgets($file, 1024)){
$row = explode("\t", $date);
としたら解決しました。
すみませんでした。
0315nobodyさん2010/06/08(火) 16:39:32ID:???
下のような検索フォームを作りたいです。
phpとセレクトフォームによって呼び出すcgiを選択させるphpを教えてください。
呼び出すcgiについては完成しています。

<form method="post" action="http://aaa.php">
<input type="text" name="keyword" size="20" value="定着率" />
<br />
<select name="search">
<option value="bookmark">あああ</option>
<option value="mobile">いいい</option>
<option value="pc">えええ</option>
</select>
<input type="submit" value="検索" />
</form>
0316nobodyさん2010/06/08(火) 16:57:07ID:???
呼び出すCGIを選択するのではなくて
searchの値によってaaa.phpの中で場合分けして処理するのがセオリーだろうね。

どうしてもってんなら、Javascriptでselectが変更されたら、formのactionを書き換えるか。
でも、このやり方じゃ、アクセシビリティー的にアウトだろう。
0317nobodyさん2010/06/08(火) 17:38:05ID:hMNg2N9l
最近って文字コードどうしてますか?
もうUTF−8に統一されました?
まだEUCだよとかSJISで頑張ってるとか教えて下さい。
0318nobodyさん2010/06/08(火) 17:39:56ID:???
>>316
レスありがとうございます。
すでに検索用のインデックスは作成してしまったので、
それに対応するcgiを選択すればいいだけだったのですが難しそうですね。
0319nobodyさん2010/06/08(火) 19:00:54ID:???
対応するcgiに302でいいんじゃないの?
てか、cgiとphpという言葉の使い分けはなんだろ。perl-cgiとか使ってんのかな。なんでもいいんだけどさ。
■ このスレッドは過去ログ倉庫に格納されています