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

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

レス数が1000を超えています。これ以上書き込みはできません。
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等)・フレームワークは各該当スレへ
0951nobodyさん2010/07/17(土) 12:57:59ID:???
一部しか出してこなかったらその変数がカラかどうかも分からないな
0952nobodyさん2010/07/17(土) 21:59:34ID:z9LmUGB3
Apacheの公開フォルダに入れたWebアプリケーション等のソースコードを、ブラウザからは実行できるものの、ソースコードは他人に見られないように保護するような設定って出来るんでしょうか?
もし出来るのであればWindows、Linux共に方法を知りたいです

例えば友人のパソコンにWebサイトなどを作ってやってApache下に置いたとしても、友人がそのソースコードを真似て他に配布したりというのを避けたいのです
Linuxであればパーミッションでと思ったのですが、相手のパソコンなので、普通にroot権限だとパーミッションなんか関係なくなるので意味が無いなと思いまして
どうしたらいいのでしょうか?
0953nobodyさん2010/07/17(土) 22:28:43ID:???
そんな友人と言えない仲なら何もしないでスルーする。
0954nobodyさん2010/07/17(土) 22:34:13ID:???
難読化でいいんじゃないですか
0955nobodyさん2010/07/18(日) 00:01:33ID:???
友人のパソコン使わせてもらって何を言ってるんだか
0956nobodyさん2010/07/18(日) 12:13:05ID:MZPafWAG
そもそもOSは何だ?
09579522010/07/18(日) 13:21:53ID:???
確かに、おかしな質問だということは分かるのですが、あまり自分のコードを他に使って欲しくない理由がありまして
友人のパソコンを使うのではなく、自分で開発したものをフォルダ内に入れるということです

OSは相手はWindowsXPとか7のHome版です
自分はCentOS使ってますけど

難読化以外には何か対策は無いのでしょうか?
例えば何かソフトでそのフォルダへのアクセスをガードできたとしても、ブラウザ上で実行が出来なければ意味が無いですし

皆さんは商用の場合はどのような対策をされているのでしょうか?
そのままシステムを丸々他にコピーされても困ると思うのですが
例えcopyrightを書いていたとしてもさほど関係なさそうですし
0958nobodyさん2010/07/18(日) 13:34:46ID:???
他に使って欲しくないなら友人のパソコンに入れなきゃ良いだけ。
なんでそれが友人なの?最初から隠さず商用と書けば良いのに。
商用なら色々方法あるし。
0959nobodyさん2010/07/18(日) 13:42:03ID:???
ライセンス契約で縛る。本当に価値のあるソフトウェアの場合、損害賠償額が凄まじい事になる。
最近は「オープンソースにする」という裏技もあるが。

友人と契約なんてできない?そもそも人のコードを勝手に盗む、あるいは盗むかもしれないと疑わないといけないような奴は友人ではない。
09609522010/07/18(日) 13:57:38ID:???
>>958
まぁ友人に頼まれてって感じなのですが、個人で使うならいいのですが、おそらく他人のパソコンにも入れるだろうなと思いまして
例えばWindowsのダウンロード→インストールするタイプのフリー版以外のソフト(詳しく知りませんがCだかVisual C++なんかで作られたものなど)は簡単には他のパソコンには入れられませんが、
PHP何かで作ったものはApache下に置いたフォルダさえあれば言い訳で、どう対処するんだろうと疑問に思いまして
自分は自分の為だけにしか作ったことが無いもので、そういった場合どうするんだろうと思いまして


>商用なら色々方法あるし
具体的にはどのような対処法があるのでしょうか?
もし宜しければ教えていただきたいです


>>959
ライセンス契約ですか
確かにそれが一番だと思います
ただ、興味本位で聞かせていただきたいのですが、その場合中にはそういうのを無視して配布するような人もいて、こちらがそういう相手を認識できないこともあると思いますが、
そういう場合はどのようにするのがいいのでしょうか?

よく考えてみて、こういう問題ってPHPは難しいな、と思いまして
0961nobodyさん2010/07/18(日) 15:18:50ID:???
レン鯖かなんかでwebapi的に動かしたら?
09629522010/07/18(日) 16:47:37ID:???
>>961
確かにそのような事も考えたのですが、アプリケーションによってはlocalhost/のようにネットに繋がなくても使えるものもありまして
特にDBを動かすようなものは

そこで振り返ってみて、PHPでそういう話題とか記事を見聞きしたことが無いな、と思いまして質問させてもらいました
そういう場合に自分ではどうにも対策が分かりませんでした
0963nobodyさん2010/07/18(日) 17:21:45ID:???
ローカルで動かさすならローカルにコード置くしかないだろ
0964nobodyさん2010/07/18(日) 18:42:48ID:VLBtU4j9
おかしいな人。
それはその人を信頼するしかないんじゃないの?
もしくは自分で自宅サーバーを作ってその友達しか入れないように
するとか。
後はライセンスだな。でもこっそりほかの人に配布したら
意味ないし、つーかPHPは難しいなというよりあんたが難しい。
後別にlocalhostでの起動ならphpでなくてもよかったんじゃないの?
0965nobodyさん2010/07/18(日) 20:06:43ID:WiuHCw18
リクエストされたURLを取る方法を教えてください。
ぐぐって$_SERVER ['REQUEST_URI']とか試しましたがドメイン部分が取れません。
他にも色々試しましたがドメイン部分移行の/の後しか取れません。
PHP5.2.11でCentOS、Apache2.2です。
0966nobodyさん2010/07/19(月) 00:05:30ID:???
$_SERVERをvar_dump()するだけで解決するのに
0967nobodyさん2010/07/19(月) 08:29:41ID:???
>>952
システム屋なんかはシステム入りのサーバーを丸ごと貸し出して
内部には入らせないようにするとこもあるらしいけど。
あくまで使用のみの権限にして。まあWEBAPIみたいなもんだけど。
難読化は解読が難しくなるだけで、ブラウザ上でも実行可能だけど。

実は以前これで揉めた事があるので、良い対策方法を俺も知りたい。
0968nobodyさん2010/07/19(月) 11:10:14ID:???
中の確認できないようなサーバーを社内にって
0969nobodyさん2010/07/19(月) 11:26:37ID:???
phpをc++に変換して実行
0970nobodyさん2010/07/19(月) 13:52:04ID:???
>>967
PHPはこの点は難しいよね。
ちょっとPHP知ってる人がいればすぐに真似されたり転用され得るから。
例えばVC++で作られている(と思われる)ソフトなんかは例えばテキストエディタで開いても文字化けしてたりして、詳しくない人はビビってそれ以上やらないだろうけど。
難読化はただ相手に転用される時に判別付きにくくする程度の気休めだろうけどね。




>>969
自分はC++はやったこと無いんだけど、C++に変換とか出来るの?
またそういうので対策になるの?
0971nobodyさん2010/07/19(月) 16:14:03ID:2i1rbnSf
コンパイルすりゃーいい
0972nobodyさん2010/07/19(月) 16:30:35ID:???
すみません 教えてください。 whileを使ってHTMLでテーブル作成するとき、
<?php
while ($row1 = mysql_fetch_array($res1)) {
print "<tr>\n";
print "<td><b><a href=./e=&view_id=".$row1["s_name"].">" . $row1["s_name"]."</a></b></td>\n";
print "</tr>\n";
}
?>
<td>を<td align="center">とか余分なタグを入れるとエラーがでます。
<table>も同じくです。printするだけなのに、どうしてエラーになるのでしょう?
0973nobodyさん2010/07/19(月) 16:37:57ID:???
"を\"でエスケープしてみたらどうなの
0974nobodyさん2010/07/19(月) 17:51:26ID:sHIUCWJE
レッツPHP!様の新着ブロガー(ttp://php.s3.to/net/)というプログラムを利用しようと思い
RSSサイトURLをひとつだけ設定し、記事表示件数を5としました。
すると表示される一番最初の記事だけが表示され
あとの四行が全て(1970/01/01)と表示されてしまいます。
これは何がいけないのでしょうか?
0975sage2010/07/19(月) 17:53:10ID:Ug5vBszx
print "<td><b><a href=./e=&view_id=".$row1['s_name'].">" . $row1['s_name']."</a></b></td>\n";

シングルクォート使っちゃいなよ。
0976nobodyさん2010/07/19(月) 18:31:31ID:???
>>974
var_dump($ch) してみたら?
0977nobodyさん2010/07/19(月) 23:12:05ID:???
>>973.975
ありがとうございます。 HTMLをprintする時は注意が必要なんですね。
問題点が見えました。
0978nobodyさん2010/07/19(月) 23:34:04ID:???
>HTMLをprintする時は注意が必要なんですね

いや、そうじゃなくてな、
文字列の中に(中略)というわけでそれを言うなら「時は」じゃなくて「に限らず」だな。
0979nobodyさん2010/07/20(火) 01:26:17ID:???
次は

$str = "<td><b><a href=./e=&view_id=".$row1["s_name"].">" . $row1["s_name"]."</a></b></td>\n";

でエラーになります><

だな
0980nobodyさん2010/07/20(火) 21:20:03ID:???
別に難読化しても解読できるような友人なら初めから>>952に製作を頼まなくね?
だから難読化で無問題だと思う。
0981nobodyさん2010/07/20(火) 23:02:30ID:???
実はPHPの上記のような商用の場合の対策はあるのだよ
そのパソコンでしか使えないようにするような事は
ただ、コードが複雑になってしまう

難読化に関してはまぁしてもしなくてもいいんだけど、出来るならした方がいいと思うね
0982nobodyさん2010/07/21(水) 02:35:12ID:FRhRPQxh
shimmieという画像投稿SNSライクなソースコードを日本語化して運用してるのですが、

http://lh4.ggpht.com/_M6yDAZ34keM/TEXa-23DdOI/AAAAAAAAAEU/pt0imvSvoDs/mbstr.jpg

上記画像のようにフォームから出力された文章の一部がランダムに文字化けしたり、半角空白が挿入されたりしています。
色々試すと、ある程度の長文でマルチバイト文字のみがこうなるようです。
php.iniを見直しても分からずじまいで、原因はどこにあるのでしょうか。
0983nobodyさん2010/07/21(水) 04:07:51ID:???
mb_convert で変換してるなら mb_detect_order の設定が怪しいかも・
それか自前でへんなエスケープしてるとか
0984nobodyさん2010/07/21(水) 22:29:40ID:???
>>982
の内容にちょっとワロタ
0985nobodyさん2010/07/22(木) 00:31:23ID:9L3V/lR5
本当にくだらない質問なんですが
$cgi = $context->getCgi();

この場合の「->」ってどういう働きをしているのでしょうか
0986nobodyさん2010/07/22(木) 00:54:29ID:???
>985
>5 の4。ちなみに名前は「アロー演算子」と言うのだが、あまりこの名称を使っている人を見ない。
つうかこのスレだけで数回出てきているので「->」で検索。

まずは配列(array、連想配列)を思い浮かべてくれ。
$user["name"]とか$user["age"]とか、そういう変数を複数持てるアレだ。

配列だとキー名は単なる文字列だが、オブジェクトの場合はキー名の代わりに変数名みたいなものを使える。
$user->age とか $user->name とかいう形でアクセスできる。 ちなみにうっかり$user->nmae とかタイプミスするとエラーになる。
んで、オブジェクトを使っている場合は、値だけではなく「関数」も持たせられる。
$user->get_price()とかすると、$userの持ってるget_price()という関数が呼び出される。
この関数の中では、$user->ageや$user->nameのような、「オブジェクトの持つ変数」も使えるし、$user->get_gender()のような他の関数も(書いてあれば、だが)呼べる。

詳しくはマニュアルにて熟知すべし。
http://jp2.php.net/manual/ja/language.oop5.php
0987nobodyさん2010/07/22(木) 01:56:48ID:9L3V/lR5
>>986
すばらしいお返事です!ありがとうございました!
0988nobodyさん2010/07/22(木) 02:49:53ID:???
テンプレにあるんだけどな!
0989nobodyさん2010/07/22(木) 08:46:02ID:???
phpでローカルのプログラムをexec() で実行すると遅いんですが、
なにか理由があるのでしょうか。

0990nobodyさん2010/07/22(木) 14:09:39ID:NJJj5G9E
投票サイトで連続投稿とか投票ボタン連打されると
データ保存用のdatファイルの内容が消えたりするんだが
何が原因なの?

サイトurl
http://test001.atumari.net/miku/miku.php
ソースurl
http://test001.atumari.net/miku.zip
0991nobodyさん2010/07/22(木) 14:38:59ID:???
IP抜かれちゃったぜ
0992nobodyさん2010/07/22(木) 14:40:14ID:???
サイトもソースも見てないけど、どうせ排他制御してないんでしょ
0993nobodyさん2010/07/22(木) 14:55:10ID:NJJj5G9E
flock($file,LOCK_EX);
はしてるけどやり方が間違ってるのかな?
0994nobodyさん2010/07/22(木) 15:09:19ID:???
parse_ini_fileで読み込むiniファイルの仕様についての
まとまった説明ってどっかにない? がんばって探してる
けどどうにも見つけられない
0995nobodyさん2010/07/22(木) 15:22:24ID:???
>>993
やり方が間違っている。

排他制御対象のファイルは読むときもロックしないとだめ。
そうじゃないと書き換え中の半端な状態のファイルを読んで
しまうことがある。

"w"でfopenするとその時点でファイルが空になるので、その
あとでflockしても手遅れ。ロック外で書き換えたことになる。
0996nobodyさん2010/07/22(木) 16:54:25ID:NJJj5G9E
>>955
ありがとうございます!
0997nobodyさん2010/07/22(木) 21:45:15ID:???
>>994
iniなんてwindows世界のものなんだから[*]
「PHPで」という風に探さずに
↓という方向で探せばけっこう見つかるよ。
http://www.google.co.jp/search?hl=&q=windows+ini%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E6%9B%B8%E5%BC%8F&sourceid=navclient-ff&rlz=1B3GGLL_jaJP384JP384&ie=UTF-8&aq=1&oq=windows+ini%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB

[*]厳密にそうなのかどうかは、まあ知らん。
0998nobodyさん2010/07/22(木) 22:18:31ID:???
次スレはどこ?
0999nobodyさん2010/07/23(金) 01:27:05ID:???
999
1000nobodyさん2010/07/23(金) 01:27:48ID:???
このスレは1000の風になりました
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。