△▲ WebProg 初心者の質問 Part11 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/11/28 18:58:29ID:???質問したいけど、どうしたら良いか分からない。
そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。
質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。
2ch 総合ガイド
http://www.2ch.net/guide/
お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
関連情報は
>>2-3
前スレ
△▲ WebProg 初心者の質問 Part10 ▼▽
http://pc5.2ch.net/test/read.cgi/php/1095633323/
003229
04/12/01 23:13:01ID:???なにをとち狂ったのか
==========================
strong, b {
font-weight: bold;
border-bottom: 2px solid #fff;
}
===========================
border-bottom: 2px solid #fff; こんなものが挟まってました('A`)
貴重な3レスを無駄に消費してごめんなさい。
003323
04/12/02 08:54:19ID:???ありがとうございました。m(_ _)m
リダイレクトでopenして取得する方法は思いついたのですが、
こんな方法があったんですね。^^
勉強になりました、ありがとうございました。
0034nobodyさん
04/12/02 10:48:57ID:???ログファイル内に<TEXTAREA>を閉じる</TEXTAREA>という文字列があると、
ログファイルの</TEXTAREA>の直前までしか表示されず、その後の部分はHTML部分にベタに出力されてしまいます。
これを回避したいのですが、何かいい方法は無いでしょうか。
また、ログファイルを読み込む際にタグの<>&"などの記号を変換するというのは無しでお願いします。
ログファイルを読み込んで、それをさらに上書き保存する機能があるので、変換して表示してしまうと、
変更しなかった部分のタグの記号なども変換されてしまうので。
0035nobodyさん
04/12/02 10:52:05ID:???0036nobodyさん
04/12/02 11:02:47ID:???そもそもTextareaってPCDATA領域だろ。<や"は含めないぞ。
0037nobodyさん
04/12/02 11:09:19ID:???0039nobodyさん
04/12/02 11:29:37ID:???0040nobodyさん
04/12/02 11:37:27ID:???ログファイルを展開する時に、<TEXTAREA>があった場合にフラグ立てて、
フラグあれば注意書きで「TEXTAREAのタグを変換してるから、見直してから保存しれ」とでも書けばいいじゃん
0042nobodyさん
04/12/02 12:19:36ID:???何の問題もない話だ。
0043nobodyさん
04/12/02 12:30:32ID:???通常のタグまで置換されたらやっかいだと思われ。
>>34
読み出す際に、</TEXTAREA>がある行だけを変換するのはどうよ。
んで、書き込む際に</TEXTAREA>がある行だけまた変換するとか。
004443
04/12/02 12:47:17ID:???初めて知った。
0045nobodyさん
04/12/02 12:56:28ID:???0047nobodyさん
04/12/02 13:24:32ID:???ものすごく頭の悪い発言してください その3
http://pc5.2ch.net/test/read.cgi/hp/1092941001/
004834
04/12/02 13:36:23ID:???とりあえず、読み出したファイルに</TEXTAREA>があった場合、
if ($_ =~ /\/TEXTAREA/i) {
$_ =~ s/<\/textarea>/<\/TEXTAREA>/i;
}
として、<TEXTAREA>が閉じないようにしてみました。
0049nobodyさん
04/12/02 13:46:41ID:???0050nobodyさん
04/12/02 13:48:03ID:???プレビューする時に画像は送信したくありません。
純粋に入力された本文のみのプレビューにしたいと思っています。
(独自タグで強調やインデントができるので、投稿前に確認したい。)
formをネストさせるわけには行かないし、何かいいアイデアないでしょうか?
0051nobodyさん
04/12/02 14:20:39ID:???0052nobodyさん
04/12/02 14:26:22ID:???どうしたらいいのか書いてください。
005350
04/12/02 14:31:54ID:???そのゴニョゴニョが良く分からないのですが、イメージ的には
getElementByIdなりで必要な要素だけ取り出して、document.write()なりで新たにform作って
そのformのsubmitまで自動でやるって感じでしょうか?
何か馬鹿なこと書いてる気もしますが、あくまでもイメージですが・・・。
0054nobodyさん
04/12/02 14:39:07ID:vSUS9d6+2,Linux+Perl5+PostgreSQL+unixODBC
2のサーバー上にUPしたperlプログラムから1のサーバーのMSSQLの
データベースにアクセスしたいのですが、うまく接続できません。
かなりの確立で自分のプログラムミスだと思うのですが、どこをどう
いった具合に修正すればよいのかよくわかりません。
use DBI;
# use DBD::ODBC;
$dsn = 'DBI:ODBC:hostname=192.168.1.5;port=1433;dsn=syanai';
$user = 'hoge';
$pass = 'passwd';
$dbh = DBI->connect($dsn,$user,$pass);
ちなみにWindowsXPpro+Cygwin にてDBD::ODBCでやったときには接続できました。
LAN接続なのでiptablesは動作させておりません。
ぐぐってもなかなか実例がなく、use unixODBC;とか間抜けなことやってみたり
したのですが、ダメダメ君のようです。
とにかく接続したいのですが、unixODBCを使用した実例とかおしえてくkださい。m(_ _)m
0056nobodyさん
04/12/02 14:53:23ID:???を動的に付与する・しないができればいいんじゃねーの?
005750
04/12/02 15:57:55ID:???いくつかヒントになるアイデアを出して頂いたので、頑張ってみます。
0059nobodyさん
04/12/03 03:29:18ID:J1wDZcQzttp://msugai.fc2web.com/java/servlet/BeansServlet.html
など参考にして
web.xml,server.xmlなどでマッピングさせて
WEB-INF\classes直下にクラスファイルを置きましたら表示させる事が出来ます
しかしパッケージ化(jp.co〜)などその下にさらにフォルダを作ってしまうと
表示されなくなります。
この場合どうすればいいのでしょうか?
クラスパスなどについても一回一回設定するしかないのでしょうか?
006054
04/12/03 12:04:28ID:v3LwLLkYありがとうございます。
自分なりに調べてみましたところ、odbc.iniの設定をしていない事が判明しました。
そこで再度質問なのですが、odbc.iniの詳しい設定方法など知りたいです。
解説サイトとかでもいいですので、ご存知でしたら教えてもらえると助かります。m(_ _)m
ソースもそうですが、初歩的な設定が何をすればよいのか知らないので、手間取っておりました。
下の3つに関しては接続できましたのでなんとか理解できます。
〇 Linux -> Linux(PostgreSQL)
〇 Windows -> Linux(PostgreSQL)
〇 Windows Cygwin -> WindowsNT(MS SQL Server)
これがほとんど理解していません。
× Linux -> WindowsNT(MS SQL Server)
ソースの記述を除く、odbc.iniの設定以外にMSSQLServerに接続するのに
必要な作業はなんでしょうか?
0061nobodyさん
04/12/03 12:38:06ID:dEjygVC1会員制のサイトを作る場合、
ユーザー個々のデータを保存するのは、
CSV形式、それともユーザーごとにファイルを作成してハッシュ配列で保存、
どちらが妥当でしょうか?
例えばハッシュのイメージとしては、
Id 1
Pass 1234
Name A男
Age 42
Job 会社員
というように考えています。
CSVだと、
1, 1234, A男, 男, 42, 会社員
2, 5678, B子, 女, 30, 営業
・
・
・
(以下リストが続く)
↑こういう形式で良いのでしょうか・・・。
よろしくお願いします。
0063nobodyさん
04/12/03 12:51:30ID:???「良いのでしょうか」という質問なら「悪くはないから好きにすればぁ?」としか答えようがないが
それぞれ長所と短所があるのでそれを把握するのが肝かと。
1ユーザ1ファイルの方式は、1ユーザの処理をする場合には1ファイルだけ読み込めばよい。
一方 CSV だと、何行目にあるかわからないユーザにぶちあたるまで延々データを読む。
なので、そういう場合には1ユーザ1ファイルの方が有利。
一方、全ユーザの一覧を表示する、といった場合だと、この反対になって、CSVが有利。
まあ俺なら BerkeleyDB 使うけどな。
>>62
素直に誘導に従ったのをマルチ呼ばわりするのはかわいそうというものだろう
0064nobodyさん
04/12/03 13:07:27ID:dEjygVC1質問ありがとうございます。
ユーザの数はそこまで多くなさそうなのでCSVを利用するのも良いかと思いましたが、
ユーザ個々にファイル生成して管理しようと思います。
BerkeleyDBというのは初めて聞きました。
何処かのスレでDBD:CSVは良いという書込みがあったのですが、
CSVは使用しないと思うのでBerkeleyDBについて調べてみます。
0065nobodyさん
04/12/03 19:12:12ID:???> BerkeleyDBというのは初めて聞きました。
BerkeleyDBもいいね。dbmね
あと、Data::Dumperでデータ構造そんままもつってのもいいよ。
俺は会員情報とか掲示板のログとかData::Dumperで持たせちゃってる。
開発終わったら、ちゃんとしたdbに持たせようと思ってたんだけど、
結局そんままにしちゃってる、今んとこ
直接editerで見られるし、便利。
あとstorableとかでもいいしね。
csvにする必要あるんかな。
0066nobodyさん
04/12/03 19:17:34ID:dEjygVC1貴重な情報ありがとうございます。
データを格納する形式にも色々あるのですね。
Data::DumperというのもDBの様にSQL文を使用して抽出、作成等を行えるのですか?
これだけファイルをイジる形式があるのに、
ハッシュで格納しようと思っていた僕が愚かに感じてきました。orz
0067nobodyさん
04/12/03 19:40:27ID:???Data::Dumperはそんままperlの変数を格納するの。
use Data::Dumper;
$log_file = 'data.log';
$data = {
# いろんなデータ構造
};
# データ格納
open LOG, ">$log_file" or die "LOG: $!\n";
print LOG Dumper($data);
close LOG;
# データの読み出し
$data = do "$log_file" or die "$log_file: $!\n";
で$dataは格納時のときとおんなじ形で復帰する。
$dataをそんまま格納前変数として使ってください。
パッケージにblessされたobjectでもね。
実際は排他ロックとかも必要だけど
0068nobodyさん
04/12/04 16:46:53ID:bt2hEKmCこちらのサイトのようなamazon web serviceを使用したサイトを
作成したいと考えているのですが、どういった書籍、サイトを読めば
作成できるようになるのでしょうか。ご教授下さい。
0070nobodyさん
04/12/04 18:20:19ID:VoMNXRQV皆さんはHTMLや、スクリプトの中に出てくるHTMLを
大文字か小文字かどちらで書いてますか?
個人的には大文字の方が見やすいんですが、将来的なことを考えると
小文字にした方がいいような気もするし・・・
それが決まらなくてサイト作りへの第一歩を踏み出せずにいます。
0073nobodyさん
04/12/04 18:57:45ID:???0074nobodyさん
04/12/04 19:21:04ID:???WebProg板住人はどっちで書くべきだと思うか聞いてるんですが。
CGIの本買ってもHTMLは大文字だったりするし・・・
0075nobodyさん
04/12/04 19:32:24ID:???0076nobodyさん
04/12/04 19:38:11ID:???0077nobodyさん
04/12/04 19:40:54ID:???0078nobodyさん
04/12/04 19:41:39ID:???0079nobodyさん
04/12/04 20:19:52ID:???0080nobodyさん
04/12/04 22:04:56ID:???0083nobodyさん
04/12/05 13:31:19ID:???みたいな white space を含む URL をエンコードした結果は
http://example.jp/hoge%20fuga/
http://example.jp/hoge+fuga/
どっちになるべきだっけ。前者?
0084nobodyさん
04/12/05 13:59:18ID:???0086nobodyさん
04/12/05 15:12:18ID:???0087nobodyさん
04/12/05 17:00:55ID:Nf5T/ihYどこのディレクトリに置いた方がいいですか?
cgi-binの下にカウンタ用・掲示板用・チャット用などのディレクトリを作って
その中にそれぞれのファイルを置いている状態です。
0088nobodyさん
04/12/05 17:11:35ID:???ちらかさないように一まとめにしときな。
0089nobodyさん
04/12/05 17:43:54ID:???掲示板スクリプトなどをダウンロードすると、ほとんどの場合jcode.plもセットになっていて、
そのバージョンは様々みたいですが、全部同じ一つのjcode.plを利用するようにしても
問題ないんでしょうか?
それともそれぞれ初期設定のまま同じディレクトリのjcode.plを利用するべきですか?
それだとjcode.plが重複してしまうのが気がかりですが・・・。
0090nobodyさん
04/12/05 17:50:02ID:???わからないなら配布されたものを使え。
0091nobodyさん
04/12/05 19:55:19ID:???unpackとhex使うだけで出来るのではないのですか?
しかも半角が文字化け…
0092nobodyさん
04/12/05 21:27:20ID:???自分で判断できないんなら作者の言うとおりにしとけ。
0093nobodyさん
04/12/05 23:40:09ID:???多分sjisでやってるんだろうけど、必ずsjisのデータしか来ないって保障があるなら
使わなくてもいいんじゃない?
ついでに言うとjcode.plが文字化け起すのはgetcodeで文字コード判定が正しく行われないから。
ネット探せば改良版getcode落ちてるし、ある程度の回避策はある。
0095nobodyさん
04/12/05 23:41:48ID:???0096nobodyさん
04/12/06 00:33:29ID:???0097nobodyさん
04/12/06 00:36:15ID:???URIエンコード/デコードと勘違いしていると思われ。
まぁ、今時のブラウザ相手ならjcode.plを使う理由はあんまりないのはたしかだけどさ。
>>96
Content-typeのcharsetのことなら Shift_JIS にしときなはれ。
0098nobodyさん
04/12/06 00:52:57ID:???手元の本にはEUCだと文字化けするけどShift_JISではしないって書いてあります。
010091
04/12/06 01:14:34ID:???「アイウエオ」とクエリ送信
jcode.plでsjisに
↓
半角が文字化け
↓
hexとjcode.pl
↓
やっぱり文字化け
↓
hexだけ
↓
ウマー
↓
hexとjcode.plの半角→全角処理
↓
(´・ω・`)アレ?
だった訳です。それでjcodeは一体何なのか、と。
Perl5.8.0なのでEncode調べて来ます。
さらに質問ですが、ドコモの比較的新しい機種なら間違いなくsjisですよね?
010191
04/12/06 01:20:37ID:???》93
なるほど、詳しい情報ありがとうございます。
》95
ググります
》all
釣りっぽくなってスマンカッタです
0102nobodyさん
04/12/06 01:42:11ID:???0103nobodyさん
04/12/06 01:55:25ID:???そりゃあんたが、SJISで送信し、SJISで処理し、SJISで出力するって環境だからだ。
convertの必要はない。
半角カナが化けるのは、convert(の内部で行ってるgetcode)が半角カナをsjisだと判定できないからだ。
getcode単独で呼んで見ろ。多分undef(判定不能)になる。
なので、ネット探してもうちょいマシなgetcodeを使って文字コード判定を行い、
convertに変換元の文字コードもちゃんと指定すれば良い。
0104nobodyさん
04/12/06 02:10:02ID:OXb69TxYブラウザに表示するCGIを作りかけてたんだけど
「Content-Type ヘッダが正しくありません」ってエラーが出るのです。
どこで間違えてるのかわからんので
とりあえず画像を読み込んで表示するだけのスクリプト書いたんだけど
やっぱりContent-Typeのエラーが出ます…
すみませんが、違う目で見てはくれませんか。
#!/usr/bin/perl
use strict;
use Image::Magick;
my $image = Image::Magick->new;
my $file = "hyousyou.gif";
$image->Read($file);
$image->Emboss(radius=>2, sigma=>1);
print "Content-Type: image/gif\n\n";
binmode STDOUT;
$image->Write('gif:-');
undef $image;
exit;
0105nobodyさん
04/12/06 02:11:34ID:OXb69TxY0107nobodyさん
04/12/06 11:29:27ID:???jcode.pl を正しく使えば、半角カナも正しく処理できる。
その手元の本の言っていることも、正しく使った場合の話だろう。
ただ現実には正しく使えてないことが多いかもしれん。
jcode.pl には、getcode と言って、
文字列のコードが sjis か euc か jis かを判定する関数があるのだが、
半角カナを含む文字を食わせると、この関数が誤判定を起こす。
一方 jcode.pl の convert 関数は、第三引数を省略すると、
getcode を使って入力文字列のコードを判定して、その上で変換を行なう。
入力文字列に半角カナが交じっていると、判定をしくじるので、変換にも失敗する。
入力文字列のコードがわかっていれば、
それを convert の第三引数に指定することで、正しく変換できる。
まあ「わからないから jcode.pl を使う」というケースが多いとは思うけど。
誤判定の問題は jcode.pl の責任ではない。
半角カナを含む文字列のコードを100%正しく判定することは原理的に不可能。
半角カナ対応の改良版 jcode.pl も出回っているが、
それも常に正しく判定できるわけではなく、
「たいていの場合正しく判定できる」と言うのが正しい。
POSTデータの文字コードを判別したい場合、
半角カナを含まない文字列を form に hidden で埋め込んでおいて、
そちらを getcode で判定して、
というのがベストなやり方だと思う。
0108nobodyさん
04/12/06 12:42:33ID:ZIRw4PTvpealでカウンターを作ったのですが、これをimgタグで呼び出すには
どういったタグを使えば良いでしょうか?
初心者丸出しの質問ですみません。
0110nobodyさん
04/12/06 12:44:16ID:ZIRw4PTv#!/usr/local/bin/perl
$num=&getCount;
print "content-type:text/html\n\n";
print "<html><head><title>count.cgi</title></head><body>";
print "<center>";
print "訪問者数は<b>$num</b>人です";
print "</center>";
print "</body></html>";
exit;
#------------
sub getCount{
my($num);
open(FH,"+<count.txt")
|| open(FH,"+>count.txt");
flock(FH,2);
$num=<FH>;
chop($num);
$num++;
seek(FH,0,0);
print FH "$num\n";
flock(FH,8);
close(FH);
return $num;
}
やってみたタグは
<IMG SRC="count.cgi" WIDTH="1" HEIGHT="1" BORDER="0">
でしたが、できませんでした。
おねがいします。
0111nobodyさん
04/12/06 12:48:35ID:???0112nobodyさん
04/12/06 12:50:53ID:???でも、Perlのソース見るとテキストのだよな。
テキストでカウンタを呼ぶんなら、CGIはJavascriptを出力して、
print <<"EOF";
<!--
document.write("$count");
//-->
EOF
HTMLでは
<SCRIPT type="text/javascript" src="http://www.hoge.com/counter.cgi"></SCRIPT>
と書いてCGIによって出力されたJavascriptを呼べばいける。
0113nobodyさん
04/12/06 13:16:41ID:???0115nobodyさん
04/12/06 22:49:06ID:???POSTに半角カナ以外の文字を入れて判別させる
方法をやりたいのですが、どのように書けばよいのか分かりません。
デコードは、&で切り、foreachさせた中でunpackし半角から全角にしています。
このままでは、判別用の文字はsjis、半角を入れた方はeucになってしまいます。 どう書けばいいですか?
0116nobodyさん
04/12/06 23:23:44ID:???0117JAPU
04/12/06 23:26:56ID:???質問する際には,わかっていない状態で中途半端な説明をするよりも,1. どのような動作を意図して 2. どのようなコードを書いて 3. どのような結果になったか を書くと良いです。
>> 107 氏の方法は,多くのブラウザの実装ではフォームのすべての値が同じエンコード(文字コード)とすることを利用しています。
絶対に1バイトカナ(所謂半角カナ)を含まないダミー文字列を入れておくことで,
ダミー文字列の文字コード判定 → その得られた文字コードはすべてに適用できる
とすることができるのです。
URIアンエスケープ(所謂デコード)処理された結果が %CGI に入っていると仮定して話をすすめると。
1. FORM には以下のタグを入れておく
<input type="hidden" name="_dummy" value="萌え">
2. Perl中で $CGI{_dummy} を利用して文字コードを判定させる。Jcode の getcode を利用しても良いし,
以下のようにバイト列と比較しても良し。
if($CGI{_dummy} eq "\xCB\xA8\xA4\xA8") {
$enc = "euc";
} elsif($CGI{_dummy} eq "\x96\x47\x82\xA6") {
$enc = "sjis";
} elsif($CGI{_dummy} =~ /\e\$/) {
$enc = "jis";
} elsif($CGI{_dummy} eq "\xE8\x90\x8C\xE3\x81\x88") {
$enc = "utf8";
} else {
$enc = undef;
}
0118nobodyさん
04/12/07 01:58:03ID:nhrA0njE画面のスクロールに追随する形で、画像も上下にスクロールさせる方法はありますでしょうか?
具体的には↓のトップに戻る▲画像のようにしたいのですが、ソースを見てもいまいち分かりません。
http://www.corum.jp/news/notice_list.asp?Gubun=1
お手数ですが、どなたかご教授お願いいたします。
0121nobodyさん
04/12/07 08:52:18ID:???0122nobodyさん
04/12/07 11:44:26ID:yCx6Q2sbモジュールのインスト等を行わずに使えるファイル格納方法で
何かお勧めの方法があったら教えてくださいまし。
私はハッシュ形式でぶち込むくらいしかわからないのので・・・。
0123nobodyさん
04/12/07 11:57:17ID:???これをサーバーに上げる場合、パーミッションをCGIは755、ログファイルとかは666などに設定しますが、
そのCGIが動作しているディレクトリのパーミッションというのはいくつにすればいいのでしょうか。
利用しているサーバーは@niftyのものなのですが、ディレクトリを作成すると勝手に755にパーミッションが変えられてしまいます。
CGIが動作するディレクトリのパーミッションは、どこのサーバーでも755にしておけば問題無いのでしょうか。
0124nobodyさん
04/12/07 13:44:29ID:???状況次第。
・CGI がどのユーザ権限で動くか (suExec など)
・グループが自分およびCGI実効ユーザを含むか
などによって違ってくる。
そのパーミッションが何を意味するのか全く理解しないまま
とにかくこうすれば大丈夫という「おまじない」的な設定を求める人は多いが、
そういう態度にはあまり感心できない。
例えばログファイルを 666 にするのははっきり言ってヤバ過ぎ。
しかし suExec してないサーバだと他に方法がないのでやむを得ずそうする。
そういうことを理解してないってのは、良くないと思うんだがなあ。
0125nobodyさん
04/12/07 18:06:49ID:9m/DtIcc>例えばログファイルを 666 にするのははっきり言ってヤバ過ぎ。
詳しくお願いします。
0126nobodyさん
04/12/07 18:11:43ID:???詳しく
0127nobodyさん
04/12/07 18:33:48ID:???0128JAPU
04/12/07 18:52:29ID:???「自分以外も読み書きできてしまうから。」
これ以外に言うことはあるかな?
一般論として述べれば,データがそのサーバ上にいる誰にでも読み書き出来てしまう (world readable, world writable) のは危険です。
よく分からない人はセキュリティ関係の本1冊読んで。プログラムを書くなら,本来その程度は知っておくべきなので。
0129nobodyさん
04/12/07 19:21:34ID:???0130nobodyさん
04/12/07 19:25:35ID:???状況次第。
・CGI がどのユーザ権限で動くか (suExec など)
・グループが自分およびCGI実効ユーザを含むか
などによって違ってくる。
0131nobodyさん
04/12/07 19:41:34ID:???0132nobodyさん
04/12/07 21:47:52ID:y618AvxhURLに含まれる値をそのまま利用する場合(***.php?id=aaaなどです)
$a = $_GET['id'];
とするとエラーになり、
$a = $_GET[id];
とすると$aにaaaが代入されます。
エラーが出ず、思ったとおりの動きをしてくれるのですが
シングルクォーテーションがある場合とない場合の違いは何でしょうか。
■ このスレッドは過去ログ倉庫に格納されています