△▲ WebProg 初心者の質問 Part4 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/20 12:10ID:???WebProg 板は初めて。
質問したいけど、どうしたら良いか分からない。
そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。
質問する前に、まずはここを読んでね。
2ch 総合ガイド
http://www.2ch.net/guide/
記念カキコ専用スレ
http://pc.2ch.net/test/read.cgi/php/982575577/
前スレ
http://pc2.2ch.net/test/read.cgi/php/1045091733/
http://pc2.2ch.net/php/kako/1037/10372/1037222063.html
http://pc.2ch.net/php/kako/1030/10301/1030151932.html
お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
0222nobodyさん
03/07/01 20:30ID:???何が言いたいのかぼやけ過ぎててよーワカラン
お前さんが誰(どのレス番か)で、どのレスに対する意見なんだYO
話の前後関係をハッキリさせれ
0223nobodyさん
03/07/01 20:30ID:9B8Cvuqqもっと勉強しなさいな
0224nobodyさん
03/07/01 21:45ID:???それが簡単なことなのかどうかはわからんが、
やらない、やれない、やりたがらないことを
かわりにやることで金を得ることが
悪いことだとは全然思わないんだが……。
てか、それが悪なら世の中悪人しかいないしな。
釣りかなあ。
0227226
03/07/01 23:10ID:???全角の # でもトリップつくんだ(笑い
0229nobodyさん
03/07/02 11:43ID:LFNI6Svrですがサンプルのままだと、発言ボタンをサブミットした時に、その発言内容がテキストボックスに残ってしまうんです。
2回目の発言をする時に一々前回の内容を手動で消すのもメンドウなので、どなたか自動で前回の発言を消す方法を教えて下さい。
0230nobodyさん
03/07/02 11:48ID:???>>229
submit した時は CGI の環境変数 REQUEST_METHOD ってのがあるんだが、
そのテキストボックスを表示している html は恐らく REQUEST_METHOD を
POST でデータを送信しているはずだから、CGI の方で POST が来た時に
どんな html コードをブラウザに渡しているか、その部分を修正すれば
いいと思うが
0231nobodyさん
03/07/02 11:52ID:SoZb7mtb別にGETでもいいじゃんか。
>>229は多分、投稿部分とログ部分をFrameで分けてるタイプのCGIじゃないかな。
その場合、Javascriptを使うしかないわけだが。
で、Javascriptの御問い合わせはWeb制作板へどうぞ。
Web制作
http://pc2.2ch.net/hp/
0232nobodyさん
03/07/02 12:59ID:???0233229
03/07/02 13:12ID:LFNI6SvrPerlはまだ始めたてで、昨日やっと投稿者用のアイコンを付けるのに成功したレベルなんです。
ですから上手く出来るかわかりませんが、試してみますね。
ありがとうございます。
>231さん
そうです、投稿部分とログ部分をフレーム分けしてます。
ジャバスクは割と理解出来るようになったーなんて自分では思ってたんですが、まだまだですね。
Web制作板で聞いてきます。ありがとうございました。
>232さん
他にはどんなやり方があるんですか?
0234nobodyさん
03/07/02 13:50ID:4UnRN0Ia掲示板など来て欲しくないところや、
フォームメールの送信先みたいなのまでロボット検索のせいで見られて
しまっているみたいなんです。
ここんところ、得体の知れないスパムが多くて・・・。
HPで記載しているメルアドをあるソフトが収集して、
それをリスト化してスパムメールを送っているんですよね?
対処法があれば教えていただきたくお願いします。
板違いであれば、指摘してくださいお願いします。
0235nobodyさん
03/07/02 14:07ID:???板違い、こっちでどぞ
http://pc2.2ch.net/test/read.cgi/hp/1056835937/
0236nobodyさん
03/07/02 14:51ID:ZWbTDtsxサンプルコードとかあれば教えてください。よろしくお願いします。
0237nobodyさん
03/07/02 15:14ID:???196 名前:Name_Not_Found sage 投稿日:03/07/01 (火) 10:13 ID:???
>>189
>>191
行儀の良いロボットなら、「わざわざ」 meta タグ読んで動作制御してるけど、
そうでないロボットもいるってことを頭に入れておけ
0238nobodyさん
03/07/02 16:59ID:???とかメッセージでるんですが、このエラーメッセージのコードの意味は
どこで調べればいいのでしょうか?
2とか3とか193とかでるんですが、googleとかで検索すると実際にそのエラーが
ついてるページにHITしてしまいます。
教えてください。
0239nobodyさん
03/07/02 17:05ID:???0240nobodyさん
03/07/02 17:06ID:???OSによって若干違う場合もあるが
ttp://www.h4.dion.ne.jp/~te2hiro/download/syserror/SysError20030311-000.html
0241あぼーん
NGNG0243nobodyさん
03/07/02 20:19ID:???サーバはPerl5で、他人が書いたPerl4互換のスクリプトを使っているんでつ。
やっぱりPerl5に書き換えた方がウマーでつか?
0245nobodyさん
03/07/02 20:34ID:???0246名無しさん
03/07/02 21:58ID:mPqKWSa7どうすれば元に戻りますか?
原因はブラクラ踏んだから。死。
0250nobodyさん
03/07/03 01:02ID:Fgo7r7np買ったら、$ro が1あがり、
負けたら、$mo が1あがり、
$ro 勝 $mo 敗と表示させています。
それで、確立を表示させたいのですが、
その場合には、どこのファイルに、
何て書き込めばいいんでしょうか?
因みに、確立のは、$kaku にしてあります。
教えて下さい。
0252nobodyさん
03/07/03 01:11ID:WcIS+AMFブラウザを閉じるアクションによってCGIプログラムが
起動されるような仕組みを組むことは可能でしょうか。
具体的には、クライアントがログアウト操作をせずブラ
ウザを閉じた場合、最後に必ずログアウト処理をクライ
アントが気付かぬところで実行させたいということです。
JavaScriptかなにかでできるかもしれないとは思うの
ですが、知識が無いためどうしてもそこどまりの状態
です。
もしもご存知でしたら、お教えいただきたい次第です。
宜しくお願いいたします。
0257255
03/07/03 01:20ID:???0258nobodyさん
03/07/03 01:27ID:???強制終了や回線断など、CGIが呼べなくなる事態はいくらでも想像が付く。
前回のアクセスから時間があきすぎていたら再ログイン処理、とするのがいいんでない?
0259252
03/07/03 01:29ID:WcIS+AMF>>254さん
シグナルはブラウザを閉じた挙動に応じて受け取れますか?
考え方がおかしかったらすみません。
どうしてもこの問題はクライアントサイドの問題だと思ったも
ので、、、
>>256さん
1つもアカウントで同時ログイン規制するために、このような
処理が必要となってしまいました。
ロックファイルを作っておき、ログアウトでロックファイルが
消える仕組みを作っているのですが、このような問題が
発生してしまったがために何かいい案があればと思った
次第です。
>>257
やはりクライアントサイドのJavaScriptが一番妥当なの
ですかね。
ブラウザを閉じた瞬間に違うブラウザが立ち上がるも
のがありますよね。
これを新規ウィンドウを立ち上げずにどうにかしたいと
思っているのですが、いろいろ調べてもいまいち見つ
からないため、質問させていただきました。
これからも引き続き調べてみたいと思います。
0261252
03/07/03 01:34ID:???そうですね。たしかにおっしゃるとおりでございます。
管理画面にて、プロセスを切るインターフェイスを
用意しておりますので、回線断等の状況ではそれを
使用する感じでございます。
ログアウト処理というものは実際あまりしてもらえない
みたいで、ブラウザを閉じる処理にやはりいってしまう
のが大多数のこの状況で、どうにかブラウザを閉じる
=ログアウトという処理に結び付けられれば、という
要望があがったため、質問させていただきました。
0263255
03/07/03 01:36ID:???必ずログアウトしないとログインできないようにしたいの?
なら、ログインしてなにかするたびにそのロックファイルのタイムスタンプを調べたら?
もちろん有効と判断した場合はタイムスタンプを更新する。
0264255
03/07/03 01:37ID:???0265nobodyさん
03/07/03 01:39ID:Ctng5CwyHTTPの特性を考えれば、全てのクライアントで有効な方法はないよね。
どういう方法を採るにせよ、ある程度クライアントに頼った実装になる。
シグナルを受け取るというのは、おそらく接続を張りっ放しにして、接続を
断たれた時点で切断とみなす仕様だと思うけど、一定期間でタイムアウトして
接続を切っちゃうようなクライアントに対しては無効。
というより、その程度の目的にしては資源使いすぎ>接続張りっ放し
0267nobodyさん
03/07/03 01:54ID:???0268nobodyさん
03/07/03 01:56ID:???…あぁ、ここ初心者スレか
0270250
03/07/03 02:47ID:Fgo7r7np有難うございました。
$kaku=($ro*100)/($ro+$mo);
で出来ました。
ただ、確率が、73.6842105263158
となってしまいますが、
小数点以下切捨ての時は、どう書いたらいんでしょうか?
あと、何と言うか、この程度の質問に対して、
「意味が分からん」とか「言語を書け」とか、
知ったかぶった回答をする人には聞いていません。
見てるこっちが恥ずかしくなってくるので、
そういう人は、この板には来ないほうが良いと思いますよ。
0273nobodyさん
03/07/03 02:56ID:???> その場合には、どこのファイルに、
どこの?どのファイルにってことか?自分で決めるものなのでは?
> 何て書き込めばいいんでしょうか?
フォーマットのことか?それも自分で決めるものなのでは?
0275250
03/07/03 02:59ID:???ふぅ。どうやら、ここは厨房の溜まり場の様だ。
0277nobodyさん
03/07/03 03:04ID:???0278nobodyさん
03/07/03 03:05ID:???ロジック的に簡単って分かってるのに、
自分の頭を使うことが出来んのかいな。
>「意味が分からん」とか「言語を書け」とか、
>知ったかぶった回答をする人には聞いていません。
言語によっては関数一発で済んだり、済まなかったり
ってことがあるんだがな。
perlだと小数点を丸める関数が入ってるモジュールが
あったりとか。
質問者が明かすべき最低限の情報だと思うぞ>使用言語
0280nobodyさん
03/07/03 05:16ID:???perlだとしたら
http://www.google.com/search?hl=ja&ie=Shift_JIS&c2coff=1&q=perl+%8F%AC%90%94%93_%88%C8%89%BA%90%D8%8E%CC%82%C4
あと、君もこの板には来ないほうが良いと思いますよ。
0281nobodyさん
03/07/03 06:26ID:???逆切れした質問者は放置しなよ。
0282nobodyさん
03/07/03 07:56ID:???常に何の意味もなく、「言語を書け」とか「意味がわからん」とか言われることはないんだ。
そういうことを言われるような質問があることに思い至らないのかなあ。
>>250の質問はまさにそんな感じなんだが。
0283nobodyさん
03/07/03 10:33ID:Y7VxJQQvW3C限定でgoogle検索すると、
http://216.239.51.100/custom?q=cache:RUQIgszOhkwJ:lists.w3.org/Archives/Public/www-archive/2003Feb/att-0102/GetNPostStripped.htm+querystring+limit&hl=ja&ie=UTF-8&inlang=ja
You must use POST if the total length of the URL for a GET,
taking into account the longest possible length for all parameters,
might exceed 2080 characters. I cannot find documentation of this limit for IE 6,
but we have tested it. Don't try to get close to this limit - special characters in the parameters can turn into escapes that use more characters.
If you exceed it the form won't work.
と書いてあって、和訳があやしいので、確認させていただきたいのですが、
結論は、
「getの文字数は2080字だけど、IE6に関しては、(勝手な仕様を組み込んでいるので)文書を
見つけられなかったけど、テストしたら、やっぱり2080字におさめといたほうがいい。」
であってますか?
0284nobodyさん
03/07/03 10:53ID:???英語苦手なんでよくわからないけど、ftp://ftp.rfc-editor.org/in-notes/rfc2616.txtの
Note: Servers ought to be cautious about depending on URI lengths
above 255 bytes, because some older client or proxy
implementations might not properly support these lengths.
これにヒントがない?「URI length」で検索しただけなんだけど・・・
0285あぼーん
NGNG0286nobodyさん
03/07/03 12:04ID:Ctng5Cwyその文章は、要するにIE6でテストしたら制限が2080バイトだったので、
それ以上ならPOSTを使えってこと。
別に世界中のUAがIE6な訳じゃないから、2080文字以内なら安心って
わけじゃない。(ところでこの文章、バイトを「文字数」と書いてる時点で
あんま信用できないような気が)
>>284
RFC2616では、255バイトを超えるURIIは、古いプロキシやクライアントが
扱えない恐れがあるので、「注意」した方が「望ましい=ought to」ということです。
RFC2616にはもっとはっきりしたことも書いてます。
The HTTP protocol does not place any a priori limit on the length of
a URI. Servers MUST be able to handle the URI of any resource they
serve, and SHOULD be able to handle URIs of unbounded length if they
provide GET-based forms that could generate such URIs. A server
SHOULD return 414 (Request-URI Too Long) status if a URI is longer
than the server can handle (see section 10.4.15).
要するに、サーバーはクライアントが要求したいかなるリソースについても
ハンドル可能に「しなければならない=MUST」で、その上無限の長さのURIを
ハンドルできるように「すべきである=SHOULD」だそうです。
つまり、RFC2616的にはGETメソッドの長さは無限ってこと。
ちなみに、<A HREF="">の中に書ける文字列は、HTML2.0で1024文字(RFC1866)
HTML4.01では65536文字(HTML4.01 SGML宣言)のようです。
0287nobodyさん
03/07/03 13:08ID:1Gg+ZsIasub syslog{
my @temp1;
open (SYSIO,"+<$syslogfile");
eval{flock(SYSIO,2)};
@temp1=<SYSIO>;
unshift(@temp1,$nowtime."<>\n");
pop(@temp1) if $#temp1 >= $syslogmax;
truncate(SYSIO,0);
seek(SYSIO,0,0);
print SYSIO @temp1;
close (SYSIO);
}
--------------------------------------------------
function syslog() {
global $syslogfile,$nowtime,$syslogmax;
$temp1 = file($syslogfile);
array_unshift($temp1, $nowtime."<>\n");
$fp = fopen($syslogfile, "w+");
flock($fp, LOCK_EX);
for ($i=0; $i>=$syslogmax; $i++) {
fputs($fp, $temp[$i]);
}
fclose($fp);
}
0288あぼーん
NGNG0289nobodyさん
03/07/03 13:21ID:ADen1LhUNetscapeでは制限無いようですがサーバ側で制限されました。
Netscapeで8100バイト位で
414 Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.
request failed: URI too long
をサーバが返してきました(Apache1.3.26)。
0290あぼーん
NGNG0291286
03/07/03 14:16ID:Ctng5Cwy実際に>>286にあるようにRFCのSHOULDにしたがって無限のURIを受け付けるように
した場合DoSアタックなんかに利用される恐れがあるので、8KBあたりが落としどころ
なんだろうね。
RFCにも、「URIの長さに制限を設けるときは、414を返すように『すべきである=SHOULD』」
とあるので、Apacheの挙動はRFC的には正しい。
0292nobodyさん
03/07/03 15:42ID:ebDC5p25データをinsertする時に既にそのデータが入っていたら
エラー表示したいのですが、
これは一回selectしてデータがあるかどうか見ないと判断できないのでしょうか?
0293nobodyさん
03/07/03 15:45ID:???板違い。ム板かな。
オープンソースDB、Firebirdってどうよ?
http://pc2.2ch.net/test/read.cgi/tech/1035278719/l50
SQL教えてっ!! lt;3gt;
http://pc2.2ch.net/test/read.cgi/tech/1042208762/l50
0295nobodyさん
03/07/03 17:54ID:???あるにはあるけど、荒れ放題だし。ひろゆきがシャレで作った
感が否めなかったので誘導しなかったんだが。
http://pc2.2ch.net/test/read.cgi/db/1057050009/l50
0296あぼーん
NGNG0297nobodyさん
03/07/04 05:11ID:0ZtrchpYhttp://pc2.2ch.net/test/read.cgi/hp/1004494535/l50
0299nobodyさん
03/07/04 21:07ID:UijKjt9Wみたいに、1つのformで複数のsubmit用イメージがある場合、
「英和」「和英」「国語」のどれが押されたかは、
cgi側ではどうやって判断してるんでしょうか?
0301nobodyさん
03/07/04 22:15ID:???GoogleでEnterキーを押して検索するか、ボタンをクリックして検索するかで送られる内容を見比べてみるとわかるかも
# 最近やめたのかなぁ。ボタンをクリックしても「大抵のブラウザでは...」と言ってこなくなったぞ。
0302nobodyさん
03/07/04 22:31ID:E7w4zVYi&penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag);
0303nobodyさん
03/07/04 22:34ID:???0304nobodyさん
03/07/04 22:35ID:???0306nobodyさん
03/07/04 22:36ID:???0307nobodyさん
03/07/04 22:41ID:???if(y),do と do,if(y) が交互に出てくるとちょっと気持ち悪いけど
見た目的には実行文が短い場合はすっきりしてていいと思う。
---
「if(y) であるにせよ doing(x) 」というニュアンスが平行して頭に
浮かんでしまうのは俺だけか、、、
0311nobodyさん
03/07/04 23:02ID:???すっきりかぁ・・・うーん・・・・
実行する文がひとつでもブロックにしないといけないという仕様でなければよかったのかも。
if($n==1) &func(); ←こういうふうに。
0312311
03/07/04 23:06ID:???0314302
03/07/04 23:21ID:E7w4zVYiどうも有り難うございました。
ただ、 'POST' かつ $post_flag が偽
の場合と言うのは、どういった場合でしょうか?
# GETによる不正処理にペナルティと言う項目で、
>>302 のPERL が書かれているのですが、
具体的にどういう場合なのか分からないのです。
$post_flag の意味はsystem.cgiにも書かれて
居なかったので。
0316nobodyさん
03/07/04 23:30ID:???たしかに method が post であることを確認してるのに、さらに post_flag を
立ててるのは不思議な処理には見える。
pc から post で投稿されたことを確認するのに加えて、
連続投稿じゃないかとか、串経由じゃないかとか、NGワードが含まれてないかとか精査して、
条件をクリアーしてたら post_flag を true にする、とかそういう仕様なのかな。
>313
およよ。
でも if が後に来ると条件文より譲歩文に見えるべ。
0317nobodyさん
03/07/04 23:54ID:???googleで引っかかったやつを見た。
>302の $post_flag は env から取った method が入る。
投稿がPOSTでなされたかどうかはこれで判断。
GETメソッドでやるとペナルティが課される。
$method はどうも GET が入ったり POST が入ったりする。
html form を書くときに method 属性を動的に生成するためのもので、
これをもとにデータ投稿が POST かどうかは判定できないんだわ。
つまり、スクリプトがフォームを post で作ったのに($method)、データが
GET で送られてきたら(!$post_flag)ペナルティ、とかそういう感じだと予想。。
ついでに言うけど、こういう質問はスクリプト全文かスクリプトへのリンクが必要。
0318299
03/07/05 02:49ID:???<input type="image" name="ej" >←和訳ボタン
<input type="image" name="je" >←英訳ボタン
のとき、(%in にクエリーストリングをぶちこんだとして)
if'($in{'ej.x'})が真なら和訳、
if'($in{'je.x'})が真なら英訳、
という理解であってますか?
0319299
03/07/05 02:52ID:???●submitボタンを1つのフォームに複数入れるのは、RFCに違反してますか?
●もし違反してないとしたら、submitボタンのnameを同じ名前にするのは、違反してますか?
●どのボタンが押されたかというのは、cgiではどうやって判断するのでしょうか?
0320nobodyさん
03/07/05 03:11ID:???0321nobodyさん
03/07/05 03:31ID:???■ このスレッドは過去ログ倉庫に格納されています