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

△▲ WebProg 初心者の質問 Part19 ▼▽

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/06(金) 00:11:17ID:???
2ちゃんねるは初めて。 WebProg 板は初めて。
質問したいけど、どうしたら良いか分からない。

そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。

質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
 後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。

2ch 総合ガイド
http://www.2ch.net/guide/

お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。

関連情報は
>>2-3辺り

☆前スレ☆
△▲ WebProg 初心者の質問 Part18 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1219842559/
0607nobodyさん2009/04/19(日) 23:35:25ID:???
>>606
>>602は俺だが。。。
このスレはお前と>>580しかいないのかと小一時間(ry
0608nobodyさん2009/04/19(日) 23:39:16ID:???
ところで俺はここまでレスしてない
0609nobodyさん2009/04/19(日) 23:53:28ID:???
PerlでCGIを勉強していたころは、
「クエリーストリング」
という用語がしつこく出てきましたが、
PHPの教科書にはほとんど出てきません。

なぜでしょうか?
0610nobodyさん2009/04/20(月) 00:20:53ID:???
感謝されたがり野郎うざすぎ。
感謝されるやつと感謝されないやつがいるっていう現実がすべてだろ。
悔しかったら感謝されるようなレスしろよ。
0611nobodyさん2009/04/20(月) 01:01:45ID:???
データベースにファイルを格納していて、

fileテーブル
id,name,type,size,blob

こんなかんじのテーブルなのですが、

select id,name,type,size from file

のように、取得するフィールドを指定すれば無駄にblobがselectされるのを防げるのでしょうか?

それとも、

file_bin
id,file_id,blob

のように、blob型だけ別テーブルに分けたほうが良いのでしょうか?

よろしくお願いします。
0612nobodyさん2009/04/20(月) 01:15:49ID:???
どうしても*で全称指定したいなら後者でいいよ
0613nobodyさん2009/04/20(月) 01:32:34ID:???
Selectされなければ読み出されることも無い
後者のように分割する意味はほとんどないし、無駄にJoinが必要になる

ファイルが何GBもあるようなときはInsert/Update中にFileテーブルがロックされるのを防げることがあるかも?ないかも
0614nobodyさん2009/04/20(月) 03:13:26ID:???
BLOBの取り扱いなんて、処理系によって違うだろう
そもそも板違いだな。DB関係の板で質問してみたら?
06156112009/04/20(月) 11:51:13ID:???
レスありがとうございます。

>>612-613
きちんとselectで指定すれば、無駄に読み込まれることはないようですね。

>>ファイルが何GBもあるようなときはInsert/Update中にFileテーブルがロックされるのを防げることがあるかも?ないかも
これは気がつきませんでしたが、
今回はそこまでアップロードに時間がかかるようなファイルはアップロードしないと思うので、問題ないと思います。

OpenPNE3などのテーブル構造を見てみたら、
fileとfile_binなどに分けられていたので、
なにか意味があるのかなと思い質問したのですが、
それほどメリットはないという認識でよいのでしょうか?

>>614
処理系というのは、ここではデータベースのことでしょうか?
書き忘れてしまったのですが、今回使っているのはMySQLです。

板違いということについては申し訳なく思っています。
しかし、WebProgに関係ないわけでもないので、どうかご容赦ください・・・
0616nobodyさん2009/04/20(月) 21:04:45ID:???
JSPで、Blogを作ろうと思っています。
どこのBlogでもそうですが、以下のような形式で、ユーザIDを含むURLにアクセスすると、そのユーザのページにアクセスできます。
例)
http://<;ユーザID>.example.com/index.html
http://example.com/<;ユーザID>/index.html

新規登録で、ユーザを作成、DBに格納→DBにあるユーザIDを上記形式でそのユーザのページにアクセスできるようにするテクニックを教えていただけませんか?
0617nobodyさん2009/04/20(月) 21:13:24ID:???
>>616
それって全部教えろって言ってないか?
0618nobodyさん2009/04/20(月) 21:14:01ID:???
レンタルblogでも始めるの?
06196162009/04/20(月) 21:35:07ID:???
Strutsフレームワークとか参考書見てるんですが、そのようなのは、載ってないですし、
web.xmlからどうにかできないか考えていたんですが、やりかたが思い浮かばないですし、
まず、これを実現するにあたる基となる何かが必要だと思うのですが、
今のところ、考えてみたのは、
ユーザ登録後、OSレベルでDir(ユーザID)掘って、
Request側) 指定Dir配下を検索→ヒット
Response側) http://<;ユーザID>.example.com/→アクセス可

たぶんできると思うのですが、これ以外にやりかたあるのでしょうか?
上記のやり方は格好わるいし。
0620nobodyさん2009/04/20(月) 21:38:34ID:???
>>619
ほい
http://httpd.apache.org/docs/2.2/ja/mod/mod_userdir.html
0621nobodyさん2009/04/20(月) 21:56:38ID:???
サブドメインやりたいならDNS書き換えやらなきゃ
06226162009/04/20(月) 22:02:49ID:???
>>620
ありがとう。
全くその通りです。
Apache modにこんなのあるんですね。(常識?
大変助かります。

やっぱり、ユーザ登録後、mkdirしないとダメかな。
希望としては、ユーザ毎のDirectory無しで。。。(・ω・`)
0623nobodyさん2009/04/20(月) 22:05:20ID:???
Javaなら、Servletのurl-patternを/*とかにすりゃいいじゃないか。
0624nobodyさん2009/04/20(月) 22:18:05ID:???
>622
www.example.com/hoge/username/fuga.html
hoge.cgiとかを動かして、拡張子をmultiviewとかで隠蔽すれば、上記のURLでアクセスさせられる。
username/fuga.htmlはPATH_INFOで受け取ってアプリケーション側でなんとかする。
やった事無いけど、DirectoryIndexも併用すればexample.com/username/でアクセスさせられると思う。

mod_rewriteを使っていいなら、パスはなんでもアリになる。
リクエストURLを正規表現で書き換えられるから、事実上なんだってできる。

独自ドメインは流石にDNSとかバーチャルホストをどうにかしないといけないと思うのだが、その辺は良く分からん。
0625nobodyさん2009/04/21(火) 04:55:48ID:TMA0XNZY
metaタグのhttp-equivは、httpヘッダを上書きするとのことですが、
わざわざ上書きせずに、最初からhttpヘッダに書いておいた方がよくないですか?
何でわざわざmetaタグを書かなければいけないのですか?
0626nobodyさん2009/04/21(火) 05:33:53ID:???
まあぱっと思いつくのはコンテンツは常に鯖から送信されるわけじゃないので、
ローカルに保存された場合とかProxyに削られちゃ場合とかには役に立つかもってことかな

また、コンテンツ内のスクリプトタイプ等をデーモンが調べてヘッダを生成するってのは、
やってできないことはないが100人いたら100人にやめろと言われる実装だと思う

で、metaタグとはその名の通りコンテンツのメタレベルに言及するためのタグだから
コンテンツがやり取りされた状況(HTTPなりなんなり)について干渉する方法があることに
特に不思議な点はないと思う

UAに対する通知の仕組みをあたらしく作らずにHTTPヘッダを流用したのは
俺は悪くない選択だと思うけど、その辺どういう議論があったんだろうね
0627nobodyさん2009/04/21(火) 05:55:10ID:???
$a['0']=1;
$a[0]=2;

どっちが正式な書き方?
0628nobodyさん2009/04/21(火) 06:03:59ID:???
正式って何?
あと言語は何?
0629nobodyさん2009/04/21(火) 07:16:42ID:???
>>628
PHP
0630nobodyさん2009/04/21(火) 07:39:04ID:???
どちらも正しい
0631nobodyさん2009/04/21(火) 11:00:11ID:???
CMSのテーブル構造ってどんな感じ?
0632nobodyさん2009/04/21(火) 11:18:14ID:???
DLすれば1分で分かるだろ
0633nobodyさん2009/04/21(火) 12:16:37ID:???
特定の処理を関数作って渡そうとしています。

example($sample, $sample2, $sample3);

function example($sample, $sample2, $sample3){
require_once 'test.php';
}

test.phpの中に同様に$sample 〜 $sample3があるのでtest.phpに引数として
渡したいのですが上記をどのようにすればtest.phpに$sample〜$sample3を渡すことで出来ますか?
functionに引数として渡せていることは確認しているのですが、そこから先のtest.phpへの引き渡し方が分かりません。
ご存じの方いらた是非ともアドバイスいただきたいです。
0634nobodyさん2009/04/21(火) 12:29:51ID:???
別変数にコピーするのがアドホックなやり方かな
変数名のバッティングは検出しづらいバグの温床だからかぶらないようにするべきだとおもうけど
0635nobodyさん2009/04/21(火) 12:33:02ID:???
呼び出し側のコンテクストにマージされるんだからrequire/includeに引数なんていらない。
0636nobodyさん2009/04/21(火) 12:54:10ID:???
>>633
それで渡せないの?
0637nobodyさん2009/04/21(火) 15:57:53ID:???
>>633
インスタンスなしの場合
test::hogehoge( $sample, $sample2, $sample3 );

インスタンスのコンストラクタに渡す場合
$test = new Test( $sample, $sample2, $sample3 );

インスタンスのメソッドに渡す場合
$test = new Test();
$test->hogehoge( $sample, $sample2, $sample3 );

0638nobodyさん2009/04/21(火) 16:09:32ID:???
お前は何を言ってるんだ?
0639nobodyさん2009/04/21(火) 18:42:48ID:???
633のどの辺がPerlに見えたのか知りたい
0640nobodyさん2009/04/21(火) 19:59:49ID:???
PHP勉強するときって、必須になる知識って、

(1)PHP
(2)javascript
(3)MySQL

の3つ?
0641nobodyさん2009/04/21(火) 20:04:34ID:???
いいえ
0642nobodyさん2009/04/21(火) 22:02:13ID:???
>>639
Perlの話なんて誰もしてないが。
0643nobodyさん2009/04/21(火) 22:59:06ID:???
>627
PHPはウンコだから文字列と数値を区別できない。同じ意味なので、どちらが正しいという事も無い。
PHPでそう書くと、前者の代入結果は後者で上書きされ、なかった事になる。
常識的な他の言語では、両者は別のものなので、どちらが正しいという事は無い。
$a['0']=1;
$a[0]=2;
echo $a['0']; // PHPだと2。ふつうは1。
echo $a[0]; // 2
echo count($a); //PHPだと1。ふつうは2。

>640
PHPで何をしたいかによる。
0644nobodyさん2009/04/22(水) 16:58:14ID:???
PHPで簡単なメモ帳を作成してます。
textareaに記入後はheader('Location: ./index.html');でトップ画面に
飛ばすようにしてますが、Locationの記述行数で下記のエラーが発生します。

Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\memo\memo.php:1) in D:\xampp\htdocs\memo\memo.php on line 20

headerの構文には問題ないと思うのですがどのような原因が考えられるのでしょうか。
0645nobodyさん2009/04/22(水) 17:09:14ID:???
ヘッダの前に出力してるから
06466442009/04/22(水) 17:29:09ID:???
>>645
こんなヘタレ質問に速攻で答えてもらってありがとうございます。
ヘッダの前にはfopenでファイルを開いて書き込みをしているだけなんですが
それがダメということでしょうか。
ヘッダより下に書いたら実行されないのでどうしてもヘッダの前で処理を行う必要があるのですが
出力の意味を間違ってますか?
0647nobodyさん2009/04/22(水) 17:34:17ID:???
標準出力に出さなきゃ大丈夫だよ。
ってphpの場合<?php ?>で囲まれた部分以外が先にあっても駄目だけど
06486442009/04/22(水) 17:49:39ID:???
>>647
たびたびの素早い回答ありがとうございます。
それは困りましたね。
phpの内容は
1.フォームからデータ受け取り
2.受け取ったデータを適すとファイルに追記
3.フォームに戻る ← ここでLocation
という構造になってます。
3のファイルに追記してるというのが標準出力になると思うんですが、
この場合はどうやれば元のフォーム画面に戻す事が出来るんでしょうか。
0649nobodyさん2009/04/22(水) 17:53:26ID:???
ファイルは標準出力じゃないよ

ファイル始まり
<?php
ファイル出力とかの処理

header();
?>

ってやればいいっしょ
0650nobodyさん2009/04/22(水) 17:59:37ID:???
>>647の言ってることは間違い
>>649が正解
06516442009/04/22(水) 18:07:05ID:???
>>649
回答ありがとうございます。

試しにmemo.phpを

<?php
header('Location: ./index.html');
?>

の3行だけにしてみたのですが、それでも下記のエラーが出てきました。

Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\memo\memo.php:1) in D:\xampp\htdocs\memo\memo.php on line 2

何か別の問題がありそうな気がしますが、思い当たる部分がないです。
0652nobodyさん2009/04/22(水) 18:15:01ID:???
HTTPはヘッダの後にエンティティボディがくるから、仕様上ボデー送った後にヘッダは送れない
何かヘッダの前に送出されているはずだから、それを確認してみたら
ありがちなのはメモ帳で編集しててBOMがくっついてるパターンとか

しかしiniでoutput_bufferingが指定されていれば、出力しても4kb程はバッファにたまるから大丈夫なはずなんだけどね
0653nobodyさん2009/04/22(水) 18:17:15ID:???
あと、RFCの通りLocationは絶対パスで指定するべき
0654nobodyさん2009/04/22(水) 18:20:11ID:???
>>647と>>649で矛盾してないと思うが。つか同じ人なんだけどね
0655nobodyさん2009/04/22(水) 18:28:40ID:???
つBOM
0656nobodyさん2009/04/22(水) 18:29:16ID:???
xamppではデフォルトでoutput_buffering=Offのようだ。Debug時はそのほうがいいな。
0657nobodyさん2009/04/22(水) 18:45:24ID:???
BOMで理解できるレベルじゃなさそうだが・・
0658nobodyさん2009/04/22(水) 19:16:10ID:???
googleという文明の利器があるじゃないか
0659nobodyさん2009/04/22(水) 19:38:21ID:???
header('Location: ./index.html');

ナイワwwwwwwwwwwwwwwwww
0660nobodyさん2009/04/22(水) 19:53:50ID:???
>>649
「標準出力」という言葉の意味がようやくわかった気がする。

「○○が標準出力です」

って説明よりも、

「XXは標準出力ではありません」

っていう説明のほうが理解しやすい気がする。
0661nobodyさん2009/04/22(水) 20:04:27ID:???
お前は何を言ってるんだ?
0662nobodyさん2009/04/22(水) 20:05:47ID:???
>>660の言いたいことが理解できない俺はダメダメなのか?

0663nobodyさん2009/04/22(水) 23:22:22ID:???
>>662
ファイルが標準出力じゃない ということを理解したんだよ
まあ、それで
>「標準出力」という言葉の意味がようやくわかった気がする。
というのはちょっとどうかと思うが
0664nobodyさん2009/04/22(水) 23:37:49ID:???
「標準出力はファイルである」ということも分かるようにならないとな
0665nobodyさん2009/04/23(木) 01:49:32ID:???
日本語の「標準」「出力」じゃないからw
0666nobodyさん2009/04/23(木) 08:18:13ID:???
>>651
ファイルをUnicodeで保存しているのなら、
一度、試しにEUCで作ってみるといい。
そうすると、>>655の意味が判るかもしれない。
0667nobodyさん2009/04/23(木) 10:04:50ID:???
ストリームだから戻ることができない。

標準入出力=ファイル だと信じて疑わないと躓く要因になる。
0668nobodyさん2009/04/23(木) 10:50:05ID:???
そんな脳ミソじゃ元服前に死んでるだろ
0669nobodyさん2009/04/23(木) 11:25:56ID:???
既定の入出力って翻訳すりゃよかったのに。
0670nobodyさん2009/04/24(金) 20:17:21ID:???
go-pear.phpでインストールする
pearのフロントエンドっていうのは、
public_htmlの外にインストールしなければいけないの?

でもそれだとブラウザでアクセスできなくない?

だからpublic_htmlの中にインストールして、
そこのディレクトリにパスワードでアクセス制限をかけるの?
0671nobodyさん2009/04/24(金) 20:41:30ID:???
go-pear.phpは普通コマンドラインから実行するんでないの?
0672nobodyさん2009/04/24(金) 20:44:21ID:???
レンタルサーバーにいれるとき。
0673nobodyさん2009/04/24(金) 23:33:06ID:???
>>671
そうでもない
0674nobodyさん2009/04/24(金) 23:42:03ID:???
なんで?
0675nobodyさん2009/04/25(土) 00:03:28ID:???
>>674
おまえwindowsでgo-pear.batでインストールしてるだろ?
ソース読めば?
0676nobodyさん2009/04/25(土) 00:06:23ID:???
してないけど?
0677nobodyさん2009/04/26(日) 19:46:22ID:HwIYAsBt
MySQLは6.0まで出てますが
PHPと一緒に使うために必要なバージョンはかわらないんでしょうか?
0678nobodyさん2009/04/26(日) 21:35:32ID:???
勉強しなければならないのって、
PHP、javascript、MySQL

この3つは、デフォルトでガチ。さらに、それプラス、

XML,PDF、FLASH(actionscript)

も必要だと思う。さらに
ubuntu
の知識も必要だよね。他にも何かある?
0679nobodyさん2009/04/26(日) 23:37:21ID:???
HTTPを知らんでどうする。
0680nobodyさん2009/04/26(日) 23:52:36ID:???
MySQLっつうかRDBMS。PDO経由ならどれも同じようなもんなのでどうでもいい。
同じく、UbuntuじゃなくてLinux一般の知識。つうかUnix系OSの知識。
XMLにはそもそも学ぶ事はほとんど無い。
PDFは果てしなくどうでもいい。

他に必要なのは
各ブラウザの特徴。
Apache。
PHP以外の言語なにか最低ひとつ。
0681nobodyさん2009/04/27(月) 00:00:17ID:???
>>677
mysql5.1とphp5.2.x使うときはphpと一緒に配布されているdllがおかしいから
今のところ4.1か5.0か6.0だな
06826772009/04/27(月) 02:18:47ID:Aj5i6/gI
>>681
ありがとうございます
ちょうど5.1ダウンロードしたんで アンインストールします
0683nobodyさん2009/04/27(月) 03:47:25ID:???
ある程度のHTML,JS,CSS。デザイナつく場合は関係ないけど
デザイナつかない場合は自分で書かないといけない
<font color="red">とかやってたらたとえエンジニアでも許されない
0684nobodyさん2009/04/27(月) 06:13:30ID:Aj5i6/gI
ttp://www.atmarkit.co.jp/flinux/rensai/mysql5_05/mysql5_05a.html

12行目の $row = $result->fetch_array(MYSQLI_NUM);
はインスタンスを具体化させるように -> という使い方を
関数を使用するときに使用できるんでしょうか?
またできるのであれば これはどのように分解してプログラミングとしてかけるのでしょうか?

$result = fetch_array(MYSQLI_NUM);
$row = $result;
で合ってますでしょうか
よろしくお願いします
0685nobodyさん2009/04/27(月) 07:43:51ID:???
とにかく日本語がおかしくて何を言っとるのかさっぱり分からん。
ようするにオブジェクト周りのリテラル表現を知らないからコードの意味がとれんのだろ?
勉強しろよ。

2パラについて答えると、Mysqliには関数もあるから、$result->fetch_array() は mysqli_fetch_array($result)と書くこともできる。
http://jp.php.net/mysqli-fetch-array
06866842009/04/27(月) 07:52:42ID:Aj5i6/gI
私の意味不明な文章を汲み取って頂きありがとうございます
リテラル表現と言うんですか 勉強します
最近本ではなくネットを見るとほとんど理解出来ない感じです
ありがとうございます
0687nobodyさん2009/04/27(月) 08:24:10ID:???
簡単とは言われながらPHPも後付けでカオスってきた
06886842009/04/27(月) 15:42:29ID:Aj5i6/gI
質問させて下さい

$row = $result->fetch_array(MYSQLI_NUM);

>>685さんの言うような書き方だとこれはどのような書き方が出来るんでしょうか?
またMYSQLI_NUMとはなんの役割をしているんでしょうか?
0689nobodyさん2009/04/27(月) 16:00:14ID:???
マニュアルにまんまの例が出ているが
0690nobodyさん2009/04/27(月) 18:34:00ID:???
「PHPマスターブック」

あんまりよくないね。
最近の本なのに、
$_REQUESTで変数を受けてるとか。

あと説明がバラバラな感じで統合されてないかんじ。
0691nobodyさん2009/04/27(月) 18:39:41ID:???
$_REQUESTで変数を受けとること自体はアリだろ
どういうケースかで問題にもなるが
0692nobodyさん2009/04/27(月) 18:57:51ID:???
セキュリティの本を読むと
「$_REQUESTで変数を受けるのは危険だからヤメロ!」
とはっきり書いてあるんだよ。しかも3冊も。
0693nobodyさん2009/04/27(月) 19:04:18ID:???
じゃあどう危険かちゃんと書いてあればまぁいいだろうけど
もしどう危険かを書いてないなら捨てるに値する本だ
0694nobodyさん2009/04/27(月) 20:14:27ID:???
その通りだな
0695nobodyさん2009/04/27(月) 20:36:44ID:???
POSTできるものはGETできるし
GETできるものはPOSTできるんだから
$_REQUESTが危険とか妄想も甚だしい
0696nobodyさん2009/04/27(月) 20:38:42ID:???
<form method="post" action="">
<input type="text" name="num" size="5">
<input type="submit" value="計算">
</form>
<?php
function aaa($a){
print $a;
$a--;
if($a>=1){
print " x ";
aaa($a);
}
}
if(isset($_POST['num']) AND $_POST['num']!=""){
$ccc=$_POST['num'];
$ddd = htmlspecialchars($ccc,ENT_QUOTES,"UTF-8");
aaa($ddd);
}
?>
0697nobodyさん2009/04/27(月) 20:39:42ID:???
>>696
これで階乗(!)の計算をする前の
計算式の表示ができるようになったんだけど、
かんじんの計算アルゴリズムがわかりません。

再帰のどこに仕込めばいいの?


8 x 7 x 6 x 5 x 4 x 3 x 2 x 1

↑こういうやつです
0698nobodyさん2009/04/27(月) 20:51:03ID:???
function factorial($n)
{
if ($n <= 1) {
return 1;
}
return $n * factorial($n - 1);
}
0699nobodyさん2009/04/27(月) 20:56:53ID:???
あーそうかそうか、、
returnを使うんだ。
0700nobodyさん2009/04/27(月) 20:57:45ID:???
そんで、変数 X 関数そのもの、ってやるのね
0701nobodyさん2009/04/27(月) 21:03:26ID:???
<form method="post" action="">
<input type="text" name="num" size="5">
<input type="submit" value="計算">
</form>
<?php
function aaa($a){
print $a;
$a--;
if($a>=1){
print " x ";
aaa($a);
}
}
function factorial($n)
{
if ($n <= 1) {
return 1;
}
return $n * factorial($n - 1);
}
if(isset($_POST['num']) AND $_POST['num']!=""){
$ccc=$_POST['num'];
$ddd = htmlspecialchars($ccc,ENT_QUOTES,"UTF-8");
aaa($ddd);

print " = ";
$eee = factorial($ddd);
print $eee;

}
?>
0702nobodyさん2009/04/27(月) 21:04:31ID:???
>>701
完成!
でも、残念ながら、計算できるのは14まだだな。
0703nobodyさん2009/04/27(月) 21:07:49ID:???
ほうほう,それで?
0704nobodyさん2009/04/27(月) 21:09:15ID:???
BCMathを使うべきなのかな?
でもからめかたがわからんけど。
0705nobodyさん2009/04/28(火) 19:12:20ID:???
「基礎からのPHP」

山田和夫

結構いいよね。初心者向き。
わかりやすい
0706nobodyさん2009/04/28(火) 20:51:42ID:???
他の本読んだことあるのか?
■ このスレッドは過去ログ倉庫に格納されています