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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2008/02/24(日) 21:03:17ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0899nobodyさん2008/03/14(金) 17:56:48ID:???
SessionIDの成りすまし簡単だぜ?
ターゲットにしているユーザーのパソコンに外部から接続して、乗っ取りが成功すれば
ブラウザが使用しているメモリ領域から情報を引き出せる
それを元にすれば早いだろw
0900nobodyさん2008/03/14(金) 17:59:56ID:???
SessionIDを発行している鯖をハッキングした方が早くね?
0901nobodyさん2008/03/14(金) 18:02:37ID:???
>>900
不正アクセス禁止法の教唆で通報した。
0902nobodyさん2008/03/14(金) 18:08:04ID:???
>>901
私は捕まるのですね
捕まるぐらいなら死んだ方がマシです
さようなら
0903nobodyさん2008/03/14(金) 18:10:01ID:MYksIzGY
SSL使えば、クライアントが入れ替わってないか判別できるんだよね。
その場合でも、同じセッションID使われたら、特別な処理をしないかぎり、セッションハイジャックってできたりするの?

とりあえず環境は Apache2.x + PHP5.x あたりと仮定して。
0904nobodyさん2008/03/14(金) 18:10:42ID:???
     *      *
  *  うそです   +  
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
09059032008/03/14(金) 18:12:09ID:???
そもそも、SSLってクライアント側に証明書いれておかないと、クライアントの認証はしないんだっけ?
0906nobodyさん2008/03/14(金) 18:13:21ID:???
PHPのSessionIDが特別仕様というわけではなく、PerlやJAVAなどが使用している使い古された手法
そこは古いApache側のセキュリティホールを利用とかじゃなければ、PHPだからというのはないな
0907nobodyさん2008/03/14(金) 18:14:45ID:???
>>903
> セッションハイジャックってできたりするの?
分からん。SSLのレベルの定義されていないし、解読に掛かる時間も定義されていない、
解読に要するリソースの制約条件も定義されていない。

条件が全くといっていいほど定義されていないのに、答えられる訳がない。
0908nobodyさん2008/03/14(金) 18:25:14ID:???
>>889

> ターゲットにしているユーザーのパソコンに外部から接続して、乗っ取りが成功すれば

ネタですよね? もはやセッションIDの乗っ取りとは関係ない話。
09099032008/03/14(金) 18:27:02ID:???
>>906
Servletの場合、SSLじゃなくてIPアドレスチェックの話だけど、APサーバによっては途中でIPが変わると
セッションが切れた気がする。AirH"がユーザが気がつかないうちに接続しなおすものだから、突然ログアウト
してしまうという現象が発生した記憶がある。

だから、同じような話で、SSL使ってチェックしたりする設定がないかなぁという期待。
もしくはデフォルトでそうなっているとか。

どうなんだろ。
0910nobodyさん2008/03/14(金) 18:30:52ID:???
>>909
ipアドレスが変わるたびにセッションが切れていたら、docomoは全然だめだな
0911nobodyさん2008/03/14(金) 18:30:59ID:???
ドアに鍵をかけていても、その鍵を簡単に取れるところに
おいていたら意味はない。
また、その鍵が机の鍵のようなちゃちい鍵だと余り意味は無い。

そういう問題外の状態は論外として取り扱わないとして
ちゃんとした使い方をしていれば、他人のセッションIDを
推測することは不可能。
09129032008/03/14(金) 18:37:31ID:???
>>910
IPアドレスが変わったとき、Servletならばセッションが存続しないって話じゃないから。
そういう環境があったというだけで。だから、それは別問題。
0913nobodyさん2008/03/14(金) 18:44:51ID:???
俺は知らないけど、SSLの仕様を調べれば済む話じゃないの?
「〜なき気がする。どうなんだろう。」とか言ってても仕方ないと思うんだがww
0914nobodyさん2008/03/14(金) 19:03:54ID:???
>>908
他人のSessionIDが知りたいだけなら間違いではなかろう
セッションハイジャックをして何がしたいんだ?
0915nobodyさん2008/03/14(金) 19:15:24ID:???
>>913
そもそもSSLは関係ない話。

セッションIDとSSLは関係ない技術
0916nobodyさん2008/03/14(金) 20:26:13ID:6wdnTdIf
例えば、hoge.txtの読み書きをする場合、

ロック専用ファイルをflockでロックして、
hoge.txtの読み書きをする。

hoge.txtをflockでロックして、
hoge.txtの読み書きをする。

どっちが普通ですか?
0917nobodyさん2008/03/14(金) 20:30:52ID:XPDryAhR
htmlspecialchars_decodeについて質問です。

php5を使用してるのですが
htmlspecialchars_decodeを1回目の使用の場合戻らなくて
2回かけると戻ることがあるのですが、これは何故なのでしょうか?
よろしくお願いします。
09189172008/03/14(金) 20:36:04ID:XPDryAhR
っんだよ、よくソース見たら<とかになってんじゃねーか畜生

ありがとうだっつーの!
0919nobodyさん2008/03/14(金) 20:36:37ID:XPDryAhR
>>918
なん…だと…?
0920nobodyさん2008/03/14(金) 20:58:43ID:???
>>918
> ありがとうだっつーの!

どういたしまして。お役に立てて光栄です。
0921nobodyさん2008/03/14(金) 21:00:23ID:???
>>916
後者をfile_put_contentsでやるのがPHP5でのたしなみ
0922nobodyさん2008/03/14(金) 21:05:16ID:???
PHP4でPHP5の関数を使える互換ライブラリ
http://upgradephp.berlios.de/
0923nobodyさん2008/03/14(金) 21:50:36ID:???
>>922
古いしイラネ
0924nobodyさん2008/03/14(金) 21:53:10ID:???
古いことが何か悪いことでもあるのだろうか?
0925nobodyさん2008/03/14(金) 23:01:55ID:???
PHP4はセキュリティアップデートのサポートから除外されたからやばいんじゃねえ?
今年中にPHP6出るらしいし、PHP5に乗り換えときなよ
0926nobodyさん2008/03/14(金) 23:18:29ID:???
php6にしないと、IE6で動かなくなるよ
0927nobodyさん2008/03/15(土) 03:14:39ID:zI+80wWb
もうIE6なんて使っているやついねーよ
0928nobodyさん2008/03/15(土) 08:19:09ID:???
うちは未だにIE2
0929nobodyさん2008/03/15(土) 10:49:51ID:???
おれっちはIE4
0930nobodyさん2008/03/15(土) 15:32:04ID:???
このスレ前はいい人たちばかりで、私も色々助けてもらったけど、
もうこのスレには変な人間ばかりしかいないのかな。
0931nobodyさん2008/03/15(土) 15:40:42ID:???
>>930
まだ謝礼を貰っていなかったな。
ほれ、ケツあげろケツ。
0932nobodyさん2008/03/15(土) 16:04:03ID:???
激しく既出なのかもしれませんが...

スクリプトはEUC-JPで書いてます。
mb_internal_encodingもEUC-JPです。
htmlをはき出す時は、以下のようにしています。
header( "Content-type: text/html;charset=Shift_JIS" );
ob_start("mb_output_handler");
print $buf;
ob_end_flush();
これで、EUC-JPをSJISに変換して出しています。

ところが、xhtmlの場合、ヘッダーを
header( "Content-type: application/xhtml+xml;charset=Shift_JIS" );
とすると、文字コードが変換されません。

これはこういうものなんですか?
なんか間違ってますか?
0933nobodyさん2008/03/15(土) 16:10:36ID:???
>>930
今度はお前が助ける番だ
しっかりやれよ
0934nobodyさん2008/03/15(土) 17:15:33ID:???
>>931>>933
あなた達は、虫以下の脳みそしか持っていません。
ただ、体がでかいだけです。
0935nobodyさん2008/03/15(土) 17:29:19ID:???
>>934
虫の脳って、言語を扱える程に発達してたっけ?
0936nobodyさん2008/03/15(土) 17:34:17ID:???
代わりに高性能なマイクロチップが入っているんだよ
つまりこのスレにはザレムの住人がいる
0937nobodyさん2008/03/15(土) 17:47:35ID:???
>>932
正確なことは知らないんで違ってるかもしれんが、そもそもPHPって header で charset指定するだけで
文字コード変換したりするんだっけ?変換処理をするとすれば Apacheじゃなくて PHPだと思うんだけど、
それらしい記述がマニュアルからみつけられない。

対応としては、ob_get_contents して変換するのが定石じゃないかと思うけど。
0938nobodyさん2008/03/15(土) 17:52:22ID:???
フレームワーク作ってたらMVCではなくVCになったw
やりなおそw
0939nobodyさん2008/03/15(土) 17:58:54ID:???
>>932
mb_http_output('SJIS');
とか利用してないのか?
0940nobodyさん2008/03/15(土) 18:12:21ID:???
>>932
>>937が探したらしき「それらしい記述」。
ttp://jp2.php.net/manual/ja/function.mb-output-handler.php

注意書き見ればわかるけど、それはそういうもんです。
09419372008/03/15(土) 18:27:49ID:???
>>940
ありがとう。こっちの方がシンプルだね。

確認なんだけど、
>header() により"Content-Type: text/*" を送信した場合には、テキストが送信されるとみなし、
>文字コード設定に 基づいて出力文字コード変換を行います。

ってのは、Content-Typeが text の場合は、mb_http_output の設定にしたがって変換するという意味ですよね。
Content-Type で charset 指定しても文字コード変換はされないと思ってるんだけど、それは合ってますか?

今回の >>932 の件も、Content-Typeが text じゃないから、明示的な指定が必要ということか。
0942nobodyさん2008/03/15(土) 18:33:53ID:???
>>932
iniかhttpd.confか.htaccessで
output_handlerをmb_output_handlerにして
PHP内で
mb_http_output("SJIS");
と指定して
echo mb_convert_encoding($contents, "SJIS","EUC-JP");
0943nobodyさん2008/03/15(土) 22:59:16ID:???
参考書を読んでも$_GETと$_POSTの違いが理解できません。
$_GET データを送信する。 
$_POST データを送信する。

・・・。

どなたか簡単な例に例えて説明してくれませんでしょうか?
0944nobodyさん2008/03/15(土) 23:16:13ID:???
$_GET = URLの?以降 簡単に変更出来るが長さに制限がある
$_POST = method=post になっている <form> から送信したデータ
09459432008/03/15(土) 23:27:59ID:WjD0JvRK
>>944 なるほど php?id=xxxxxxxxxxxxが $_GET なんですね
ありがとうございます
0946のぼdyさん2008/03/15(土) 23:29:54ID:J4XO1nny
すみません、皆様の考えを教えていただけると助かります。

よくコンボボックスで、下記のように「良い」は「1」、「悪い」は「2」というように
指定します。
<select name="evel">
  <option value="1">良い</option>
  <option value="2">悪い</option>
</select>

その「1」と「2」の値を、データベースに保存しているのですが
下記の「良い」は「良い」のままデータベースに保存するのは何か弊害があるのでしょうか?
<select name="evel">
  <option value="良い">良い</option>
  <option value="悪い">悪い</option>
</select>

文字化けして、ブラウザから送信されたときはバリデーションで弾けますし
欠点は、HDD容量を多めに必要とするぐらいだと思うのですが。


0947nobodyさん2008/03/15(土) 23:32:17ID:???
>>945
初心者っぽいけど、httpプロトコルを検索してみたらもうちょっと理解を深めれるかも。
余計にわからなくなる危険性もあるけど。
0948nobodyさん2008/03/15(土) 23:33:34ID:???
>>946
やりたいようにやれ
0949nobodyさん2008/03/16(日) 00:48:12ID:???
>>946
例えば表現を変えようとした時とか
あとは使用されるメモリ量とか(微々たる差だけど
バリデーションノしやすさとか
0950nobodyさん2008/03/16(日) 04:08:30ID:???
>>946
(例)項目名 kubun
1=良い
2=悪い

これをどう使うかの用途次第

DB登録→検索に使用すると想定するならその時のSQLは、
(a)select ・・・ from tbl where kubun=1;
(b)select ・・・ from tbl where kubun='良い';

もし kubun が増えた場合を考えると、範囲検索って場合も・・
(a)select ・・・ from tbl where kubun between 1 and 3;
(b)select ・・・ from tbl where う〜ん…どうしましょ?

PHPには関係ないが、そんな感じ
0951nobodyさん2008/03/16(日) 04:30:05ID:???
>>950
そのレベルでどうしましょとかおまえセンスないぞ
0952nobodyさん2008/03/16(日) 07:46:07ID:???
不便になるって言いたいだけだろ。
さすがに>>950のSQLも思いつかんヤツはいないかと^^;
0953nobodyさん2008/03/16(日) 08:18:20ID:???
いいんじゃない?
optionのvalueを文字列にしてpostしたり、
項目の数だけカラム作ったりするのもWebアプリ学び始めの醍醐味というものさ。
0954nobodyさん2008/03/16(日) 09:01:24ID:???
>>940
932です。
おぉぉ、ありがとうございます。。。
すっきりししました。
0955nobodyさん2008/03/16(日) 10:53:12ID:9hRtdL6R
php.ini-distのdistって何の略ですか?
0956nobodyさん2008/03/16(日) 11:08:12ID:???
distance
0957nobodyさん2008/03/16(日) 11:26:53ID:???
丸投げスレはノートンが反応して見れないのでこちらで聞かせていただきます
レッツPHPさんの
ttp://php.s3.to/simple/page.php.txt

をp=1ではなくp=001のように3桁にするにはどこを書き換えれば良いでしょうか?
0958nobodyさん2008/03/16(日) 12:02:38ID:???
$pageと$_GET[p]に関するところ全部
0959ららら2008/03/16(日) 12:49:45ID:6BeO6z+t
年月日が $y, $m, $d に入っているとき、
その次の日や前の日の年月日を取得するための
簡単な関数ってあるかな?

mktime で日付を範囲外にしてもうまくいかなかった。
(たとえば mktime(0,0,0, 10, 1, 2007) で 2007/09/30 に
なることを期待したけど、だめだった。)
0960ららら2008/03/16(日) 12:50:27ID:???
>>959
× たとえば mktime(0,0,0, 10, 1, 2007) で 2007/09/30 に
○ たとえば mktime(0,0,0, 10, 0, 2007) で 2007/09/30 に
0961nobodyさん2008/03/16(日) 12:55:30ID:???
こちらの環境では
echo date("Y/m/d", mktime(0,0,0, 10, 0, 2007));
を出力したら
2007/09/30
になったが?
0962ららら2008/03/16(日) 13:03:03ID:???
えー?そーお?
別のところが間違っているのかなー。。。
0963ららら2008/03/16(日) 13:04:23ID:???
ほんまや、ちゃんとできた。
コードのミスやった。。。。
0964nobodyさん2008/03/16(日) 13:05:29ID:???
>>959
だから環境等を書けと(ry

http://jp.php.net/manual/ja/function.mktime.php

5.1.0以前だと不正な値はダメなのかもしれんね。
・・・と思ったが、大丈夫か。
win版だけの問題か?

FreeBSD php 4.4.7でテスト

> php -r 'echo date("Y/m/d", mktime(0,0,0, 10, 0, 2007));'
2007/09/30

ちゃんと出た。
0965nobodyさん2008/03/16(日) 13:06:26ID:???
終わってたorz
0966nobodyさん2008/03/16(日) 13:07:46ID:???
>>963
どういうミス?
0967ららら2008/03/16(日) 14:55:55ID:???
>>966
別のロジックとの絡みだから、説明しても役に立たないよ。。。
0968nobodyさん2008/03/16(日) 15:02:39ID:???
うん、それで?
0969nobodyさん2008/03/16(日) 15:15:26ID:5AI0UypY
>>2 の

1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。


Shift_JISを使用しない方が良いのは何故ですか?

html、cssをよく標準でShift_JISを指定しているのですが、
アクセス解析や、部分的にphpスクリプトを埋め込んでいるのですが。
0970nobodyさん2008/03/16(日) 15:16:57ID:???
http://www.websmith.co.jp/lilbox/
をいじって
Amazon トップセラー っていうのが表示されないようにしようと思ってます。
著作権表示も右上ではなく左下に移動させたいのですが
どうすればいいのかわかりません。
何方かご教授お願いします。
0971nobodyさん2008/03/16(日) 15:17:00ID:???
Google先生に聞くと幸せになれるよ
0972nobodyさん2008/03/16(日) 15:38:46ID:???
>>970
ぱっとみたがロジックが全く分離されてないカオスなスクリプトだな
簡単そうだし0から自分で書けばいい
09739462008/03/16(日) 16:17:49ID:g1Wku69A
>>947 >>948 >>949 >>950 >>951 >>952 >>953
ご回答ありがとうございます。

下記の点で困るんですね。
・表現を変える
・メモリ量
・バリデーションのしやすさ
・SQLの条件指定のしやすさ

参考になります。
ありがとうございました
0974nobodyさん2008/03/16(日) 16:51:54ID:???
CGI・PHPは問わないので一日に
UP可能な容量が設定できるアップローダ探しています。

何方かご存知ありませんか?
0975nobodyさん2008/03/16(日) 17:11:38ID:???
>>974
http://www.google.com/search?hl=ja&safe=off&q=%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%80%E3%80%80%E5%AE%B9%E9%87%8F%E3%80%80%E5%88%B6%E9%99%90&lr=
0976nobodyさん2008/03/16(日) 17:27:49ID:???
>>974
そんなのphp.iniの制限値を設定すればいいだけだろ。
こいつニートじゃねーの?
0977nobodyさん2008/03/16(日) 17:31:57ID:???
おにゅーなスレ
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
0978nobodyさん2008/03/16(日) 17:40:20ID:???
>>976
1日の制限値なんてあったっけ?
ちょっと落ち着けw
0979nobodyさん2008/03/16(日) 17:42:24ID:???
転送量の話をしているのではないかと
0980nobodyさん2008/03/16(日) 18:23:10ID:???
>>957
書くのめんどいからほれ
因みに最初の何行かは削除してある
<?php
$page = isset ($_GET['p']) ? intval($_GET['p']) : 1; // 最初はページ1
if ($page > 1) {
$pager .= "<a href=" . $url . sPage($page -1) . "><<前の" . $perPage . "件</a> ";
}
if ($page <= $delta) {
$alpha = $delta - $page +1;
}
$links = $pager = '';
for ($i = $page - $delta;($i <= $page + $delta + $alpha) && ($i <= $totalPage); $i++) {
if ($i < 1) {
continue;
}
$preTag = "<a href='" . $url . sPage($i) . "'>";
$aftTag = "</a> | ";
if ($i == $page) {
$preTag = "<strong>";
$aftTag = "</strong> | ";
}
$links .= $preTag . $i . $aftTag;
}
$pager .= substr($links, 0, -2);
if ($page < $totalPage) {
$pager .= "<a href=" . $url . sPage($page +1) . ">次の" . $perPage . "件>></a> ";
}
echo $pager;
function sPage($page) {
return sprintf("%03d", $page);
}
0981nobodyさん2008/03/16(日) 18:24:51ID:???
>>969
文字コードがらみでふぁびょる奴が多いから
0982nobodyさん2008/03/16(日) 18:42:54ID:???
>>978
だったらお前が答えてみろ。何この上目線の生意気な奴。市ね
0983nobodyさん2008/03/16(日) 18:47:48ID:???
この上目線の生意気な奴
上目線・・・
上目線・・・
上目線・・・
0984nobodyさん2008/03/16(日) 18:52:20ID:???
     /ニYニヽ
    /( ゚ )( ゚ )ヽ
   /::::⌒`´⌒::::\   でっていうwwwwwwww
  | ,-)___(-、|
  | l   |-┬-|  l |
   \   `ー'´   /
0985nobodyさん2008/03/16(日) 18:53:41ID:???
>>984
こっちみんな
0986nobodyさん2008/03/16(日) 19:35:26ID:???
>>984
生意気そうw
0987nobodyさん2008/03/17(月) 10:05:40ID:6BYisms4
Warning: Invalid argument supplied for foreach()

これって「配列ではない」というエラーですよね?
foreach($array as $key=>$value)
{
}
これの直前でprint_r($array)をしてみたのですが、
Array
(
[0] => 居酒屋
)
と配列になっています。
何が原因なのでしょうか・・・?
0988nobodyさん2008/03/17(月) 10:10:00ID:???
こっちの環境でやってみたが正しく実行できたよ。
エラーが再現するコード出してみたら?
0989nobodyさん2008/03/17(月) 10:14:05ID:6BYisms4
どうやら2週ほどあって、2週目がString型のようでした。
print_r($array); die;
としていたため見逃していました。

原因追求してみます、ありがとうございました。
0990nobodyさん2008/03/17(月) 10:23:29ID:6BYisms4
メソッドがどこから呼び出されたか取得するとか不可能ですかね・・・?

[class.php]
class TEST
{
  public function abc()
  {
    #呼び出されたスクリプトを返す。#
    echo "ABC";
  }
}

[test.php]
require_once 'class.php';
$obj = new TEST();
$obj->abc();

この場合、test.php on line 2を返す
0991nobodyさん2008/03/17(月) 10:26:23ID:???
>>990
http://jp2.php.net/manual/ja/language.oop5.reflection.php
0992nobodyさん2008/03/17(月) 14:20:58ID:???
debug_backtrace
0993nobodyさん2008/03/17(月) 17:43:03ID:Xuq5ifxr
.htaccessスレがないのでスマソだがこちらに。

phpのみアクセスできる.htaccessの記述ってあるのだろうか?
中の画像をセキュりたいんだがリファラ以外の指定方法ってあるますか?
お願いします。
0994nobodyさん2008/03/17(月) 17:51:49ID:???
>>993

<Files ~ "\.jpg$">
deny from all
</Files>

じゃダメ?
0995nobodyさん2008/03/17(月) 18:21:59ID:???
>>993
Web制作板でたてていいよ
0996nobodyさん2008/03/18(火) 00:13:59ID:???
前々からphpとperlとcでどれだけのパフォーマンスが違うのか、
よく分からなかったので、メジャーな処理20パターンで試してみた。
が、絶句した。なんで、ファイル処理がこんな実装になっているのかと・・・
0997nobodyさん2008/03/18(火) 00:19:32ID:???
は?ソースもなしで煽ってんじゃねーよ乞食
0998nobodyさん2008/03/18(火) 00:28:53ID:???
>>997
弱点を突かれたからって、ふぁびょってんじゃねーよwww
レス数が950を超えています。1000を超えると書き込みができなくなります。