【PHP】下らねぇ質問はここに書き込みやがれ 69
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/27(火) 18:04:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0256nobodyさん
2008/06/06(金) 10:59:21ID:???フォームの内容を次のページで確認したりするために表示すると
「表示」という文字列が「表\示」というふうに間に半角の¥マークが入ったりします。
他にもいくつかの文字列で確認できています。
\を省くようなプログラムを書いてしまうと本来の\を記入したいときなどに
不都合が起きてしまうので
それ以外の方法で何とかしたいのですが
原因・解決方法を教えてください
よろしくおねがいします。
0257nobodyさん
2008/06/06(金) 11:05:11ID:???0258256
2008/06/06(金) 11:30:51ID:???スレ汚しすいません
0259nobodyさん
2008/06/06(金) 14:53:07ID:???apache+mod_fcgidでphp動かすのと
apache+mod_phpで動かすのどっちが早いのでしょうか?
やっぱり圧倒的にmod_phpですかね・・・
0260nobodyさん
2008/06/06(金) 17:07:39ID:???0261227
2008/06/06(金) 17:19:55ID:qm+hYxPW>>227を実現したかった環境はPHP5.2の入っているレンサバです。
今回はPHPでの実装をあきらめて、JavaScriptで実装してみます。
お答えいただきました皆さま、ありがとうございました。
0262254
2008/06/06(金) 17:44:36ID:???ご回答ありがとうございます。
外のifを外してしまうと、
$result(クエリ)が存在しない場合、
whileループをしなくなり、
foreachループでも「データが存在しない配列データ使うな」というエラーが
出てしまいますのです。
一応の善後策として、print書き出しのところを変数$fooに代入して、
whileループ後、$fooが空だったら、「該当無し」を代入してから書き出し、
という方法を取ってみました。
入門書以外の書籍を見つけられないので、
どうもPHP+MySQLはつまづきやすいです。
定石集みたいな本があれば嬉しいのですが、何かお薦め本ありますか?
0263nobodyさん
2008/06/06(金) 17:59:09ID:9VzUi8vG特定の文字列以外はNGにしたいのですが、
$hoge = $_POST["data1"];
$hogehoge = "ここがわかりません。"
if(!stristr($hoge , $hogehoge)){
echo "NG";
}else{
echo "OK";
}
こんな感じでテキストボックスから「数字 か "n"」のみを受付たいのですが、
どなたかお力を貸してください。お願いします。
0264nobodyさん
2008/06/06(金) 18:07:11ID:???ちなみに後者の方がちょっと早いけど、たぶんそこまでこだわるの無駄。
0265263
2008/06/06(金) 18:39:49ID:???さっそくググってみました。
正規表現がいまいちわからないのですが、
数字 か "n" の場合
/[n\d]/
で合ってるのかな?
一応テストしてみたら思うとおりに動きました。
ありがとうございました。
0266nobodyさん
2008/06/06(金) 18:51:20ID:???/\d|n/
nで始まる複数の数字(例:n012345678)って決まってる場合は、
/^n[\d]+?$/
とかじゃね?
0267nobodyさん
2008/06/06(金) 18:55:46ID:???これを直すにはコンパイルしなおすしかないのでしょうか?
システム全体はUTF8でGD内部だけEUCなのが使いにくくてしょうがない・・・
0268263
2008/06/06(金) 19:00:30ID:???数字(何桁でも可。数字以外が含まれるとNG)
n (1文字だけならOK。 n0123とか nabcとかはNG)
の正規表現を教えて下さい。
何度もごめんなさい。
0269nobodyさん
2008/06/06(金) 19:14:20ID:???丸投げやめれ
限りなく答えに近いヒントは書いた
>>267
GDってUTF-8対応してたはず。(2.0以降?)
アップグレードしてみれば?
0270267
2008/06/06(金) 19:40:41ID:???ソースから入れた5.2.6が内部EUCという非常に意味不明な状況。
phpのconfigureに文字コード指定もないっぽいし、GD自体はソースから入れたほうがもちろん新しい。
やっぱりどこかに文字コード指定する場所があるんですかね?
0271nobodyさん
2008/06/06(金) 19:50:57ID:+VeYItW2今「PHPによるWebアプリケーションスーパーサンプリング」って本で勉強しているんですが
PEAR、Smarty、MySQLとかいろいろなPHPと連携出来る
プログラミングが出てきて、どれを選ぶべきか困ってます。
Smartyだとこういうコトが出来て
MySQLだとこういうコトが出来る
みたいなのが分からないので
掲示板作りにもっとも適しているのはどれなんですか?
0272nobodyさん
2008/06/06(金) 19:59:15ID:???0273271
2008/06/06(金) 20:11:09ID:+VeYItW2マジですか?
今考えてるのが明和水産のような形式の画像掲示板を作ろうと思ってるんですが
全部必要でしょうか?
0274nobodyさん
2008/06/06(金) 20:16:42ID:???PHPの問題かGDの問題かまず切り分けてくれよw
というか、主語が不明瞭で文章が分かりづらいよ。
>phpのconfigureに文字コード指定
php.iniのmbstring.internal_encoding = EUC-JP
が有効になってるとかそういうことじゃなくて?
0275nobodyさん
2008/06/06(金) 20:17:40ID:???>Smartyだとこういうコトが出来て
>MySQLだとこういうコトが出来る
>みたいなのが分からないので
つーか、その仕組みを理解するために本買ったんだろw
もっとよく読めよ。
0276nobodyさん
2008/06/06(金) 20:53:34ID:???0277nobodyさん
2008/06/06(金) 21:16:01ID:???遅レスだけど、比較するまでもなく、mod_phpに決まってるだろ。
ソケット介さず、HTTPD直接動かすんだから。
0278nobodyさん
2008/06/06(金) 21:58:27ID:liAI2iTpショッピングなどので注文ボタンを連続して押すと注文データが二つ出来てしまうという件です。
webで検索するとJavaScriptの方法があるのですが、それですとJS無効にしている人には対応ができません。
それで、トランザクションIDなどを発行して、formにhiddenで埋め込んで、送信されてきたIDとセッションに保存されたIDを比較するというやり方が
あると思うのですが、それでも、0.1秒くらいの間隔で連続送信された場合、セッションの処理が追いつかず二度受付がされてしまいます。
お金が絡むことなので、かなりシビアな管理が必要なのですが、どのような方法がありますでしょうか?
私が考えたのは、一回送信したら送信完了画面の表示処理になるまでロックするとか。
そうすると、ロックの解除タイミングが難しく異常終了した場合に、永遠にロックがされてしまい、
OSのリブート以外復旧する方法がなくなってしまうのではないかと、危惧してしまいます。
又は、メールで一回確認メールを送りつけて、そのメールに記載されているURLをクリックすると
注文完了になる、というロジックも考えたのですが、そのような方式でやっているネットショップを、
10年間位ネット使用歴がありますが、見たことがありませんし、利便性が悪いこともわかります。
それで、別の方法として注文ボタンを押しても完了とはせずに、
手動でこちらが確認して注文確認のメールを送るという案も考えました。
が、それも前述と同様で手間がかかる上に、利便性が悪いということで躊躇しています。
あとは、二重注文を承知で、返品を受け付けるという処理があるのですが、
利便性はいいのですが、お客さまからの苦情がこないか不安です。
もちろん、二重注文の免責事項として注文ボタンの前に書きます。
結局、あれやこれや考えたのですが、結論が出ませんでした。お知恵を貸して頂けないでしょうか?
宜しくお願いします。
0280nobodyさん
2008/06/06(金) 22:12:57ID:???単純に、客がWEB上で注文の確認とキャンセルできる仕組みを用意した方が良い。Amazon方式。
それかロック処理に時間制限を付けるとか。ネットバンク方式。
0281nobodyさん
2008/06/06(金) 23:43:30ID:sB0HvGVDいや、そのコードはおかしい。
0282nobodyさん
2008/06/06(金) 23:53:56ID:???コンストラクタ内で呼ぶしかないんじゃない。
$GLOBALS['test'] = 'aaa';
class class_test{
var $test = null;
function class_test(){
global $test;
$this->test = $test;
}
function test_a(){
echo $this->test;
}
}
$obj = new class_test();
$obj->test_a();
0283nobodyさん
2008/06/07(土) 00:06:58ID:???グローバル変数使ったら意味ないじゃん。
いわゆるデータメンバを使うべき。
0284nobodyさん
2008/06/07(土) 00:17:23ID:???× hoge.php?foo=aaa&foo=bbb&foo=ccc
× hoge.php?foo[]=aaa&foo[]=bbb&foo[]=ccc(※[]はシリアライズされる)
○ hoge.php?foo=aaa,bbb,ccc
みたいにすることはPHP側でできますか?
0285282
2008/06/07(土) 00:32:36ID:???283が言いたいのは、こんな感じってこと?
class DataMember{
var $test = 'aaa';
function get(){
return $this->test;
}
function set($value){
$this->test = $value;
}
}
class class_test{
var $DataMember = null;
function set(&$obj){
$this->DataMember =& $obj;
}
function test_a(){
echo $this->DataMember->get();
}
}
$mem = new DataMember();
$obj = new class_test();
$obj->set($mem);
$obj->test_a();
0286nobodyさん
2008/06/07(土) 00:48:17ID:???0287nobodyさん
2008/06/07(土) 00:54:03ID:???0288282
2008/06/07(土) 01:02:25ID:???PHP4の書き方はキモイのかw
レンタル鯖とか今だPHP4が多いからこっちのほうが汎用性あるかと思ったんだけど。
(まぁ、PHP5の書き方は勉強してないのでわからんけど)
PHP4も今年でサポートきれんだっけかね。
0289nobodyさん
2008/06/07(土) 01:24:09ID:7vwhHYDOhttp://www.fxtokyo.jp/
0290nobodyさん
2008/06/07(土) 01:26:16ID:???わからんなら今からやれ。1時間後にスラスラ書けてなきゃ自分の無能を呪え。
0291nobodyさん
2008/06/07(土) 01:34:40ID:???メンバ変数にスコープがつけられるとか、メソッドチェーンができるとか、
コンストラクタが__constructとかするとか、__callとか__destructがあるとか
ソレぐらいしか分からんすけど、今度やってみます。
>>289
ソース見る限り、JavaScriptですね。非同期通信って奴かな。
0293nobodyさん
2008/06/07(土) 05:46:06ID:???0294nobodyさん
2008/06/07(土) 07:47:07ID:???ここぞとばかりにPHP4の書き方を叩いてるな。
もっと他に叩くべき対象は、このスレに溢れてると思うんだが。
0295nobodyさん
2008/06/07(土) 08:05:31ID:???0297nobodyさん
2008/06/07(土) 13:13:44ID:???0298nobodyさん
2008/06/07(土) 13:17:04ID:???0300nobodyさん
2008/06/07(土) 13:40:09ID:???phppgadmin
0301nobodyさん
2008/06/07(土) 13:45:32ID:???0302nobodyさん
2008/06/07(土) 13:50:29ID:5XgOB7asphpの場合明確ではありませんよね。
例えば、日本ユニシスのようにgifを使っていたら、
急に特許使用料を請求されるというリスクがありますか?
Javaの場合は、SunMicrosystemsが明確に使用は無料ということを打ち出しています。
PHPの場合、それが全然明確ではありません。
もしかしたら・・・というリスクが脳裏をよぎります。
実際のところどうなのでしょうか?
0303nobodyさん
2008/06/07(土) 13:52:11ID:???0304nobodyさん
2008/06/07(土) 13:54:20ID:5XgOB7asPHPの使用に当たって、完全にフリーだという公式の文章がどこにもないからです。
つまり、将来的に有料化できることを留保していて使わせているという疑念があります。
0306nobodyさん
2008/06/07(土) 13:58:58ID:5XgOB7as著作権というのは自然発生的に発生して著者者は権利を当然に獲得します。
そして、著作権の放棄は法律上できません。
著作権の譲渡ならできますが、譲渡は文章で明確に譲渡する旨の記載がない限り譲渡できません。
このような背景から、PHPは将来その使用料の支払いが発生する可能性があるというわけです。
0307nobodyさん
2008/06/07(土) 14:02:26ID:???0308nobodyさん
2008/06/07(土) 14:05:42ID:5XgOB7as0309nobodyさん
2008/06/07(土) 14:06:45ID:???それに対して不満が出たの初めて聞いた。
オープンソースの中じゃ、極めて甘いライセンスに部類すると思うけど。
将来的に有料になる可能性は、Javaだって否定できない。
恒久的な規約は存在しないんだから。
0310nobodyさん
2008/06/07(土) 14:08:04ID:5XgOB7asなるほど、よく分かります。安心しました。
0311nobodyさん
2008/06/07(土) 14:17:34ID:???mysqlとかは結構怪しいライセンスだから、気持ち悪いし離れたいが
0312nobodyさん
2008/06/07(土) 14:20:35ID:5XgOB7as無料ではバージョンアップは提供しないと公言しだしたら、有料化ってこともありうるってことですか。
それでは、PHPが大丈夫という論拠の基盤も危ういということになりませんか?
0313nobodyさん
2008/06/07(土) 14:20:59ID:???0314nobodyさん
2008/06/07(土) 14:25:18ID:5XgOB7asそれも敏感すぎると思いますよ。
そもそもシステムは出来上がってしまえば、外部からはPHPを使っているかMYSQLを使っているかなんて分かりませんよね。
NHKの受信料だって、私はテレビを持っていませんと玄関先で言えば、それまでです。たとえ持っていたとしても。
そこまで、調査する権限はNHKにはありません。
それは、PHPやMYSQLを所管する団体・企業にも同じことが言えるのではないでしょうか?
0317nobodyさん
2008/06/07(土) 14:48:43ID:5XgOB7asいや、私もそのたちですから、嫌いじゃないですけど。
とりあえず、PHPは有料化になってもあまり影響はないということは分かりました。
長々とありがとうございました。
0318nobodyさん
2008/06/07(土) 15:13:45ID:PnYVZOmjhttp://www2.uploda.org/uporg1468122.jpg
OSに依存せずにゲームとか作れると思うんだが、
HSPみたいな感じでPHPでゲームが作れるっぽい
0319nobodyさん
2008/06/07(土) 15:47:48ID:???0322nobodyさん
2008/06/07(土) 16:20:12ID:???FLASHの方が公開しやすい。
お手軽系ゲームの最大の課題は、セキュリティ上怖いからインストールしてもらえないこと。
FLASHはそういう問題がない。
ゲーム作っても、誰も遊んでくれないんじゃ、やっぱ楽しく無いでしょ。
0323nobodyさん
2008/06/07(土) 16:24:53ID:???自社サービスとかでもね・・・
0324nobodyさん
2008/06/07(土) 16:52:13ID:???eclipseでEUC-JPでやろうとするとUTF8がデフォルトで設定されてて変更が必要だったので色々めんどくさくて
0326nobodyさん
2008/06/07(土) 18:38:55ID:???GPLv2を適用すればいいじゃん。商用でもGPLを採用できる。
GPLv2のウェブサービスを提供する場合、
結果を返しているだけでアプリケーションを配布していないので
ウェブサービスの利用者にソースコードを公開する必要は無い。
ウェブサービスシステムを納品する場合は、納品者に対して
アプリケーションのソースコードを渡してGPLにしないといけないけどね。
ってGPL以前に、PHP製アプリを納品=PHPソースコード納品ですからw
0327nobodyさん
2008/06/07(土) 18:59:20ID:???GPL採用できるは知らんかった
まぁでも商用サイトとかある程度の規模考えると
商用ライセンスを選んだ方がパフォーマンスも違うしいいんだけどね・・・
0328nobodyさん
2008/06/07(土) 19:12:34ID:???なるほどって感じ。勉強になる。
でもその場合、社員がソースを持ち出したり流出させたりしても罪に問えるのかな。
ちなみに自分が作ってるPHPのシステムはソースを公開したくないから、スクランブラを自作した。
PHPにはPHPのパース関数もあるから、結構簡単。
>>327
前に見たときはライセンス証を発行してただけだと思ってたけど、今はパフォーマンスとか違うの?
0329nobodyさん
2008/06/07(土) 19:19:18ID:???黙って使っておけばいいだけじゃん
0330nobodyさん
2008/06/07(土) 19:22:35ID:5XgOB7asそういう遵法精神のかけらもないのは、ゆとりの典型だな。
内部告発で、あちらこちらの有名企業が倒産しているニュースとか知らないんだろうなぁ。
>>328
>>でもその場合、社員がソースを持ち出したり流出させたりしても罪に問えるのかな。
ソースそのものは、窃盗罪の客体としては保護されない。
会社のUSBでソースを持ち出せば、USBを持ち出したということで罪に問われた判例はある。
この場合は、不正競争防止法に抵触する可能性がある。
0332nobodyさん
2008/06/07(土) 19:28:34ID:5XgOB7asもうね、君は馬鹿丸出しだよ。
債務不履行(民法415条)という言葉すら知らないのかねw
0333nobodyさん
2008/06/07(土) 19:30:46ID:???いい加減にしろ
0334nobodyさん
2008/06/07(土) 19:31:08ID:???窃盗って言うのかどうかは知らんが、知的財産権はあるでしょ。
GPLとしたソースに対して知的財産権が開発対価を支払った会社に存在するかは
疑問だけど。
0335ASP
2008/06/07(土) 20:21:11ID:Fr6pkwVX.htaccessか何かで拡張子を入力しなくてもファイルを表示することは可能らしいですが、どうやるのですか?
http://ex.net/test.html
とあれば
http://ex.net/test
こう入力すれば
http://ex.net/test.html
これと同じ内容が表示できるという奴ですが教えてください
0336nobodyさん
2008/06/07(土) 20:22:18ID:???0337nobodyさん
2008/06/07(土) 20:31:39ID:???mod_rewriteを使えば可能。
Apacheのモジュールなのでレン鯖なら使えないこともあるんじゃないかな。
.htaccessの書き方はぐぐってください。
0338ASP
2008/06/07(土) 20:48:05ID:Fr6pkwVXありがとうございます。
一応鯖はXREAです(`・ω・´)
できますかね…
0339nobodyさん
2008/06/07(土) 20:54:38ID:???0340ASP
2008/06/07(土) 20:56:59ID:Fr6pkwVXtest/test.cgi
を
test/test.html
に偽装することはできるみたいですが
test/test.cgi
を
test/test
にはできないです
どうしたらいいのでしょうか…
0341nobodyさん
2008/06/07(土) 20:58:39ID:???0342nobodyさん
2008/06/07(土) 21:07:50ID:???.htaccess質問コーナー Part7
http://pc11.2ch.net/test/read.cgi/hp/1206025115/
0343お・・・ぱい飲んで!
2008/06/07(土) 21:43:39ID:9L3fMoWHデータベースに保存する時に
1.タグの数だけフィールドを用意する。
2.タグをカンマで区切ってデータベースに保存する。
どっちがええの?
ユーザーがタグをクリックした際に、検索結果を表示させなくちゃいけない。
↑
ここで悩んでいる。 おれ間に合わない><
0346nobodyさん
2008/06/07(土) 22:47:09ID:TJsqbfRlauからPOSTしたときだけ、MySQLに記録される文字列が
URLエンコードされた状態なんですが、携帯の仕様でしょうか。
PCとか、docomoとかなら普通にSJISで2バイト文字扱えてるんです。
0347nobodyさん
2008/06/07(土) 23:15:13ID:???0350nobodyさん
2008/06/07(土) 23:28:43ID:???post
━━ vt. 〔英〕 郵送[投函]する ((off)); 【簿】(仕訳帳から元帳に)転記する ((up)); 最新情報を知らせる ((up; on, about)).
0353ASP
2008/06/07(土) 23:40:36ID:Fr6pkwVX(モバゲーのマイページみたいな)
構造はこれだとおもったのですが、動きませんでした。
@登録してきたUAをlog.datフォルダに追加
A配列を作成する
BUAが、log.datにあればアクセス許可、なければ拒否
C最後に一部配列を削除
このように考えました。誰か教えてください。
0354nobodyさん
2008/06/07(土) 23:43:27ID:???0355nobodyさん
2008/06/08(日) 00:04:54ID:ZGtee/4VPHPのみのテキストファイルで保存しようと試行錯誤しています。
基本的に、ファイル内の特定行を編集する時でも、
一度ファイル内容をすべて読み込んで、対象となる文字列を
置き換えすることで、編集とするのでしょうか?
それとも、行を取得してその行のみ編集する事ができるのでしょうか?
今は前者の方法で、file_get_contentsでログファイルを読み込んで
編集したい文字列(行)を置換しているだけです。
■ このスレッドは過去ログ倉庫に格納されています