△▲ 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/
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が代入されます。
エラーが出ず、思ったとおりの動きをしてくれるのですが
シングルクォーテーションがある場合とない場合の違いは何でしょうか。
0133nobodyさん
04/12/07 21:59:15ID:bPzR9R/iローカル環境でテストしてます。OSはWindowsXPです。
Webサーバがapacheでは正常に動作するのですが、
IISにするとtie関数でエラーになります。
何が悪いのでしょうか。
レンタルサーバがIISなので、IISで動作させたいのです。
以下が簡略化したプログラムの一部です。
4行目のtie関数でIISでのみエラーが発生します。
use SDBM_File;
use Fcntl;
my %DB;
tie(%DB,'SDBM_File' , "data" ,O_RDWR|O_CREAT, 0644) or die;
0134nobodyさん
04/12/07 22:40:57ID:xwKFeRfzやっぱり言語を1から学んだほうがいいですか?それとも必要な部分を学だけで充分ですか?
時間、期限はそれなりに余裕があります。
0135nobodyさん
04/12/07 22:50:04ID:???私の釣りはどれでしょうww
0136nobodyさん
04/12/07 22:58:25ID:???何のエラーか知らんけど、大抵、IISでは相対パスはダメじゃない?
フルパスなり、レン鯖ならユーザディレクトリのトップからのパスを指定してみたら?
0140nobodyさん
04/12/07 23:11:31ID:???質問してしばらくしてリロードしたら答えもらえないなと思った…(´・ω・`)
とりあえず勉強中なのでいずれ分かるかもしれんです。
0143nobodyさん
04/12/07 23:43:47ID:s930U2tg漏れもまだ始めたばかりだけど、そんなことばっかり。
とりあえず、思ったとおり動けばいいじゃん。
0144nobodyさん
04/12/07 23:48:01ID:???5から変わった。
そんなもんだ。
0145nobodyさん
04/12/08 00:14:50ID:???〃∩ ∧_∧ 定数と区別するために、
⊂⌒( ´・ω・)く 「連想配列の添字の前後は常に引用符で括る必要があります」
`ヽ_っ⌒/⌒c とマニュアルに書いてあったでつ。
別の場所に原因があるのかもね。
0146132
04/12/08 02:41:46ID:???ありがとうございます。さっきからずーとやってるんですが分かりません。
ちなみにphp4.3.6です。
別のとこに原因…ですか。調べるのに1日かかりそうです…
0147nobodyさん
04/12/08 02:45:22ID:???0149nobodyさん
04/12/08 13:10:13ID:pdxf7oGjフルパスにしたらエラーが出なくなりました。
レス頂いた方々、ありがとうございました。
勉強になりました。
0150nobodyさん
04/12/08 13:41:31ID:???プログラムに直接書けばいいのですか?
0153nobodyさん
04/12/08 15:04:57ID:ZAvIRidH<a href="test.cgi?pass=$pass">TEST</a>
例えば、上記の様にHP上でリンクから値を引き回すとURLに
http://www.*****.com/cgi-bin/test.cgi?pass=***
の様に値が表示されてしまうのはどの様にして回避すればよいですか?
すべてsubmitボタンにしてhiddenにするわけにもいかないので。
0155nobodyさん
04/12/08 15:53:26ID:ZAvIRidH回答ありがとうございます。
Javascriptでそんなやり方があるとは知りませんでした。
記述等詳細はJavascript板で聞いた方が良いですか?
0156nobodyさん
04/12/08 15:58:12ID:???0157nobodyさん
04/12/08 16:55:29ID:ZAvIRidH上記の質問の記述と似たようなソースの説明があるサイト等をご存知ないでしょうか?
ググッてみたものの、良いサイトが見つからなかったので、
もし156氏が宜しければ教えてください。
0158nobodyさん
04/12/08 17:02:57ID:???0159nobodyさん
04/12/08 17:14:36ID:ZAvIRidHJavascript板で質問しました。
0161nobodyさん
04/12/08 17:40:38ID:ZAvIRidHマルチするつもりではなかったのですが、
スレ違いなのでJavascript板でも聞いてしまいました。
すいませんでした。
0162nobodyさん
04/12/08 18:25:12ID:???0163nobodyさん
04/12/08 19:06:33ID:ZAvIRidH少しは落ち着いたらどうですか?
0166nobodyさん
04/12/08 22:59:19ID:+AeusHNjオンクリックでjavascriptでごにょごにょしてポストするってことですよね?
0167nobodyさん
04/12/09 00:16:54ID:DwO4pp5GVIP 男前代表をパペットマペット1位にしちゃう パート3
http://ex7.2ch.net/test/read.cgi/news4vip/1102507871/
↑のスレにて只今日テレの不正スクリプトを暴くスーパーハカーを募集中!
0168nobodyさん
04/12/09 00:22:48ID:???phpの設定をいじろうと
php_flag magic_quotes_gpc off
と記述したのですが、いくらやっても500エラーが出てしまいます。
Options Includes ExecCGI等を記述などは利くので、
間違いなく.htaccessへの記述は有効なのですが、
php関係の設定のみ記述できないという可能性はありますか?
それともたんなる私の記述ミスなのでしょうか?
0169nobodyさん
04/12/09 01:51:03ID:???0171名無しさん
04/12/09 05:11:22ID:aEgBfSzeをダウンロードして
ttp://taisen.mycom.co.jp/taisen/
ボタン”対局室に入る”
というようにwebページ上からゲームを起動するには
どうすればよいのでしょうか?
どんな技術が使われているのかわからないので
検索にも困ってます。
どうぞおしえてください。
0172nobodyさん
04/12/09 05:35:22ID:???Apache は設定できる項目を制限できるので PHP の設定を変更できない可能性はある。
.htaccess 許可してるならそのへんも許可してるとは思うが……
まぁそのへんはレンタル鯖の仕様を見れ。自宅鯖じゃないんだろ?
とりあえず Apache モジュールの PHP じゃなくて CGI 版の PHP だったらエラーになるだろうから確認しれ。
<IfModule mod_php4.c> ←PHP 5.x.x ならmod_php5.c な。
php_flag magic_quotes_gpc off
</IfModule>
これで 500 が出なければ CGI 版だろ。
0174nobodyさん
04/12/09 17:43:12ID:HVrzYjrs最初の投稿は管理者だけができて、ゲストはレスのみができる、無料画像掲示板(公開日記)はありませんか?
よろしくお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています