△▲ 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/
0485nobodyさん
05/01/18 02:49:15ID:???0486nobodyさん
05/01/18 08:53:28ID:lu6uYrWFPHPはよく聞くんだけどPerlは聞かないものですから。。
0488nobodyさん
05/01/18 10:39:51ID:FRusPSQ70489nobodyさん
05/01/18 13:36:46ID:???してることは一緒。
0490nobodyさん
05/01/18 17:18:46ID:???ログは、どんどん蓄めて見るときに一斉に解析するか、
アクセスがある毎に解析するか、
負担・処理速度から見てどちらが良いですか?
ファイル用とMySQL用の二つをPHPで作っています。
0492nobodyさん
05/01/18 20:35:09ID:???入室中でもプルダウンのセレクトボックスで文字色選べる奴をつかってまして。
でもあまり聞きなれない名前の色名を書いておくと、どんな色か分からず決めづらいので
このセレクトボックスの中の文字をそれぞれの文字色にしようと思っているのですが、
これはどうしたらよいでしょうか?
「入室後のフォーム計算」とある部分に
# 文字色
foreach (0 .. $#iro2) {
if($in{'irom'} && $iro2[$_] eq 'white' && $iro eq $irom){ $ch = ' selected';
}elsif($iro eq $iro2[$_]){ $ch = ' selected';
}else{ $ch = ''; }
$iros .= "<option value=\"$iro2[$_]\"$ch>$iro1[$_]\n\t";
}
とあるので間違いなくここだと思うのですが・・・・
$iros .= "<option value=\"$iro2[$_]\" style=\"color:$iro1[$_];\"$ch>$iro1[$_]\n\t";
では動きませんでした。
宜しければ教えてください。
0493nobodyさん
05/01/18 21:53:09ID:???0494nobodyさん
05/01/18 22:06:00ID:???どっかでロジックが間違ってるんだろけど 見るのマンドクセ(;´Д`)
0495nobodyさん
05/01/18 23:10:47ID:???0496nobodyさん
05/01/19 01:34:46ID:???0497nobodyさん
05/01/19 02:15:25ID:hI5VxZ7oほしいのですが、どこかにないでしょうか?
0499nobodyさん
05/01/19 10:56:20ID:???既にインストールされているアプリケーションを呼び出す方法にはどんな方法がありますか?
Javascriptで
wshshell = new ActiveXObject("WScript.Shell");
wshshell.run(実行ファイルのパス);
をする方法はすぐに思いつきましたが、Hangameのものと比べると挙動がちがうような・・・
0500499
05/01/19 10:57:06ID:F2NcmvSG0501nobodyさん
05/01/19 11:23:27ID:???0503nobodyさん
05/01/19 14:28:23ID:???0504nobodyさん
05/01/19 15:25:10ID:UaF+BA7Hユーザーエージェントの値で画像やページサイズを変えようかと思ってるのですが、
携帯のスペックをユーザエージェントから判別して分類してくれるような
Perlのモジュールかライブラリはないのでしょうか?
実は今、各社の公式サイトでユーザエージェントでの値とその機種のスペック
(表示サイズ上限や可能な画像形式など)を自分でまとめてるんですが、
かなり面倒な作業なのでちょっと休憩中です^^;
もしもこういうのがあったら便利なので現在モジュールとして配布されていないなら
今回まとめたものを私がモジュール化してCPANに提供しようかなと思ってますが・・・・
別に必要とされてないからないだけなんですかね?
0505nobodyさん
05/01/19 15:39:04ID:???携帯用のCGI配布サイトなどでそれぞれ独自に用意してたりすることもある。
常に鮮度を維持できるよう保守するならCPANに上げるのもいいが、
そうでないならやめとけ。
0506nobodyさん
05/01/19 17:36:01ID:BV9nKEHAサーバはAN httpdでOSはWinxphomeです。
cgi-lib.plの使い方が分かりません。
test.htmlから<FORM method="POST" action="./test.cgi">としてtest.cgiにデータを送ります。
そうすると500エラーがでるのですがなぜでしょうか?
test.cgiの内容は以下の通りです。
[test.cgiの内容]
#!/usr/bin/perl
require './lib/cgi-lib.pl';
&ReadParse;
print <<"HTML";
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>cgi-lib.plの練習</TITLE>
</HEAD>
<BODY>
<BR>
$in{'radio'}
<BR><BR>
<BR>
$in{'moji'}
</BODY>
</HTML>
HTML
exit;
test.cgiのあるディレクトリにlibというディレクトリを作りその中にcgi-lib.plをいれています。
0508nobodyさん
05/01/19 17:47:49ID:BV9nKEHAあと上記の問題はprint "Content-type: text/html\n\n";を入れていなかっただけでした。
スレ汚しすいませんでした。
0509nobodyさん
05/01/19 17:49:44ID:???0510492
05/01/19 17:51:44ID:???っていうか結果的に1字違うだけ…OTZ
0511nobodyさん
05/01/19 17:57:01ID:BV9nKEHA0512nobodyさん
05/01/20 22:03:29ID:???言語はPerl、PHP、どちらでもかまいません。
0513nobodyさん
05/01/20 23:47:59ID:???SOAPの質問をするにあたって適切なスレがあればご教授下さい。
下記のスレを発見したのですが、
過疎ってたので他に適切なスレがあるのではと予想してるのですが・・・。
゚。o SOAP o。゚
http://pc5.2ch.net/test/read.cgi/php/1062142374/
本スレの趣旨とは方向性が違う質問で申し訳ないですが
宜しくお願い致します。
0515nobodyさん
05/01/21 02:36:19ID:???http://pc5.2ch.net/test/read.cgi/tech/1031149340/ とか
SOAPって要はRPCで
アプリケーション的に見れば WWW 用途でのみ使われるとは限らないし
トランスポート的に見ても http だけが使われるとは限らないから
WebProg板でなくプログラム板、てのが衆目一致するところだと思う
0517513
05/01/21 08:17:38ID:???そちらの方に行ってみます。
誘導有難うございました。
0518nobodyさん
05/01/21 18:06:02ID:???ログをカンマ区切り(CSV形式?)で保存したいのですが
データー中にカンマが入力された場合の対処法をご教示願いたいです。
一旦カンマを他の文字に置き換えて保存し、表示するときに再変換だと
たまたま置き換え予定の文字が入力されると困りますよね?
自分のブラウザだと&#044;でカンマが表示されるので保存時にこれに置き換えようと思うのですが、
他のブラウザでの対応状況はどうなんでしょうか?
#カンマ区切りヤメロは無しの方向で…
0519nobodyさん
05/01/21 18:48:39ID:???0520nobodyさん
05/01/21 22:02:32ID:???0521518
05/01/21 22:33:38ID:???後出しになって申し訳ないけど、実は金額等のデータが多くなりそうなんです。
で、表示狂うとヤバイんでブラウザの対応状況にちょっと慎重になってました。
大丈夫そうとのことなので予定通りいってみます。
レスありがとうございました。
0522nobodyさん
05/01/22 00:00:39ID:???0523518
05/01/22 00:34:16ID:???そうか、金額だけの場合なら
カンマ使った投稿→カンマ削除して保存→表示のときに桁区切り
カンマ無し投稿→そのまま保存→表示のときに桁区切り
ですね。
金額部分は、うまいこと別の入力欄を作ることにします。
で、他のデータ部は多少表示おかしくなっても大丈夫だろうってことでカンマを変換。
万事解決。ありがとうございました。
0524nobodyさん
05/01/23 14:57:38ID:???0525nobodyさん
05/01/23 14:58:49ID:???0526nobodyさん
05/01/23 15:12:27ID:???・2.0.**ならMonitor Apache Serversを起動して見る
・再度起動してDOS窓のメッセージを見る
・タスクマネージャを見る
0528nobodyさん
05/01/23 15:16:09ID:???HTMLのなか
http://pc5.2ch.net/test/read.cgi/php/1106452339/
1 名前:nobodyさん[゛けせ] 投稿日:05/01/23(日) 12:52:19 ID:???
HTMLのなかに書くものや書かないものをの仕方を(両方)教えてください。
2 名前:nobodyさん[sage] 投稿日:05/01/23(日) 12:53:24 ID:???
>>1
板違い。
削除依頼を出してWeb制作板の初心者スレへ。
0530nobodyさん
05/01/23 18:21:13ID:wLSidl6d初心者でもつくれるのでしょうか?
自作のイラストでつくってみたいのですが・・・
0532nobodyさん
05/01/23 18:27:38ID:???全部読めば掲示板とか自分で作れるようになりますか?
最低限覚えた方がいいことって何でしょうか?
0533nobodyさん
05/01/23 18:28:17ID:wLSidl6dさっそくしらべてみます。ありがとうございました
0535nobodyさん
05/01/24 02:37:07ID:2LpShH3otruncate(FL, 0);
で先にクリアしてから書き込むか、
書き込んでから
truncate(FL, tell);
で後ろを削るかで悩んでいます。
どちらが正しいとかではなくて信頼性や
こちらの方が一般的だとかあるのでしょうか?
if(open(FL, ">>$file")){
flock(FL,2);
seek(FL, 0, 0);
print FL "あいうえお";
truncate(FL, tell);
flock(FL,8);
close(FL);
}
if(open(FL, ">>$file")){
flock(FL,2);
truncate(FL, 0);
seek(FL, 0, 0);
print FL "あいうえお";
flock(FL,8);
close(FL);
}
0536nobodyさん
05/01/24 04:37:22ID:???俺は、スクリプトを作る以上に、スクリプトの名称に一番悩むんですけど
みんなどうやって名前付けてます?
0538nobodyさん
05/01/24 11:21:56ID:???http://localhost/
か
http://127.0.0.1/
で表示されれば動いている。
0539nobodyさん
05/01/24 12:13:09ID:???書き換えるなら>>じゃなくていいでしょ
if(open(FL, ">$file")){
flock(FL,2);
print FL "あいうえお";
close(FL);
}
0540535
05/01/24 12:22:56ID:2LpShH3oすいません、表現が正しくなかったようです。
535に書いたのはファル操作中に使っているものを
抜粋して記入してしまったためです。
0541nobodyさん
05/01/24 12:42:45ID:???0542535
05/01/24 13:15:59ID:2LpShH3o速度的にも前者ですか!?
少し意外でした。
0543nobodyさん
05/01/24 13:31:10ID:???http://homepage1.nifty.com/fprogorg/otihuf/200007.htm#27-truncate
0544nobodyさん
05/01/25 00:56:33ID:???CGIをアップロードしている途中でそのCGIにアクセスがあると500ServerErrorになってしまいます。
この確立を下げる対策として、別名でアップロードしてから、
リネームすればエラーになる確立は減りますが、
これを自動でやってくれるFTPソフトはありませんでしょうか?
もしくは他によい対策方法があれば教えてください。
0546nobodyさん
05/01/25 03:28:36ID:???0548nobodyさん
05/01/25 23:36:09ID:???0549nobodyさん
05/01/26 10:25:07ID:???truncate(FL, 0);やtruncate(FL, tell);って
面倒だからいつも省いてるけど、実際必要ですか?
今までファイル壊れたことないんだけど、たまたまなのかな?
0550nobodyさん
05/01/26 11:03:05ID:???モードによって必要
wモード、つまり>に於いては自動で最初に
truncate(FL, 0);
される。しかし、例えばr+(+<)モードではこれが行なわれない。
flockを使った保護機構では、ロックをかける時には既にファイルを開いている必要があるので、
ロックする前に中身を変えてしまうwモードは使えない。
そこでr+モードで中身には手を着けず開き、
ロックをかけた後にファイルサイズを0にする、といった方法が取られる訳。
因みにtrunscateを怠ると、新しく書き込んだデータが前より小さい場合、ファイルの末尾にゴミが残る。
0551nobodyさん
05/01/26 11:19:41ID:???flockする時はwモードを使ってはいけない事を知らないと、
「flockはダメだ。ロックしてるはずなのに頻繁に壊れる」
という認識に至るんだろうね。
昔自分がそうだったように…
0554nobodyさん
05/01/26 22:25:31ID:NprQarfg俺はおまいだ!
0555nobodyさん
05/01/26 23:12:54ID:48bT6W6Oみなさん、どんな方法ではかっていますか?
0557nobodyさん
NGNGサーバーBでサブドメインを使いbbs.xxx.com/を可動させます。
この際にログファイルはサーバーAにある場合、
サーバーBでCGIを動かすのにサーバーAにあるログファイルを
開く事はできるのですか?
同じサーバーであれば './data.txt'; 等でいいのですが
上記の場合どのようになるのでしょうか?
0559nobodyさん
05/01/27 00:40:30ID:???open関数とかじゃ無理
サーバAにデータ内容を送るCGI置いてサーバBから取得する方法か
Telnetでログインしlessコマンドの結果とか
技術あるならSOAP使うなりなんとでもあると思うんだが
0560nobodyさん
05/01/27 00:46:02ID:YyOdxZNb即答ありがとうございます。
bbs.xxx.com/bbs.cgi
を実行したとすると直接サーバーAにあるファイルは
openできないと言うことでしょうか?
データ内容を送るCGI置いて…云々という事は
CGIを実行するサーバーにデータを送らなければならないということですか?
0562549
05/01/27 01:45:48ID:???やはり使うべきなんですね…。
>wモード、つまり>に於いては自動で最初にtruncate(FL, 0); される
>flockする時はwモードを使ってはいけない
いつもPerlメモに載ってる排他制御を使ってるんですが、flock使うときは気をつけます。
考えてみたら+の付くopenは使ったことなかったかも、ほんとたまたまだったのか…汗
>たまたまファイルサイズが減らないファイルだったからだよ。
ログファイルから一行削除とかもやってたんですが。
やばいやばい。早速見直してみます(焦
0564549
05/01/27 09:01:42ID:???実験と推測で下記のような結論?になったのですが、あってますでしょうか?
open(OUT, "> xxx.txt");
この時点でファイルが空になる。
つまり自動でtruncate(FL, 0);になる。#よってtruncateもseekも必要なし?
この後にflockをかけてもopenとflock間に他プロセスが割り込む余地があり、
flockをかけていないのにファイルが空というのはヤバイので、このモードではflockを使うべきではない。
open(OUT, "+< xxx.txt");
この時点ではファイル内容そのまま。ファイルポインタは先頭。
ただしopenからflockまでの間に他プロセスが割り込む余地があるので、flock後にファイルポインタを先頭にセットしなおす必要がある。
内容が残ったまま先頭から書き込む為、ファイルサイズが減る場合にゴミが残るのでtruncateが必要。
open(OUT, ">> xxx.txt");
truncateは不必要。
しつこくて申し訳ありません。今度、プログラミングPerl買います…
0565nobodyさん
05/01/27 12:46:36ID:3YRNxOT8初めてcgiの勉強をしています。アクセスカウンタを作るという所でいきなりこけています。
#!/usr/local/bin/perl
# アクセスカウンタ
print "Content-type: text/html; charset=Shift_JIS\n\n";
# カウントファイルから読み込み
open(IN, "< counter1.txt");
$count = <IN>;
close(IN);
# カウント増加
$count++;
# カウントファイルに書き込み
open(OUT, "> counter1.txt");
print OUT $count;
close(OUT);
print <<EOL;
<html>
<body>
<p>あなたは $count 人目のお客様です</p>
</body>
</html>
EOL
0566565
05/01/27 12:50:27ID:3YRNxOT8「0」とだけ入力したcounter1.txtというファイルも同じディレクトリに保存すれば
動くはずらしいのですが、動きません。ココがクリアできないと説明書の先に進めませんつД`)・゚・。・゚゚・*:.。..。.:*・゚
自分でいくらじーーっとみてもどこの記述が間違っているのかわかりません。
間違ってるところ教えてください。よろしくお願いします。
0567565
05/01/27 12:53:08ID:3YRNxOT80568nobodyさん
05/01/27 13:27:19ID:???そのCGIはどこまで動くの?
ちゃんとHTMLは出力されてるのか?
出力された場合「あなたは @@ 人目のお客様です」
@@の中はどんな値が入ってるの?
値がないならcounter1.txtのファイルパスが違うんじゃないの?
$count++;のところに$count = "test";に変えてcounter1.txtにtestって保存されるかチェックした?
0569nobodyさん
05/01/27 14:39:30ID:???どういった手順なのか載ってるサイトありますか?
クライアント側のやることを知りたいのです。
0570nobodyさん
05/01/27 14:44:52ID:???>>550-551で説明した範囲ではほぼ完璧
>ただしopenからflockまでの間に他プロセスが割り込む余地があるので、
>flock後にファイルポインタを先頭にセットしなおす必要がある。
これはファイルハンドル単位で別じゃ・・・
まあ、この場合疑わしきはやっておいた方が良いか
a(>>)モードの場合、ロックするまでに他のプロセスで、
追記される可能性があるので、ロック後にはtruncateは無用だけど、
ファイル末尾にseekする必要あり。
また、flockを手動で解除する場合は、
その前にはバッファをフラッシュしてやらないと、
ロック解除後に書き込まれることになる可能性がある。
closeに任せる場合は・・・知らない。
実験した以上は自動でフラッシュされている模様
>>565
仮にcounter1.txtが無くともエラートラップして無いから、
そのまま突き進んで動くはず・・・
どこかのUNIX系サーバにアップロードして動かしているのであれば、
そのサーバの設定とcounter1.txtのパーミッションをチェック。
SuExecが動いてないとパーミッションを666にしないとファイルに書き込めない
0571nobodyさん
05/01/27 14:52:19ID:???>a(>>)モードの場合、ロックするまでに他のプロセスで、
>追記される可能性があるので、ロック後にはtruncateは無用だけど、
>ファイル末尾にseekする必要あり。
これ、昔はともかく今はいらんだろ。
書き込みで呼ばれるwrite(2)の時はlseekで末尾に移動する。
0573565
05/01/27 21:04:18ID:???ええと、何も表示されず、「Internal Server Error」となります。
testに変えてやってみましたがなにも保存されませんでした。
>>570
サーバーはローカルです。apache2です。OSはXPです。
ローカルで動かすときでもパーミッションの設定はいるのでしょうか。
どうやって設定するんでしょう?
お二人とも有難うございます。すみません、こんな初歩の初歩みたいなことお聞きして。
0575nobodyさん
05/01/28 00:09:51ID:???>>288 さんと同じような症状がでてしまいました。
phpMyAdminをFreeBSD5.3+Apache2.0.52,PHP4.3.10に入れたのですが、やはり
Call to undefined function: pma_reloadnavigation() in /usr/local/www/phpMyAdmin/header.inc.php
が出てしまいます。
PMA_reloadNavigation()ってのは'libraries/common.lib.php'中で定義されてて、
header.inc.php の頭でrequire_once('./libraries/common.lib.php')しています。
なのにどうしてundefined functionになるのかが判りません。。
どなたか判る方おりませんでしょうか?
>>288 さんはどうやって解決されたのでしょう?
0576nobodyさん
05/01/28 00:25:11ID:???CGIProgを書いている方は、クライアントが送ってきたデータの日本語エンコーディング方式をどうやって判断しているんでしょう?
大抵WinIEのため、Shift-JISでしょうが、それでもEUCやUTF-8も有り得ます。
デコードする処理が1通りだと処理が楽だと思いますので、
そもそも、サーバーからブラウザにエンコーディング方法を指定できないでしょうか?
例えばShift-JISでエンコードしろよ、とです。
HTMLフォーム上からの場合はこのページの文字コードが基準でクライアントがエンコードするようですが、
クライアントに明示的に指定しておくにはどうしますか?
<FORM acceptCharset=''>はこのリクエスト送信へのサーバーのレスへの指定だそうで。違いますね。
HTTPサーバー自体の設定として指定ヘッダを乗せのでしょうか?あるならば?どんなものでしょう?
0577549
05/01/28 06:18:10ID:???>これはファイルハンドル単位で別じゃ・・・
あっ、指摘ありがとうございます。
後段は自分には難しくて理解できませんが…
ちょっとずつではありますが理解していくうちにperl面白くなってきました。
これから勉強していこうと思います。ありがとうございました。
>>571
勉強になりました。
0578nobodyさん
05/01/28 07:43:12ID:???PC環境のみですが表示した文字コードで帰ってくるものとして作っています。
JcodeやPHPの自動判別だと、かえって誤判定しますから
0579nobodyさん
05/01/28 10:45:24ID:81532teskorea/chinese/その他を選択した場合は正しく更新されたが、日本語を選択したらエラーが出ます。
こちらはWinXPSP2/Apache 1.3.33/PHP 4.3.10/MySQL 4.1.9
0580nobodyさん
05/01/28 17:36:33ID:mrttjmp/数分後にブラウザをリロードしたら、エラーが出なくなってた。なんなんだ・・・。
0581nobodyさん
05/01/28 22:15:35ID:???0582nobodyさん
05/01/28 23:01:14ID:Yva4N6l7どちらに書けばいいんでしょう?
0583nobodyさん
05/01/28 23:11:18ID:???0584nobodyさん
05/01/29 00:07:08ID:???具体的なコードの質問
【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/
それ以外の質問
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
0585nobodyさん
05/01/29 06:46:54ID:???■ このスレッドは過去ログ倉庫に格納されています