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

【PHP】下らねぇ質問はここに書き込みやがれ 66

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/03/16(日) 17:23:27ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0175nobodyさん2008/03/21(金) 14:55:10ID:???
false,null,0がいいかげんな言語だな->PHP
0176nobodyさん2008/03/21(金) 14:57:45ID:???
そもそも型がいいかげんなんですけど何か?
0177nobodyさん2008/03/21(金) 18:34:13ID:???
型なんてものにとらわれているなんて
時代遅れだなw
0178nobodyさん2008/03/21(金) 20:12:20ID:???
ちゃんと型指定宣言すれば無問題、しなくてもなんとなく動くのが問題。
0179nobodyさん2008/03/21(金) 22:35:58ID:???
POSTで送信してheader("Location:$_SERVER['HTTP_REFERER']")
でフォームページに戻した時、ファイル名以下のパラメーターが消えています。
例)test.php?id=1 の?以降

GETだと問題ないのですが、これは仕様なのでしょうか?
01801792008/03/21(金) 22:36:22ID:q6goC1hT
すみません、sageてしまいました・・。
0181nobodyさん2008/03/21(金) 22:39:16ID:???
action="test.php?id=1"
0182nobodyさん2008/03/21(金) 22:53:10ID:???
エ〜!
0183nobodyさん2008/03/21(金) 23:05:12ID:???
>>179
GETとPOSTの違い知ってます!?
0184nobodyさん2008/03/21(金) 23:24:44ID:???
rubyで作られたウイルスがあるそうだな
phpでもあるのか?
0185nobodyさん2008/03/22(土) 00:19:08ID:???
ねーよ
実行環境普通ないだろ
0186nobodyさん2008/03/22(土) 00:29:52ID:???
ヒント:PHP=ウイルス
0187nobodyさん2008/03/22(土) 00:34:01ID:???
php自体がウイルスだったのか!?
0188nobodyさん2008/03/22(土) 00:40:25ID:???
PHP=トラブル=ウイルス
0189nobodyさん2008/03/22(土) 01:01:40ID:???
MySQLにて、BLOB型でデータを保存しているのですが
表示の際に必要なMimeTypeの取得ができません
バイナリデータからMimeTypeを取得する方法はないでしょうか
0190nobodyさん2008/03/22(土) 01:04:23ID:???
phpが直接の原因でトラブったときって、どこの窓口にクレームを出せばいいの?
やっぱり、経済産業省の情報処理関係のやつを扱っている部署?
0191nobodyさん2008/03/22(土) 02:07:21ID:???
PHPはウィルスなんですね
CGIが一番安全ですのね
0192nobodyさん2008/03/22(土) 02:13:30ID:???
>>191
CGI?
なんか、ゆとり的発言ですね、あなた。
0193nobodyさん2008/03/22(土) 02:24:03ID:???
>>192
CGIもダメなんですね
0194nobodyさん2008/03/22(土) 02:33:38ID:???
CGIって何の事言ってるの?ひょっとしてPerl?
0195nobodyさん2008/03/22(土) 03:18:05ID:???
入力されたものをサーバー側で処理してお答えする物はみんなCGIですよ。

と、Webプログラム歴0秒の俺がお答えしてみる。
0196nobodyさん2008/03/22(土) 03:21:04ID:???
>>195
さすが、プログラム歴0秒だけあって、チープなお答えですねw
0197nobodyさん2008/03/22(土) 03:23:22ID:???
「ええ、PL/Iがよいです」というようなお答えが求められてるんじゃないのか。
0198nobodyさん2008/03/22(土) 03:24:01ID:???
ってかcgiの定義って何だ?
別プロセスを生成するもの?
0199nobodyさん2008/03/22(土) 03:54:10ID:???
春休み的問答乙
0200nobodyさん2008/03/22(土) 04:21:58ID:???
ちょっとはぐぐってから言えよ
とかそんなんの略じゃね
0201nobodyさん2008/03/22(土) 07:21:41ID:???
尊敬されることと人気があることとは相反する命題だということ。
スポーツ選手は、人気があっても尊敬されることはない。
学者や官僚は、尊敬されることがあっても人気はない。
つまり、そういうことに人生は集約されるというのが結論。
0202nobodyさん2008/03/22(土) 07:38:29ID:+pkNsEKf
現在自宅でサーバーを運用しております。

色々手探りでやっているのですが、
セキュリティーのためにポート番号を変えています。

phpもあわせてポート番号を変えたいのですが、
設定ファイルのどの部分を触れば帰ることが可能でしょうか?
ご教示いただきたくお願い申し上げます。
0203nobodyさん2008/03/22(土) 07:43:40ID:???
apacheのポートを変えたらphpも必然的に変わるのでは?
0204nobodyさん2008/03/22(土) 07:50:34ID:+pkNsEKf
>>203
アドバイスありがとうございます。
昨日、Apacheのポートも変えたのですが、そうするとブラウザから接続が出来なくなってしまいました。
ブラウザからの接続はそのままでphpのポートだけセキュリティーのため変えたいのですが、そのようなことは可能でしょうか?

たびたびすみません。宜しくお願いします。
0205nobodyさん2008/03/22(土) 08:11:48ID:???
>>204
セキュリティのためにポート番号を変更したのなら、
ブラウザから普通には繋がらない状態で、予定どおりなんじゃね?
0206nobodyさん2008/03/22(土) 09:58:41ID:???
春休みにも程がある。
0207nobodyさん2008/03/22(土) 10:18:29ID:???
ブラウザからの接続と
PHP実行のための接続の
2種類を考えているってことか?よく分からん
0208nobodyさん2008/03/22(土) 11:15:40ID:???
Page Magic (htmlページの一部を取り込む)
ttp://www.office-neo.jp/pagemagic/PageMagic.dll/pagemagic.html

これと同じような事ができるphpスクリプトってどこかに転がっていませんかね?
0209nobodyさん2008/03/22(土) 11:23:49ID:???
a.phpに入力フォームがあって、submitするとDBにデータ登録を行い、
成功したら成功画面へ遷移。失敗したらページAへ戻って入力データを復元する
という場合、どんなファイル構成にしたらスマートでしょうか?

自分としては
a.php→a.php(POSTでsubmit)
a.phpではPOSTの場合と初期表示を場合わけし、POSTの場合はDB登録処理。
成功なら成功画面へリダイレクト
失敗ならPOSTで受け取ったデータを再度フォームに表示
というのを考えたのですが、こういう場合標準的な方法などはあるのでしょうか?
0210nobodyさん2008/03/22(土) 11:26:14ID:???
extensionとzend_extensionの違いって何?
0211nobodyさん2008/03/22(土) 11:26:28ID:???
>>209
それでいいんじゃない?
0212nobodyさん2008/03/22(土) 11:28:26ID:???
>>208
phpの十八番なんだからそんくらい自分で作れ
0213nobodyさん2008/03/22(土) 11:31:13ID:???
>>212
その割に見つからないんですよね。
本当にphpで可能なんでしょうか?
02142092008/03/22(土) 11:39:44ID:???
>>211
ありがとうございます。
他にも間に確認画面をはさむ場合とか、
検索結果から個別の詳細画面へ飛んだあと、検索結果へ戻れるようにする方法とか、
いろんなケースごとにページ構成やデータの受け渡し方法を
説明した本やサイトなどはないですかね?

それともこういうのはフレームワークを使えば悩まなくて済むんでしょうか?
0215nobodyさん2008/03/22(土) 12:06:20ID:???
>>213
余裕で可能

>>214
フレームワークでその枠組みが提供されるわけではないので悩まなくて済むことはないが、ページ遷移管理の補助にはなる。
現状のphpではこれがベストだと言える方法論は無いので、もし現在php勉強中なら
一度自分で泥臭い方法で作って経験を積んでみることをお勧めする。
その後既存のFWを活用したりOO的設計を意識してみたりするとより理解が深まると思う。(上のを自作ライブラリとして纏め上げてもいいし)
サイトとしてはここ参考になるかな?
http://takagi-hiromitsu.jp/diary//20060409.html
0216nobodyさん2008/03/22(土) 13:45:04ID:???
>>214
> 検索結果から個別の詳細画面へ飛んだあと、検索結果へ戻れるようにする方法とか、
わるいこといわないから、JavaScriptのback()にしとけ
0217nobodyさん2008/03/22(土) 14:01:00ID:???
phpでヘッダ情報送って外部サイトのソースを取得する方法ありましたっけ
pythonのurllib2みたいなライブラリか何かでも。
0218nobodyさん2008/03/22(土) 14:08:13ID:???
>>217
file_get_contents(url);
0219nobodyさん2008/03/22(土) 14:08:33ID:???
>>217
簡単な奴ならファイルを開くのと同じ命令でURLを開けるよ。

ユーザーエージェント設定したりPOSTしたりするなら
なんかのライブラリが必要だが。まあPEARとかにある。
0220nobodyさん2008/03/22(土) 14:13:53ID:???
>>218
なるほど、第3引数からヘッダ情報を付加できるのね。
どもども。>>219
0221nobodyさん2008/03/22(土) 16:41:59ID:???
呆気に取られた方法としてはINI_SET
0222nobodyさん2008/03/22(土) 22:04:57ID:+pkNsEKf
>>205
ご教示ありがとうございます。
変えたいのはphpのポートだけなんです。
昔javaを使ったことがあるのですが、javaは8080ポートを使っていましたが、
セキュリティーのためにjavaのポートを閉じた記憶があります。
それでも、ブラウザからサイトは見ることは可能でした。

phpの場合は、それが出来ないというのは、そのような仕様なのでしょうか?
言語的にセキュリティーが甘いという印象を感じてしまうのですが、
f/wなどで無理やり閉じるという方法しかないでしょうか?
0223nobodyさん2008/03/22(土) 22:11:45ID:???
頭に蛆でも湧いてんじゃないの?
0224nobodyさん2008/03/22(土) 23:30:05ID:???
httpd.confの中書き換えればいいじゃん
0225nobodyさん2008/03/23(日) 00:22:11ID:???
>>222
JavaはなぜOKだったかのか教えてやるよ
8080…tomcat→Java
80…Apache→AJP…8007…tomcat→Java

どっかのサイトのコピペで動かしたんだろうからこんな構成だろ。
phpはどこで動くか「PHP 入門」でググれ
0226nobodyさん2008/03/23(日) 00:23:16ID:???
フォームのテキストエリアにURLが入力された場合、
ビュー時に過去そのURLが入力された件数も同時に出力されるようなプログラムを作っています。

例)
http://aaa
http://bbb
と入力されたら
http://aaa 5件
http://bbb 13件
と出るような感じです。

現状、本文中のURLを preg_match_all にて配列に格納し、
その配列をループで回して、格納されたURLを元にDBから同一のURLの数を取得しています。
そして str_replace にて、
str_replace(元のURL, 元のURL + $nbsp;n件, 本文)
という風に置き換えています。

ある程度は正常に動作するのですが、下記の場合に問題が発生します。
0227nobodyさん2008/03/23(日) 00:24:01ID:???
http://pc11.2ch.net/test/read.cgi/php/
http://pc11.2ch.net/test/read.cgi/php/1205655807/222n-

と入力された時、
str_replace(元のURL, 元のURL + $nbsp;n件, 本文)
の処理にて、
http://pc11.2ch.net/test/read.cgi/php/
が
http://pc11.2ch.net/test/read.cgi/php/1205655807/222n-
の該当部分にマッチしてしまい、
このような現象が起こってしまいます。
http://pc11.2ch.net/test/read.cgi/php/ n件1205655807/222n-

この問題を解消するにはどのようなアプローチが考えられますでしょうか?
str_replaceをereg_replaceに変更し、後ろの文字を判断して置き換えようとしましたが、難解です。
よろしくお願い致します。
0228nobodyさん2008/03/23(日) 00:31:49ID:???
str_replace使わない
0229226-2272008/03/23(日) 00:59:24ID:???
すいません、事故解決しました
0230nobodyさん2008/03/23(日) 13:09:00ID:???
アップローダで画像は○MBまで、圧縮ファイルは○MBまでという感じにファイル毎に
アップロードできる容量を制限できるのを探しています。
ご存知ありませんでしょうか??
0231nobodyさん2008/03/23(日) 13:21:27ID:???
スクリプト探しはスレ違い
0232nobodyさん2008/03/23(日) 13:23:56ID:???
どこで聞けばいいのでしょうか?
一番、ここが近いような感じがしたのでここで質問させてもらいました。
0233nobodyさん2008/03/23(日) 13:24:34ID:???
>>230
php.iniで設定できる項目があるから、それをやれば一発。
わざわざアップローダーを探す必要ない。
0234nobodyさん2008/03/23(日) 13:38:33ID:???
>>233
ファイル種別ごとに制限するのってどうやるの?
0235nobodyさん2008/03/23(日) 13:41:00ID:???
MAX_UPLOAD_SIZE_PER_MIMETYPEか
0236nobodyさん2008/03/23(日) 14:00:45ID:???
そんなディレクティブ無いんだが…
ぐぐってもヒットしねーし
0237nobodyさん2008/03/23(日) 14:00:51ID:???
>>235
http://www.google.co.jp/search?hl=ja&q=MAX_UPLOAD_SIZE_PER_MIMETYPE&btnG=%E6%A4%9C%E7%B4%A2&lr=
HITしないのだが・・・汗
0238nobodyさん2008/03/23(日) 14:09:29ID:???
>>235
>>141→>>145→>>150か。
0239nobodyさん2008/03/23(日) 14:12:44ID:???
無いから諦めるのか、無いなら作ってみるのか、人生の分かれ道だな。
0240nobodyさん2008/03/23(日) 14:48:35ID:???
前スレ見れないorz
0241nobodyさん2008/03/23(日) 16:23:02ID:???
iniで設定した
サイズ以下
なら
_FILES情報を参照して
○×を
判断するコードを
書けば
済
む









よ
0242nobodyさん2008/03/23(日) 16:44:26ID:???
MAX_UPLOAD_SIZE って自鯖が前提??
0243nobodyさん2008/03/23(日) 16:54:24ID:???
そんなことはない
0244nobodyさん2008/03/24(月) 00:30:37ID:uH/l/FDX
mktime の挙動について知りたいのですが最新バージョンでは
サマータイムの指定が消えているときいたのですが
サマータイム期の時間を入れると勝手に考慮して返してくるのでしょうか?
0245nobodyさん2008/03/24(月) 00:33:21ID:???
タイムゾーンがそうなっていればyes
0246nobodyさん2008/03/24(月) 01:15:16ID:9vjRnJNj
Cookieの有効/無効を確認する方法についてですが、
初回アクセス時にCookieを送信 → 再読み込み(?)してCookieを取得できるかどうかで判断
という方法しか思いつかないのですが、初回アクセス時に確認する方法はないでしょうか?
0247nobodyさん2008/03/24(月) 01:17:40ID:???
>>246
php.iniで確かそれを設定する方法があったと思う。
0248nobodyさん2008/03/24(月) 01:17:43ID:???
初回アクセス時に確認するならcookieはいつセットされんの?
0249nobodyさん2008/03/24(月) 01:22:08ID:???
セットしないでって事じゃないの?そんな方法知らんけど
0250nobodyさん2008/03/24(月) 01:32:39ID:???
COOKIE_FROM_FARST_ACCESS = true
0251nobodyさん2008/03/24(月) 01:39:23ID:???
そもそも、cookieって何で必要なんだろう?
httpパケットが送信元のブラウザに返ってくるということは、
httpレベルでコネクションが保障されているわけだろ。
同じパソコンで複数のコネクションをしていた時なら、保障はされないが、
それは仕様ということで問題ないと思うのだが。
0252nobodyさん2008/03/24(月) 01:40:10ID:???
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&num=50&q=COOKIE_FROM_FARST_ACCESS
0253nobodyさん2008/03/24(月) 01:41:00ID:???
一番最初にはセットされないで
次からのアクセスでcookieは判定できるようになるからムーリー
0254nobodyさん2008/03/24(月) 02:00:56ID:???
php4のforeachでオブジェクトの入った連想配列を参照渡しで回したいんだけど
foreach ($foo as &$bar)ってやったらエラーorz

どう書けばいいんだろ…
そもそも無理なのかな?
0255nobodyさん2008/03/24(月) 02:06:51ID:???
>>254
困ったならマニュアルを何故見ない
http://jp2.php.net/foreach
0256nobodyさん2008/03/24(月) 02:21:01ID:???
>>251 春だねぇ。
02572542008/03/24(月) 03:25:37ID:???
>>255スマソ下の方まで読んでなかった

php4のforeachは参照渡し出来ないのね
Notes見て書き直した thx
0258nobodyさん2008/03/24(月) 08:12:46ID:0RNOryeF
困ってます。
/home/username/www/foo.php
を用意し、このスクリプト内で
shell_exec("/home/username/www/bar.php");
としているのですが、期待する動作をしてくれません。
(反応がなくなり、しばらくするとService Temporarily Unavailable
しか表示されなくなります)
動作させる方法はないでしょうか?

●foo.php
<?php echo shell_exec("/home/username/www/bar.php"); ?>

●bar.php(パーミッションは705)
#! /usr/local/bin/php
<?php echo 'hoge'; ?>

●環境
FreeBSD
www639.sakura.ne.jp
Apache/1.3.39 (Unix)
PHP Version 4.4.8
Server API CGI
0259nobodyさん2008/03/24(月) 10:22:43ID:???
safe-modeとかじゃないの?
0260nobodyさん2008/03/24(月) 10:53:22ID:???
それだと何にも動作しないだろ

"php /PATH/TO/FILE"
0261nobodyさん2008/03/24(月) 11:26:50ID:0RNOryeF
>>260

●foo.php
<?php echo shell_exec('php -f '.dirname(__FILE__).'/bar.php'); ?>
●bar.php
<?php echo 'hoge'; ?>

としてみましたが、状況変わらずです。
0262nobodyさん2008/03/24(月) 13:00:12ID:BuclIAIb
この流れで申し訳ないんだがちょっと質問です。

今サーバ二つ借りてるんですが
少し疑問に思ったことがあったのでお願いします。

AサーバからBサーバのphpをrequireしてみたらできました。
プログラムもしっかり動いてます。

これって危険なんじゃないかと思いますがそんなこともないのでしょうか?
.htaccessのリファラとかで規制するものなのでしょうか?

よろしくお願いします。
0263nobodyさん2008/03/24(月) 13:02:53ID:???
bサーバのphp中の処理がrequireできたの?
0264nobodyさん2008/03/24(月) 13:11:40ID:BuclIAIb
>>263
そうですね。


Aサーバのphp
<?php
require_once("http://www.Bサーバ.com/hoge.php");
?>

Bサーバのhoge.php

<?php
echo "aaa";
?>


こんな感じです。
0265nobodyさん2008/03/24(月) 13:27:33ID:???
よくもそんな恐ろしいことを…
0266nobodyさん2008/03/24(月) 13:32:08ID:???
ワロタ
0267nobodyさん2008/03/24(月) 13:34:17ID:BuclIAIb
>>265
具体的にどう恐ろしいのでしょうか…?

1.無断で他サーバに接続し、勝手にプログラムを使用していること。
2.サーバの管理状態の適当さ

今パッと思いつくのがこの程度なのですが。
0268nobodyさん2008/03/24(月) 13:59:15ID:???
偽装し放題だな。
0269nobodyさん2008/03/24(月) 14:03:28ID:???
262さんに質問です。
こんなことは可能ですか?

Aサーバのphp
<?php
$hoge_str="ほげほげ";
require_once("http://www.Bサーバ.com/hoge.php");
?>

Bサーバのhoge.php
<?php
echo $hoge_str;
?>
0270nobodyさん2008/03/24(月) 14:26:16ID:BuclIAIb
>>269
できませんね。

requireでもphpで処理して出力したHTMLしか取得してないということですかね。
少し勘違いしてました。

ありがとうございました。
0271nobodyさん2008/03/24(月) 14:31:06ID:???
おぉ恐ろしい
0272nobodyさん2008/03/24(月) 15:11:37ID:gLm40CNz
require_once "HTTP/Request.php";
$req =& new HTTP_Request($url);
if (!PEAR::isError($req->sendRequest())) {
$body = $req->getResponseBody(); }

$bodyが大きすぎる場合があります
例えば$bodyを5KByteだけ読み込みたい場合はどうすればいいでしょう
0273nobodyさん2008/03/24(月) 15:37:15ID:???
substr
0274nobodyさん2008/03/24(月) 15:48:51ID:???
>>273
ありがとう
■ このスレッドは過去ログ倉庫に格納されています