【Perl】初心者コーナー Part14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/07/18 16:34ID:jemWJhH31:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/
過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0652597
02/07/31 19:09ID:S7Hc+7gVありがとうございました!
出来ました!!
0653nobodyさん
02/07/31 19:13ID:GgEH/D5c上にも書いてるじゃないか
$foo eq $bar
が真にならないのは$fooと$barの中身が違うからだよ
print 関数の使い方検索して出力してみろよ
もし、同じ文字列なのに偽になるんだったら
サーバの管理者に聞きなさい
0654>651
02/07/31 19:24ID:???0655comeoneverybody
02/07/31 19:27ID:JJGI7Cskそそ、それです。
で、いまやってみましたら上手く行きました。
(\%header, $body, $html_body, 0, '../aa/1234.txt','../aa/1235.txt', '../aa/1236.txt');
これは上手くいくんですが、配列にしたときに上手くいかないんですよ。
0657nobodyさん
02/07/31 20:00ID:???ホントに試したの?
$aa = '../aa/1234.txt'; $bb = '../aa/1235.txt';
(\%header, $body, $html_body, 0, $aa,$bb);
これならどうなるの?
配列の使い方知ってる?
>>656
それはクライアントの仕事だから、その為にContent-typeがあります
HTML書く時に一々ジャバスクリプト? でクライアントのOSを判定
しますか?
そんな事しなくてもクライアントがソースを見るとちゃんと置換されて
ますね
何故ならそれはブラウザちゃんのお仕事だからです
0658comeoneverybody
02/07/31 20:18ID:JJGI7Csk試しました。こっちは必死ですから。
本気でperl始めてまだ2週間です。
配列もなんとなく使ってはいたんですが。
@files=(@files,"'../aa/$form{$my}.txt',");
こんな感じで作ってます
0659comeoneverybody
02/07/31 20:22ID:???それも行けました
0660630
02/07/31 20:25ID:???>>$foo eq $bar
>>が真にならないのは$fooと$barの中身が違うからだよ
>>print 関数の使い方検索して出力してみろよ
>>もし、同じ文字列なのに偽になるんだったら
>>サーバの管理者に聞きなさい
出力しても同じ文字でした。ローカルでテストしてるので鯖管は自分です
print unpack('C*', $foo), "\n";
print unpack('C*', $bar), "\n";
0662657
02/07/31 20:37ID:???ネタ?どう考えてもドキュメント読んだ方が早い
http://www.ie.u-ryukyu.ac.jp/~kono/perlman/cat1/perldata.html
@files = ('../aa/1234.txt','../aa/1235.txt', '../aa/1236.txt');
(\%header, $body, $html_body, 0, @files);
それとそのライブラリ、そのまま使うと何でも通すので
多分攻撃されます($form{$my})、ファイル消されます、入力チェック必須
>>660
良く読んで無いけど同じ文字列をeqで評価して真にならないなら
PERLかOSか機械が壊れてます。
0663nobodyさん
02/07/31 20:48ID:???改行って目に見えないんだよな・・・。
0664comeoneverybody
02/07/31 21:16ID:???なんか間違っているということですか?
ドキュメント読んで出直します。
一応、パスワード入力+アクセス制限+外からアクセスできないディレクトリ
とか使って、セキュリティには気をつけてます。
0665comeoneverybody
02/07/31 21:47ID:???ひらめいたぽ
0667nobodyさん
02/07/31 21:54ID:6r/wlS/6それとそのライブラリ、そのまま使うと何でも通すので
多分攻撃されます($form{$my})
0668630
02/07/31 22:04ID:???プライベート変数myをifで囲んでいたためifから出たら空になってました
1回printで出力してみたのですがそのとき運悪くifの中にコーディングしたため
ちゃんと表示されてしまったということでした。
答えてくださった方ありがとうございました。>>627さんので当たりでした。
0669comeoneverybody
02/07/31 22:06ID:???ありがとうございました。
@files=(@files,"../aa/$form{$my}.txt');
これでやってみようと思います。
キタ━━━━━(゚∀゚)━━━━━!!!!
解決しました。
本当にありがとうございました。
0670nobodyさん
02/07/31 22:32ID:afTQxJxlりゃま本、らくだ本、その他、
初心者向けの古本探して買おうかと思っていますが
最新版でなくてもよいでしょうか?
0671nobodyさん
02/07/31 22:33ID:oq+m6OUNそれでは、<br>を改行コードに戻したい時は「\n」に置き換えれば
あとはどのOSで見ても勝手に改行してくれるという事ですよね?
0672nobodyさん
02/07/31 23:02ID:???古本屋にラクダ本がある素敵な場所があるなら教えて欲しいわ!(w
すれ違いなんで↓いきなさい
http://pc.2ch.net/test/read.cgi/php/988809842/
最新版じゃなくていいだろうが、、ラクダ2版は死んでも買えよ。
0673nobodyさん
02/07/31 23:03ID:???改行されるに決まってるだろ。
それとも誰かにその事の補償でもさせたいのか、裁判官みたいだな
0674670
02/07/31 23:25ID:???誘導ありがとうございます。
らくだ2版っと、メモメモ・・・
親に駄々こねて、買ってもらおうとしたら受験生なので却下されますた。
こんど、参考書を買うと騙してらくだ本買うように企んでいます(藁
お金欲しい・・・・
0675nobodyさん
02/08/01 00:24ID:???$row_data{'NAME'} = $name;
$row_data{'NICKNAME'} = $nickname;
$row_data{'NICKNAMES'} = \@nicknames;
push(@loop_data, \%row_data);
HTML::Templateのループネストって、普通でもややこしいのに、
もっと見通しの良い変数名を使ってホスィぞ。(外と内で同じ
%row_data を使ってるとか)
0677nobodyさん
02/08/01 04:41ID:???ありがとうございます!!
ただ、>>629をループ処理すると、@loop_dataの中身はうまく表示されるんですが、
@nicknamesの部分は最後に入れたハッシュだけが適用されるようですね…
つまり、BobbyやHe-Manの部分をループ毎に変えても、結局最後に入れたハッシュの内容が
全てのNICKNAMESの部分に表示されると・・・。
0678nobodyさん
02/08/01 07:48ID:M7oaAkIZこの意味がおわかりになる方いらっしゃいますか?
おそらく、telnet経由でread cgiにアクセスし、logから住人のアクセス情報を
出すということを言っているのだと思うのですが、実際現在そのようなことはできるのでしょうか?
http://tmp.2ch.net/test/read.cgi/mog2/1028122076/30-59
0679nobodyさん
02/08/01 08:52ID:???2ch全体でログ取ってすらいない。
何か起きたときだけ、緊急に取る。
0680nobodyさん
02/08/01 09:00ID:???windowsしかなくてunixやmacで試せないから聞いてるんだよ。
お前はプログラムしか能のない馬鹿か?
論理的に理解できてるならそれぞれの環境で試さなくてもわかるんだろうが
俺はお前のように論理的にわからないからいちいち自分で試せないことは聞いてるんだよ。
こんなことわざわざ説明しなきゃいけないなんて、だからプログラマー同士って良く対立してるんだね。
わかったら、KENTのlight.cgiはなぜ\rで置き換えているか説明しろ。
0681nobodyさん
02/08/01 09:45ID:???Windowsで試せばいいと思うが。
\nがUNIXでちゃんと表示されるのは当たり前。
\nがWinでOKならMacでもOKだろうと推測する頭を持て。
>KENTのlight.cgiはなぜ\rで置き換えているか説明しろ。
KENTがマカーだからだよ。
改行コードはどれにしてもIEやネスケではちゃんと表示される。
サーバがUNIX系ならUNIXの改行コードを使うのがいいんじゃないかということだな。
0682nobodyさん
02/08/01 10:55ID:xj2aK3qvまず、論理的にわかるように努力しる! 個別に試してうんぬんなんて
無駄なこと。KENTがどうのなんて気にするな。人気があるのはイイ
スクリプトを書いているからじゃない。
0683nobodyさん
02/08/01 11:22ID:???まぁまぁ。マターリしようYO。
そのテキスト形式のログを<pre>で囲んじゃ駄目なのか?
まともなブラウザなら改行コードにかかわらず表示できるYO。
0685nobodyさん
02/08/01 12:46ID:???ああ、妄想ファンタジーに突入してるんか
>KENTのlight.cgiはなぜ\rで置き換えているか説明しろ。
教えて欲しいならコード書け、KENTて誰だ?
まあ推測して書くと、そいつが馬鹿だからだな
perlの改行コードは\nなの、OSがUNIXだろうがマクだろうが
朝鮮人参だろうが関係無い
馬鹿以外の人間はんな事使って3日で気付くんだよな
馬鹿が馬鹿を見本に馬鹿なやり方で馬鹿妄想するから
普通の人間からドンドン遠ざかって行くんだよ
http://natto.2ch.net/denpa/
0686nobodyさん
02/08/01 12:47ID:???お前は根本的に社会生活に問題が有ると思うね
0687nobodyさん
02/08/01 12:57ID:???>>680よこれを読め!!!
http://www2.gol.com/users/slowhand/kilmac/kilmac_i97.htm
0688nobodyさん
02/08/01 13:44ID:???厨な質問なのですが、よろしければ答えてくださいです
SSIでデータをちょこちょこと処理させようとしたりしたときに
1HTML(?)中に2〜3回SSIを使ってたりすると処理の順番はどうなるのでしょうか?
↑から順に実行>完了されるのでしょうか
それとも↑から実行されて、完了しないうちに2番目のが実行されたりするのでしょうか
どうかご教授ください、宜しくお願いします
0689nobodyさん
02/08/01 14:30ID:???http://www.sankeipro.co.jp/male/kent_.htm
世界丸みえとかに良く出てるけど知らない?
プログラムやるのもいいけどたまにはテレビも見ようよ。
0690nobodyさん
02/08/01 16:29ID:???http://images.google.co.jp/images?q=KENT&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja&sa=N&tab=wi
0691nobodyさん
02/08/01 18:52ID:zZ0lPm5tjpeg画像をCGI_Lite.pmを利用してアップロードするCGIをperlで作成しているのですが、
アップする際に、アップされるファイルがjpegファイルかどうかを確認する方法が
わかりません。
拡張子で確認する以外の方法があれば教えて下さい。よろしくお願いします。
0692nobodyさん
02/08/01 18:57ID:PoaI42Wkport5.comにアクセスログ取得スクリプト設置したんだけど
htmlのソースにSSIのコメント<!--#exec cmd="..."-->ってやつが
ばっちり表示されてる。でもCGI/SSIは動いている模様。
これは普通のことなのですか?
ちなみにhypermartにも同じスクリプト置いてるけど、
こっちは表示されてないです。
0694nobodyさん
02/08/01 19:29ID:???がJPEGの先頭のバイナリ。(たぶん。バイナリエディタで自分の持ってるJPEG画像開いて確認してくれ)
これが先頭にあるかを見る。
0695692
02/08/01 19:55ID:PoaI42Wkですよね〜
やっぱりSSIは動作してないかも、です。
でもCGI自体は動いているみたいで自分のアクセスしたログが
記録されてた。SSIが 使えないとダメなスクリプトのはずなのに、
なんでだろう・・・なんか混乱しちゃってます・・
0696nobodyさん
02/08/01 20:02ID:???port5.comがどういうところか知らないけど、そこのSSIではexecは許可されてるの?
0698692
02/08/01 20:43ID:???あ、多分解決しました。
port5.comはよく落ちるってことでレンタル鯖板ではすこぶる評判が
良いです。FAQのCGIのセクションばかりみていたんですけど、
他のところにSSIの説明ありました。回答して下さった方ありがとうございました。
0700nobodyさん
02/08/02 00:44ID:Sqea3lxU拡張子なんてアテになんないから、691は拡張子以外で、って書いてるんだろ
0702675
02/08/02 02:27ID:???スマソ、いまいち元データと完成後の画面イメージが掴めんので、
事情が理解出来ないのだが、原理的にはこんなんで行くはずだが。
実際には@name0と、@name1は、リファレンスを使用したレコード
構造とかにする必要が有るだろうけど。
foreach my $name (@name0){
foreach my $nickname (@name1) {
my %nickname;
$nickname{NICKNAME} = $nickname;
push(@nicknames, \%nickname);
}
my %name;
$name{NAME} = $name;
$name{NICKNAMES} = \@nicknames;
push(@loop_data, \%name);
}
$tpl->param(ROW => \@loop_data);
<TMPL_LOOP NAME=ROW>
<tr><td><TMPL_VAR NAME=NAME></td><td>
<TMPL_LOOP NAME=NICKNAMES>
<TMPL_VAR NAME=NICKNAME>
</TMPL_LOOP>
</td></tr>
</TMPL_LOOP>
0703nobodyさん
02/08/02 06:04ID:Q2JtjWGI処理がこっちに帰って来ないのが不便でかないません.
外部プログラムを別プロセスで起動させることは出来ますか?
0705nobodyさん
02/08/02 10:32ID:HalM3U4I0706nobodyさん
02/08/02 10:43ID:???0707nobodyさん
02/08/02 11:05ID:???exec ですと、perl スクリプトが終わるので処理は返ってきません。
system ですと、forkしますから、別プロセスになります。
私は、
外部プログラムをperlの中から呼ばない
どうしても外部プログラムを使わないとダメな時は、そのためのシェルスクリプト
をperlに吐かせ、それを実行
するようにしてます。
0709nobodyさん
02/08/02 13:30ID:8kGCovezあれってどうやってるんでしょうか?
(アップした画像を縮小してるんじゃなくて、小さな画像を自動的につくる)
0711nobodyさん
02/08/02 15:01ID:???<input type="checkbox" name="hoge" value="A">A
<input type="checkbox" name="hoge" value="B">B
cgi----------
@hoge = $FORM{'hoge'};
foreach $value (@hoge){
print "$value";
}
チェックボックスの値を受け取りたいんですけど、AとB両方チェックしても
Aしか受け取れません。やり方間違ってますか?
0712nobodyさん
02/08/02 15:03ID:???間違ってる。
nameを変えないとどちらかが上書きされる。
0713nobodyさん
02/08/02 15:09ID:Blzo1x52チェックボックスの数は変動するんでnameを別にするとしたら
わざわざ適当な名前+連番とかで付けなきゃいけないって事ですかね。
0714nobodyさん
02/08/02 15:10ID:???0715nobodyさん
02/08/02 15:14ID:???<input type="checkbox" name="hoge2" value="B">B
....
仮に連番でチェックボックスを生成しても、今度値を受け取る時
その数だけ
$hoge1 = $FORM{'hoge1'};
$hoge2 = $FORM{'hoge2'};
...
ってあらかじめ何個も用意しておかなきゃいけないんでしょうか。
(掲示板の投稿削除で管理者は一気チェックして消せるみたいな感じにしたいんです)
0716nobodyさん
02/08/02 15:21ID:???0717nobodyさん
02/08/02 15:32ID:???頭固い?
for(my$i=1;$i<=$last_number;$i++){
push(@hoge,$FORM{"hoge$i"});
}
とかで回せば楽だろう。
0718nobodyさん
02/08/02 15:33ID:???0720nobodyさん
02/08/02 15:42ID:???0721nobodyさん
02/08/02 15:52ID:???hoge=A&hoge=B&hoge=C・・・・
上書きはされないで送られる。
読み込むときに
$count = 0;
my @pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
my($name,$value) = split(/=/,$pair);
if($name eq 'hoge') {
$hoge[$count] = $value;
$count++;
}
}
と配列に読み込むようにする。
0723nobodyさん
02/08/02 19:34ID:???0724712
02/08/02 20:41ID:???取得する時に変える方法は思いつかなかった。
どうせcgi-lib.plかなにかで取得させてるんだろうと思ったし
言っても分からないだろうから、下手に混乱させる必要もないかなと。
>721の発想出ないなんて、確かに頭固くなってて恥ずかしいね。
0726nobodyさん
02/08/02 23:15ID:+4MGC8XT2 こんな風にやってみた。
s/(\W)/'%'. (unpack(H2, $1))/eg;
s/%([a-fA-F0-9]{2})/pack(H2, $1)/eg;
3 いや、ふつうに動きますが、いくつか CGI の掲示板
Perl のスクリプトを公開しているサイトを拝見させて
頂きましたが、圧倒的に以下の様なスクリプトが幅を
利かせています。
s/(\W)/sprintf('%%%02X', unpack(C, $1))/eg;
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
"C" で pack or unpack するメリットと、
"H2" で pack or unpack するデメリットを伺いたいのですが。
てゆーか "H2" のが効率良さそうな気がするのですが。
0727nobodyさん
02/08/02 23:23ID:???RFCでCの方が書かれて
Cの方を使う人が多い。しまっていたから
0728726
02/08/02 23:31ID:???アリガトゴザイマス
RFC が解りません。
今調べてますが、差し支えなければ教えて下さい。
0729nobodyさん
02/08/02 23:43ID:???http://www.se.hiroshima-u.ac.jp/~isaki/rfc/list.html
インターネットの標準を定めている文書、といっても過言ではない。
たしかURIエンコードの項目に pack("C", hex($1)) が書かれてた。
0730728
02/08/02 23:49ID:fhO9IRlhありがとうございますです。
非常に参考になりました。
0731nobodyさん
02/08/03 00:24ID:4FNUCrqfFORMで打ち込んだ内容をテキストに保存するCGIを作ってます。
#!/usr/local/bin/perl
print<<"EOM";
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="$naiyou">
<input type=submit value="送信する">
</form>
EOM
open(OUT,">> log.txt");
print OUT "$naiyou";
close(OUT);
すいませんアドバイスお願いします。
0732nobodyさん
02/08/03 00:29ID:???とりあえず、送られてきたデータを受け取れ。
話はそれからだ。
#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair(@pairs){
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
print<<"EOM";
<html>
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="naiyou">
<input type=submit value="送信する">
</form>
</html>
EOM
open(OUT,">>log.txt");
print OUT "$FORM{'sub'}";
close(OUT);
exit;
__END__
0733730
02/08/03 00:34ID:???2 "$/" INPUT_RECORD_SEPARATOR に "\n" を代入(する必要は多分無い)
"\r\n" を <br> に変換し "\r" "\n" を削除する。
"\r" をセパレータにしてデータを書き込む。
だいたいこんな感じ。
while($i < $log_countmax}){
foreach(keys(%TMP)){$line .= "$_=$TMP{$_}\r";}
push(@lines, $line);}
読み込み時には split にリミットを指定する事で文中の "=" は無視できる。
($key, $value) = split(/=/, $_, 2);
3 少ない環境での動作チェックはしましたが、同様の処理をしている
スクリプトを見かけないので、なんとなく不安が残ります。
何か問題点が有りそうでしたら、ご指摘下さい。
もちろん上記スクリプトは、意味が分かる程度に簡略化した物で動きませんよ?
0734731
02/08/03 00:43ID:4FNUCrqfありがとうございます!
でもサーバーエラーがでます。
なぜだろう・・ちゃんとパスやパーミッションも合ってるのに。
0735732
02/08/03 00:46ID:???一応、データの受け取りはよく使われる。
↓こんなのが。
sub read_form {
local($pair,$buffer);
if($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}elsif($ENV{'REQUEST_METHOD'} eq 'GET'){
$buffer = $ENV{'QUERY_STRING'};
}
local(@pairs) = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
0736nobodyさん
02/08/03 00:51ID:???を忘れてたからだ。
print<<"EOM";
のあとに
Content-Type: text/html<改行>
<改行>
入れてみて。
0737nobodyさん
02/08/03 00:55ID:???の直後に
local($name,$value) = split(/=/,$pair);
も忘れてた。
回線切って首(略
0738731
02/08/03 01:07ID:4FNUCrqf表示できました。
でも送信してもlog.txtに書き込まれないみたいです。
もうちょっとからかってみます。
0739nobodyさん
02/08/03 01:10ID:???漏れはからかわれていたのかΣ(゚д゚lll)
0740731
02/08/03 01:13ID:4FNUCrqfいやそういう意味じゃないです!すいません。
自分でcgiをからかうという意味です。
変な言い方ですいません。
0741nobodyさん
02/08/03 01:20ID:???#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
print<<"EOM";
Content-Type: text/html
<html>
<form action="./test.cgi" method="POST">
<input type=text name=sub size=50 value="naiyou">
<input type=submit value="送信する">
</form>
</html>
EOM
open(OUT,">>log.txt");
print OUT "$FORM{'sub'}";
close(OUT);
exit;
__END__
0742731
02/08/03 01:30ID:4FNUCrqfできました。
すごい勉強になりました。
感謝!
0743nobodyさん
02/08/03 06:08ID:???$value =~ s/%([0-9a-zA-Z]{2})/pack("H2", $1 )/eg;
これはいったいどういう処理をしているのでしょうか?
0744nobodyさん
02/08/03 08:11ID:yBArvQmy自分の所に携帯が無いのでどこを気をつけていいのか教えて頂けませんでしょうか?
Googleで6時間以上探し回っているんですがヒントすら見つかりません。
どなあたかご教授お願いします。
0745743
02/08/03 09:10ID:???s/%([0-9-zA-Z]{2})/pack("H2", $1 )/eg;
というのは %12 や %a7 などにマッチさせて
pack("H2",$1)というのに変換するということはなんとなくわかるんですが
このpack("H2",$1)というのは具体的に何をしているのか解説しているサイト
ないでしょうか?もしくはどなたか答えてくれる方いましたらよろしくお願いします。
0746nobodyさん
02/08/03 09:36ID:f5spmMMH携帯電話のローカルな情報をアップロードするって話なの?
どこに気をつけるとかいう以前にできるか否かは検討したのか。
>>745
perldoc -f pack すると
H A hex string (high nybble first).
とあるよ。
0747nobodyさん
02/08/03 10:09ID:y5M4ReYwhttp://www.goo.ne.jp/default.asp?MT=perl+pack&act.search=%A1%A1%B8%A1%BA%F7%A1%A1&top=gtop&_v=2
0748nobodyさん
02/08/03 12:08ID:???こちらの作ってるスクリプトもそれと同じような構造なのですが、
どうも自分のやろうとしている事はレコードを使わないといけないようですね。
ただ、検索してもレコードやリファレンスの構造がいまいちよく分からないんで、
HTML::Template以外の方法を使うことにします。
それほどこのモジュールにこだわる必要もないんで・・・もうしわけない。
0749nobodyさん
02/08/03 20:59ID:???Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
このようなエージェントを利用して使用ブラウザと使用OSを取得したいと考えています。
例えば上の場合だと
$browser = "IE 5.5";
$os = "Windows XP";
というような感じに代入させたいのですが。。
■ このスレッドは過去ログ倉庫に格納されています