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

【PHP】質問スレッドpart31【php】

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2005/11/27(日) 00:07:12ID:eBvjdczp
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0829nobodyさん2005/12/28(水) 00:53:05ID:???
最近PHPをやり始めたものです。
PHPでタグのセレクトボックスから選んだものを変数に格納して
それを使用したいのですが,選択した瞬間,そのセレクトボックスのフレームを読み込んで
してしまい,選んだものを初期化してしまいます。
選択したものの値を保持したいのですがどうしたらいいでしょうか?
ヒントなり頂ければ幸いです。
0830nobodyさん2005/12/28(水) 00:56:01ID:???
>>829
???
セレクトボックスのプルダウンから何か選んだ瞬間に読み込みが起きる?
HTMLの書き方そのものが間違ってない?
0831nobodyさん2005/12/28(水) 02:15:39ID:???
>>829
とりあえずヒント
<?
$no = $_REQUEST["selbox"];
?>
<html><body>
<form action="<?=$_SERVER["PHP_SELF"]?>">
<select name="selbox">
<option value="1"<?=($no==1)?" selected":""?>>1</option>
<option value="2"<?=($no==2)?" selected":""?>>2</option>
<option value="3"<?=($no==3)?" selected":""?>>3</option>
</select>
<input type=submit value="送信">
</form>
</body></html>
0832nobodyさん2005/12/28(水) 07:26:24ID:???
同じ質問ばっかり。HTMLだがテンプレに入れとけ。
08338292005/12/28(水) 08:26:53ID:???
レスありがとうございます。
曖昧で小出しな聞き方でスマソ。
PHPからのHTMLタグでセレクトボックスの中身を指定しているのでおっしゃるとうりだと思います。
やってみます。
0834nobodyさん2005/12/28(水) 09:50:13ID:OPhVlmGD
http://lowlife.jp/yasusii/stories/8.html#sample%20autodiscovery
のdiscover_tbのように対象urlからtrackback:pingを抜き出す関数を
提供しているライブラリをご存知の方いらっしゃいませんか?
blog提供側の問題で
変な方言や提供方法がありそうで在りものが在れば使いたいのですが・・・
0835nobodyさん2005/12/28(水) 09:54:29ID:???
変な方言や提供方法があるの? どこのblogよ?
0836nobodyさん2005/12/28(水) 10:21:40ID:OPhVlmGD
文がわかりにくくてすんません「ありそうで」です。無いなら無いで
どっちでも良いんですが(て自分で作るならどっちでもよくないか・・・)
0837nobodyさん2005/12/28(水) 11:54:31ID:???
>>833
君の質問は小出しなんじゃなくWebプログラムの基本を理解して無いだけ。
文章からしておかしい。
0838nobodyさん2005/12/28(水) 11:57:02ID:???
>>834
そのまま移植すればいいじゃん
0839nobodyさん2005/12/28(水) 12:59:29ID:???
ttp://jp2.php.net/ftp
FTP経由でファイルを削除したいのですが、
グッドなアイデアはないでしょうか?
ftp_exec()使うしかないですかね・・・
0840nobodyさん2005/12/28(水) 13:00:55ID:???
>>814
continue 2;
はどういう意味ですか?
08418392005/12/28(水) 13:01:02ID:???
間違えますた、削除→作成でした
0842nobodyさん2005/12/28(水) 13:12:03ID:???
>>840
実行してみ。
0843nobodyさん2005/12/28(水) 13:13:06ID:???
>>840
つ [ マニュアル ]
08448402005/12/28(水) 13:13:30ID:???
マニュアルに書いてありました、ごめんなさいorz
0845nobodyさん2005/12/28(水) 14:02:22ID:???
>>839
http://jp2.php.net/manual/ja/function.ftp-fput.php
で不満なのか?
0846nobodyさん2005/12/28(水) 18:10:36ID:jQi1GXdb
HTML_QuickFormのaddElementのコードを
HTMLから生成するスクリプトとかってないですか?
0847nobodyさん2005/12/28(水) 18:17:03ID:???
CGI化してsuexec、以外で指定したユーザ権限でコマンドを
実行させるグッドアイデアないでしょうか?
0848nobodyさん2005/12/28(水) 18:23:45ID:???
>>847
suexecって確かディレクトリ指定してあるはずだから、それ以外の場所におけば良いのでは?。
0849nobodyさん2005/12/28(水) 18:31:13ID:???
>>848
質問の意図を勘違いしてる希ガス
suexec使えば指定ユーザ権限でのコマンド実行ができるのは分かってるが、
それ以外の方法で同様の状態にする方法は無いのか?と問うてるんじゃないの?
08508472005/12/28(水) 18:34:04ID:???
>>849
そのとおりです
>>848
説明不足ですまんです
0851nobodyさん2005/12/28(水) 18:44:28ID:???
外部に公開しないhttpdをユーザ権限で動かしてリバースプロキシかますとか?
0852nobodyさん2005/12/28(水) 20:35:15ID:???
>>847
無い。あってたまるか。
0853nobodyさん2005/12/28(水) 20:51:30ID:???
safe_mode_gidとかどうなんだろう?
0854nobodyさん2005/12/28(水) 20:54:59ID:???
>>853
safe_modeはあくまでapache権限でどこまでやるかの話だからな
0855nobodyさん2005/12/28(水) 22:22:40ID:???
>>852
setuidされたラッパを用意すればもちろんできるんじゃない?
ま、グッドアイデアではないが。
0856nobodyさん2005/12/29(木) 00:21:52ID:???
どっかにユーザ権限でPHP実行させるapache拡張みたきがする
0857nobodyさん2005/12/29(木) 02:10:23ID:???
そこまでして穴あけたくないしなぁ
0858nobodyさん2005/12/29(木) 09:09:32ID:???
apache2.1にはなんか実装されるんじゃなかった?
0859nobodyさん2005/12/29(木) 10:04:20ID:???
>>858
PHP 側でその apache2 の機能の利用はまだオススメできないって
話だったはず。

諦めて cgi にして fastcgi とか使ったらいいんじゃねーのと思うけど、
自分で試したことない。
0860nobodyさん2005/12/29(木) 11:35:54ID:???
cgiにすると負荷が(w
0861nobodyさん2005/12/29(木) 12:18:37ID:???
>>859
ユーザの数だけphpのfastcgiインスタンスを走らせておくというのも
なんだかかっこわるいなぁ。

しかもsetuidされたラッパプログラムを自前で用意する羽目になるし、
なんかやだ。
0862nobodyさん2005/12/29(木) 12:53:42ID:???
CGIで動かすのが嫌ならmod_php+safe_modeでも問題ないように作るしかないっしょ。
0863nobodyさん2005/12/29(木) 18:08:20ID:???
それならJava常時起動にするね。php捨てに成る。
apacheは独自modでスルーさせるだけ。
0864nobodyさん2005/12/29(木) 19:20:49ID:???
jsp使えるレンタルサーバーって多いの?
0865nobodyさん2005/12/29(木) 19:23:06ID:???
最近はVPS多いし、自分で入れるべ
0866nobodyさん2005/12/29(木) 19:32:53ID:???
みんなそんなに鯖に金使ってるとは思えない
0867nobodyさん2005/12/29(木) 21:49:56ID:???
みんなって言われてもなぁ・・・。
必要なやつは金使ってるってだけの話じゃないのか?
0868nobodyさん2005/12/29(木) 21:59:06ID:???
早い話が軽くてユーザー権限で動くものないかって話なんじゃ?
私も前にそれ考えた事あるし
0869nobodyさん2005/12/29(木) 23:11:14ID:???
個人レベルでmod_phpをユーザー権限で動かす必要ってそう無いと思うのだけど
0870nobodyさん2005/12/29(木) 23:15:25ID:???
関係ないけど、たまに出てくるPHPやるならJavaやるっていうのは
個人で使うのみってこと?仕事では使用しないって事なのかね。
仕事だったら、小中規模案件だと圧倒的にPHP、Perlが占めるけど、Java案件以外の中規模案件なんか受注しないポリシーとか?
Java覚えられるなら、PHPなんか結構すぐに覚えられると思うけど、わざわざ捨てる理由が見つからない。
0871nobodyさん2005/12/29(木) 23:26:04ID:???
>>870
わざわざ捨ててるって言うか、java使って満足な人が
他の言語に手を出す理由が無いってだけの話でしょ。
逆もそうだし。
0872nobodyさん2005/12/29(木) 23:45:46ID:???
そもそも共有レン鯖って静的ファイルを置く所だし。
動的にページ生成したければ、占有鯖か自前鯖で弄りたい放題でしょ。
0873nobodyさん2005/12/30(金) 01:20:29ID:???
>>872
なんだその決め付け
0874nobodyさん2005/12/30(金) 01:21:34ID:???
>>871
ただphpで満足しちゃうと他に移行する時に辛いんだよなー
0875nobodyさん2005/12/30(金) 04:45:27ID:???
バージョンアップの度に動作の問題出るのに、phpに満足ってめでたいなあ。
0876nobodyさん2005/12/30(金) 05:08:43ID:???
PHPに満足してるのは長く仕事をするプロの開発者ではなく、
毛が生えた素人を大量に安く使い潰せる依頼主だから。
0877nobodyさん2005/12/30(金) 05:13:54ID:???
PHPだろうがJavaだろうが一つの言語で満足するような奴はプロとは言えん罠
0878nobodyさん2005/12/30(金) 10:33:25ID:???
Javaは満足出来るよ。新バージョンのインスコも簡単だし。OSとかCPUとか関係ない。
0879nobodyさん2005/12/30(金) 10:44:59ID:???
PHPもそのレベルじゃ大差ねーし
0880nobodyさん2005/12/30(金) 11:19:27ID:???
うざい
0881nobodyさん2005/12/30(金) 11:52:00ID:???
>>875
バージョンアップの度ってそりゃ問題出すぎだろw
どんなコーディングしてんだ
0882nobodyさん2005/12/30(金) 11:55:09ID:???
ここ最近のアップデートに限定して言えば、毎回おかしくなるmb系のバグは確かに酷かったな
0883nobodyさん2005/12/30(金) 13:24:42ID:0FfWwbS6
PHPでセレクトボックスから入力した日付で、今日より前(過去)はエラーにしたいです。
一応希望通りの動作はしてますが、かなり変ですよね?(;´Д`)
こうしろよみたいなのありましたらご教示よろしくお願いします。



$today = getdate();

if ( $today[year] > $input_year ) { error(); } // 過去はエラー
elseif ( $today[year] < $input_year ) {} // 未来はOK
// 以下同年
elseif ( $today[mon] > $input_month ) { error(); } // 過去はエラー
elseif ( $today[mon] < $input_month ) {} // 未来はOK
// 以下同月
elseif ( $today[mday] > $input_day ) { error(); } // 過去はエラー

// 存在しない日はエラー
if ( !checkdate($input_month, $input_day, $input_year) ) { error(); }
0884nobodyさん2005/12/30(金) 13:51:27ID:???
>>883
epoc値(1970/1/1からの秒数)に直して比較すれば一発。
その前に書式はチェックしないといけないけど。
0885nobodyさん2005/12/30(金) 13:57:28ID:???
>>883
年/月/日ごとに異なるエラーを出すのでないなら、
まとめてタイムスタンプの大小で現在より過去を判定した方が良いんじゃないか。
タイムスタンプの性質とmktimeの動作を確認して、自分の仕様に適うかどうかだな。

0886nobodyさん2005/12/30(金) 16:58:33ID:???
date("U")ね。
あと関係ないが連想配列[]内はクォーテーションで囲みましょう。["hoge"]
0887nobodyさん2005/12/30(金) 18:12:49ID:???
「ユーザー権限で動く」にこだわる理由はなんだろう?
それ以外の方法でもあれこれ組み合わせれば結構セキュア
(他の人のスクリプトやデータに干渉しないよう)に
できると思うんだが。
0888nobodyさん2005/12/30(金) 18:52:17ID:???
ユーザー権限なんてレン鯖以外関係ないし
0889nobodyさん2005/12/30(金) 20:53:24ID:5CV6IiV6
yahooメールのページをfopenかなんかで取得したいのですが
認証部分はどうすればよいのでしょうか?

googleで5時間探したけどわかんね。。
0890nobodyさん2005/12/30(金) 20:59:33ID:???
>>883
別に難しく考える必要はなし。
if(date("Ymd") < "{$input_year}{$input_month}{$input_day}"){
   echo 'Error!';
   exit();
}
※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0891nobodyさん2005/12/30(金) 21:05:51ID:???
こっちのがスマートやないか
$input_year.$input_month.$input_day){
0892nobodyさん2005/12/30(金) 21:13:33ID:???
>>889
どんなやり取りをしてるのかパケットスキャナ等で見ればいいんでね?
0893nobodyさん2005/12/30(金) 21:47:34ID:???
>>890-891
$input_monthや$input_dayが一桁だった場合におかしなことになるからsprintf("%04d%02d%02d",ってやらないとまずくない?

>>889
ページってことはHTTPってこと?だったらfsockopenでクッキーとかも送ってやればいいだけ。
HTTPSに関してはOpenSSLを導入する方法があったようななかったような。
あとPearにもHTTPクライアントあるし。もしくはcurl使うとか。
つーかメールだったらIMAP系の関数使ったほうが早いかもね。
0894nobodyさん2005/12/30(金) 21:50:05ID:???
>>886
なにその顔。
08958932005/12/30(金) 21:54:30ID:???
>>890
すまん。ここ読んでなかった。
> ※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0896nobodyさん2005/12/30(金) 21:54:46ID:???
>>890-891
「あらかじめ整形しておく」などの事前前提は意外とバグを産み易い。
速度的にシビアな場面じゃないのなら安全策を取った方が不慮の事故を防げるかと。
if(date("Ymd") < sprintf("%04d%02d%02d", $input_year, $input_month, $input_day)){
0897nobodyさん2005/12/30(金) 21:55:17ID:???
あら。かぶった。
0898nobodyさん2005/12/31(土) 00:25:14ID:NCoXT252
Win2k Apache2+PHP Ver4.4.1 の自宅鯖でPHPのブログ
ttp://www.netmania.jp/cgi/blog/ の#001 を動かそうと思い入れたんですけど
PHPがERRORばかり吐いて動きません。
試しに、無料のレンタル鯖にうpして動かしてみるとすんなり動きました。
鯖の設定がだめなのかPHPのスクリプトがおかしいのか・・・
宜しくお願いします。
レンタル鯖に設置したやつ[未改造]
ttp://freshgreens.jp.land.to/blog/index.php
自鯖のやつ[多少弄った]
ttp://aozoraxp.dip.jp/blog/index.php
PHPのinfo
ttp://aozoraxp.dip.jp/phpinfo.php
0899nobodyさん2005/12/31(土) 00:33:08ID:???
>>898
レン鯖においてOKならおまいのローカル環境がおかしいとしか思えないが、
エラー見るに根本的に何かが間違ってるっぽいし改造って何したのとか
わからんから何とも言いようがありません。
0900nobodyさん2005/12/31(土) 00:36:57ID:???
>>898
php.iniのerror_reportingの値がでかすぎるかも。
E_NOTICEまで有効にされちゃってる気がする。
09018982005/12/31(土) 00:38:53ID:???
改造って言うかエラー出たところを自分なりに直してみたりです。
例えばif ($_SERVER[REQUEST_METHOD] == 'POST') だとエラーでるので
’’を付け加えてif ($_SERVER['REQUEST_METHOD'] == 'POST')にしたとかです。
それ以外は特になにもしてません
09029002005/12/31(土) 00:39:58ID:???
今の値が2047だからE_ALL設定になってるね。
一般的なデフォルト値はE_ALL & ~E_NOTICEのはずなのでこれで設定してみて。
09039002005/12/31(土) 00:41:23ID:???
>>901
それはこのblogの作者が悪いわ。
09048982005/12/31(土) 00:44:58ID:???
今php.iniの設定を少し変えてみました。
error_reporting = E_ALL; display all errors, warnings and notices
この行をコメントアウト(;)してみました。
するとだいぶblogらしくなってきました。
コメントアウトじゃまずいですかね?
ほかにphp.iniの設定方法あったらご教授ください
0905nobodyさん2005/12/31(土) 00:48:01ID:???
test
09068982005/12/31(土) 00:48:37ID:???
>>902 さんの言うとおりにphp.iniの
error_reporting = E_ALL & ~E_NOTICE の;を外しておきました。
これで一般的なデフォルト値になりましたでしょうか?
09079002005/12/31(土) 00:54:41ID:???
>>906
2039になったからいーんじゃないのかな。
Windows用のphp.iniってE_ALLがデフォルトなんだろうか。
それとも4.4.0以降はE_ALLに変更されたとか?

あとなんか上に1個出てるエラーは設定項目不足みたいね。
csslistの設定が入ってないとエラーになるようだ。
なんかエラーチェックがいいかげんなプログラムだなぁ。
09088982005/12/31(土) 00:57:56ID:???
>>907
まだひとつだけエラーでちゃいますね。
csslistの設定ですか・・・
ちなみにmain.phpの206行目は
// CSSリスト生成
$num = 0;
foreach($conf[csslist] as $list){  ←この行です
$csslist .= "<option value=\"$num\">".$list[1]."</option>";
$num++;
}
なにか対処方法ってありますかね?
0909nobodyさん2005/12/31(土) 01:04:57ID:???
>>908
csslistを設定してやるっつーのはダメなの?
blog/conf.phpの116行目
// CSSリスト - 別に設定しなくてもいいような気もします。CSSジャンキー向け。
$conf[csslist] = array(
array("./style.css","基本スタイル"),
array("./style2.css","黒スタイル")
);
の部分でしょ。

ま、「設定しなくてもいいような」と書いといて、設定しなかったらエラーになるのは
そのプログラムがヘタレなせいだと思うけどね。
09108982005/12/31(土) 01:11:36ID:???
>>909
たぶん俺が元々foreach($conf_csslist as $list)ってなっていたやつを
foreach($conf[csslist] as $list)に変えたからだと思いますw
今conf.phpの116行目
// CSSリスト - 別に設定しなくてもいいような気もします。CSSジャンキー向け。
$conf_csslist = array( これを
$conf[csslist] = array( このように[]に変更してやったら
エラーがとれて正常に動作するようになりました。
どうもありがとうございました。
0911nobodyさん2005/12/31(土) 17:38:32ID:+rnbwxav
http://ameblo.jp/takuya/entry-10007539342.html

この人がPHP5のオブジェクトは参照渡しではないと言っているのですが
本当でしょうか?
0912nobodyさん2005/12/31(土) 17:44:44ID:???
つーか、2003年4月のβ仕様に今更突っ込むバカはどこのどいつですか
0913nobodyさん2005/12/31(土) 18:07:13ID:???
cloneとかあの辺はβから正式リリースまでにかなり仕様が変わったからね。
なんせ、本家Zendのサンプルコードですら修正されてなくて間違ったままになってるくらいw
赤マンモス本でも初版では旧仕様のコードで説明されてたりした。

PHP5でのオブジェクト代入の動きの説明に関してはここなんてどう?
ttp://www.shigeweb.jp/php/project_p/?section=php5oop&page=substitution
> 「$agent_hodenasu = $hodenasu;」の結果、「変数$agent_hodenasu」が、
> PHP4では代入元のオブジェクトのクローン(コピー)になっていたのに、
> PHP5ではリファレンスの様な、でも違う代理人の様なものになったなぁという事を理解できたと思います。
> でも実際はリファレンスです(え?)。「変数$agent_hodenasu」は「変数$hodenasu」のリファレンスですが、
> 完全なリファレンスではないのです。
0914nobodyさん2005/12/31(土) 18:09:35ID:???
元記事の先頭に書いてある注意書きをスルーしてまで指摘ですか。
(正月にはまだ早いけど)おめでたいですね。
>なお今回紹介する内容は、2003年4月22日時点でCVSに登録されているバージョンに基づいていることをお断りしておく。
>正式リリースまでの間に、言語仕様が若干変更される可能性もないわけではない。
0915nobodyさん2005/12/31(土) 18:13:15ID:???
>>911
まあPHPのマニュアルでは「リファレンス」という言葉を一貫して&による参照の意味(=エイリアス)で使っているから、その限りでは「オブジェクトの参照渡しではない」という言い方もできるかもね。
ただ、よく言われるPHP5のオブジェクトの参照渡しってのは、一般に言う値渡しとの対比としての参照渡し(=コピーせずに同じオブジェクトを参照させる)のことでしょ。
0916nobodyさん2005/12/31(土) 18:13:21ID:???
腐敗してるのはこいつの脳みそw
0917nobodyさん2005/12/31(土) 18:18:16ID:???
β仕様の話をするとnamespaceの話題で荒れるのでやめて(><)
0918nobodyさん2005/12/31(土) 18:23:52ID:???
おまいが持ち出さなければ荒れなかったのに
0919nobodyさん2005/12/31(土) 18:57:27ID:???
>>914
それより、そんな古い記事を今更になって読んでることの方が痛いよね。
0920nobodyさん2005/12/31(土) 19:49:17ID:???
ググる先生に「php5」でお伺いをたてると、そのatmarkitの記事が一番最初にヒットするんだよね。
おいらもphp4からphp5に移行する時に、「php4の知識があれば、本とか買わなくてもいけるべ」と、
検索にヒットするページを片っ端から読んでた時に見た記憶があるよ。
まぁ、「嘘を嘘と見抜けないようでは(ry」って感じだね。
0921nobodyさん2005/12/31(土) 20:52:30ID:???
つーか911のページは釣だろ
釣サイトに釣ページがあっても・・・え?
0922nobodyさん2005/12/31(土) 23:32:43ID:???
検索で上位にヒットするページを書き捨てるなと。
雑な仕事してんじゃねーよということだな。
0923nobodyさん2005/12/31(土) 23:35:25ID:???
こいつ小山さんの名前も見たことなかったんだろうな。
0924nobodyさん2006/01/01(日) 02:31:41ID:???
だれだそりゃw
0925nobodyさん2006/01/01(日) 02:44:21ID:???
PHP4用青マンモス本の著者の1人。
PHPカンファレンスとかでよく公演してる。
WEB+DBプレス他、技術雑誌の記事でもよく見かけるよ。
0926nobodyさん2006/01/01(日) 03:09:44ID:???
>>913
後から他の型を代入することも出来る、一時的なリファレンスなんだ。
まあ後から役割を変えることなんてあんまりないから
リファレンスと考えておいてほとんど問題はないね。
0927nobodyさん2006/01/01(日) 11:46:21ID:???
>>922
ブログの中の人乙
0928nobodyさん2006/01/01(日) 13:34:01ID:???
漏れも小山なんて香具師はシラネ。誰それ? おいしいの?
レス数が900を超えています。1000を超えると表示できなくなるよ。