トップページ⇒php
982コメント439KB

【 スクリプト改造工房 PART 7 】

■ このスレッドは過去ログ倉庫に格納されています
0001sage03/09/17 15:28ID:ZcvVdw5C
 
#================================
# スレッドの説明
#================================

「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。

質問するときは以下の点に注意して書いて下さい

(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い

※答えてくれないからといって逆ギレする厨はお断り

過去ログ>>2
0618nobodyさん03/12/29 18:32ID:???
KENTのYY-BOARDをjcode.pmでutf-8化しようと思ったんだが、
Cookieの取得で日本語文字コードが上手く入ってくれない。(半角文字は大丈夫だった)
クッキー取得は以下の通り。ドコがいけないのかな?
sub get_cookie {
  local($key, $val, *ck);
  $ck = $ENV{'HTTP_COOKIE'};
  foreach (split(/;/, $ck)) {
    ($key, $val) = split(/=/);
    $key =~ s/\s//g;
    $ck{$key} = $val;
  }
  @ck = split(/<>/, $ck{'YY_BBS'});
  return (@ck);
}

ちなみに、cookie内にはちゃんとutf-8で文字列が格納されてまつ。
0619nobodyさん03/12/29 19:15ID:???
$ck = $ENV{'HTTP_COOKIE'};
これに問題があるようでつね。ちと調べなおしてきまつ。
0620nobodyさん03/12/29 20:37ID:???
とほほのクッキー見て解決しますたつ∀`)
スレ汚しスンマソ
0621nobodyさん03/12/29 20:40ID:???
解決しますたつ
0622nobodyさん03/12/29 21:00ID:4uq0QGby
mini BBSの改造を続けてやっと公開に漕ぎ着けたのですが、
http://www.pine-kz.com/camera/camera.html
ImageMagickでの自動サムネイル作成で、サーバのプロセスサイズから200万画素
という制限(jpegのサイズを色々変えて確認)をができちゃったのですが、なん
か良い回避策ないですかね?

open(IMG3,"$tmp_dir$attc");
$org_sz = newFromJpeg GD::Image(\*IMG3);
@bound = $org_sz->getBounds();
if ($bound[0] > $bound[1]) { $thumW = $img_width;
} else { $thumW = $img_width * $bound[0] / $bound[1];}
print DAT "original width: $bound[0] original height: $bound[1]\n thum: $thumnal $thumW\n";
system("/usr/bin/convert $org_img -scale $thumW -sharpen 80 $thumnal");
$org_sz = "";
close(IMG3);
062362003/12/29 22:05ID:???
つД`)
KENTのスクリプ�dって、Cookieでの文字化けは対応してないのね(「表示」とか)
0624nobodyさん03/12/30 04:19ID:???
>>622
ImageMagickっていいながら、それはGDのソースじゃん。
0625nobodyさん03/12/30 05:36ID:+KTyzjOj
/usr/bin/convert がImageMagickの本体です。
普段 GUIのImageMagickを使っていて、変換後の品質が非常に良いのでこれを
使いたいと思って組込んだんですが、622で質問した後、色々検索してみて、
1)GDでそのままやる
2)PerlMagickを呼ぶ
3)Imagerを呼ぶ
という方法を考えてみました。

メモリー(プロセス)サイズを一番節約できる=アップロードできる画素サイズ
を大きくできる、という方向ではどれが良いのでしょうか?
(jpegを刻んで変換してから連結するというのは見つかりませんでした)
062662503/12/31 05:47ID:Xbx5eY1F
convert のオプションでリソース制限ができるのを読み落していたのですが、
-limit memory 1 -limit map 1 を付け加えるとスクリプトエラーを起さずに
ただサムネイルを作ってくれなくなりました。
自分のパソコンだと、/tmp にテンポラリファイルを作成して作業完了すると
ちゃんと消去して終るのです。なんで?
0627nobodyさん03/12/31 07:27ID:???
>>626
おまい単なる質問ならスレ違いじゃないか?
062862204/01/04 15:26ID:Wl1FVx2l
結局、convertの limitオプションはサーバにインストールされてるバージョン
が少し古くて使えないのだった。
動かない理由は、GDを使って大きなファイルを開いてから更にgetBounds()で
操作しようとした所為だった。関数を呼んだ時点でメモリサイズがサーバの
制限を越えてる。
サーバにインストールされてるソフトを外部コマンドとして呼び出すほうが、
pmベースで操作するより断然有利だ。

・・・Web検索では GDでgetBounds()しか見つからなかったので、その通りに
やってみたのだけど、identifyを呼び出したらメモリ制限で止まらなくなった。
200万画素の制限もなくなりました。(ディスクスペースが大きいといっても
4MBの画像をアップし続けたら100枚足らずだから自粛しないとすぐ終ってしまうが)
0629nobodyさん04/01/05 19:08ID:???
>>628
そもそも、4MBの画像をアップするってどういう状況?
普通はもっと減らしてどうにかするもんじゃないの?
063062204/01/05 22:07ID:FD26CFrG
>>629
もっと減らしてどうにかすると、その先にあるのは?
ディスプレイ上で一覧できるサイズであれば可というのは昔ありました。
写真をクローズアップしてなお解像感が維持されることで、空間把握に繋がる
というのを意識してるんだが。
(プリント時のdpiがどうのというのとは別)
ああ、俺が変態なのかもしれんが。

一覧性というのは、構図とか構成とか意匠とかそういうものの評価に繋がって
いるのだけど、そうではなくてマクロ領域で撮影されたものをもっとクローズ
アップして見たくなるとかそういう欲求の話をしているの。

昔のちんけなスパイ映画かSF映画で撮影した画像をどこまでも拡大していくの
があったじゃない。インチキだってのはすぐ解ったけれど、状況は変りつつある。
(デジタル写真の現状をただ肯定しているわけではないが)
0631nobodyさん04/01/05 22:15ID:???
quota
0632&rle;tset04/01/07 23:18ID:???
test
0633gorigori04/01/08 01:52ID:???
http://sugoiyo.com/thebbscgi/contents/download/
ここのver.2.3.3のスクなんですけど、
このスレッド式掲示板に、htmlタグを使えるようにしたいのですが、
いくらやっても出来ないんです。
ttp://www.civilizer.net/undef/perler/cgisec/502.html
こことかも見てやったんですがさっぱり…

申し訳ありませんがお教えいただけないでしょうか?

0634nobodyさん04/01/08 04:12ID:???
>>633
「いくらやっても出来ない」 とは、自分で改造してみたんだけど出来なかったという意味なのかな?
だったらどんな改造を試してみたのかここで報告してくれ。
0635gorigori04/01/08 12:14ID:???
>>634
申し訳ありません。
自分で改造してみたんです。でも出来ませんでした。

http://v.isp.2ch.net/up/a99bb3f01517.txt
↑スクリプト

タグ関連はsub form_decodeのところにあったので

$string =~ s/</\e/g;
foreach (@tmparray){
my($a,$b)=split(/=/,$_);
$b =~ tr/+/ /;
$b =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr(hex($1))/eg;
$b =~ s/</</g;
$b =~ s/>/>/g;
$string =~ s/\e\/?\s*$tags\s+/<$tags /ig;
$b =~ s/\t/ /g;
$b =~ s/\r//g;
なんて適当に…
ほかにもこんな感じでいろいろ試しました。

perlとか基本的なことくらいしか分からなくて

お手数おかけします。
0636gorigori04/01/08 12:16ID:???
あ、$stringのとこはちゃんと$bにしました。

$tagのところも
ttp://www.civilizer.net/undef/perler/cgisec/502.html
を参考にしてやりました。
0637nobodyさん04/01/08 20:43ID:???
$b =~ s/</\e/g;# まだ$bに値が入ってないところで<を\eに置換しても置換されてない。
foreach (@tmparray){
  my($a,$b)=split(/=/,$_);# $aと$bは特殊な変数でuse strict対象外。$aと$bは使用しないほうがよい。
  $b =~ tr/+/ /;
  $b =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr(hex($1))/eg;
  $b =~ s/</&lt;/g;# 2chでは、&lt; は &amp;lt; って書くといいよ。だけど、この行無意味
  $b =~ s/>/&gt;/g;# 2chでは、&gt; は &amp;gt; って書くといいよ。
  $b =~ s/\e\/?\s*$tags\s+/<$tags /ig;# 上のほうで\eに置換されて無いので、この行無意味
  $b =~ s/\t/ /g;
  $b =~ s/\r//g;

しかも、
  $b =~ s/\e\/?\s*$tags\s+/<$tags /ig;
は、
  foreach $tag ( @allowtags )
  {
    $b =~ s/\e\/?\s*$tags\s+/<$tags /ig; # 許可タグとその閉じタグは許す
    }
  $b =~ s/\e/&lt;/g; # 許可タグ以外は &lt;にする
0638nobodyさん04/01/09 12:21ID:???
(削除)
foreach (@tmparray){
my($a,$b)=split(/=/,$_);
$b =~ tr/+/ /;
$b =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr(hex($1))/eg;
(削除)
(削除)
(削除)
$b =~ s/\t/ /g;
$b =~ s/\r//g;

要は<や>を&lt;や&gt;に置換してる部分を丸ごと捨てればいい。
許可したタグ以外は使用不能にしたいなら>637を参考にその方針で頑張れ。
0639nobodyさん04/01/09 19:00ID:???
ゆいりんく1.0(ttp://www.cj-c.com/)を改造中です。
何をどういじったのか良くわからないのですが、データの削除が出来ません。

本体のみ(txt)
ttp://www.geocities.co.jp/SiliconValley/9193/nc/nc.txt
全ファイル
ttp://www.geocities.co.jp/SiliconValley/9193/nc/nc.lzh
オリジナル
ttp://www.geocities.co.jp/SiliconValley/9193/nc/link.lzh
です。

sub edit{
下のほうでデータの削除が出来るようになっています。
削除チェックボックスにチェックを入れ削除ボタンを押すと
sub del{
に移動します。そこで削除されるようなのですが、どうもうまく行っていないようです。
どこを修正したらいいでしょうか?よろしくお願いします。
0640nobodyさん04/01/09 22:19ID:???
オリジナルに戻せばいいんじゃないかな、と。
というか、どこをどう修正したか分からなくなるような奴はいじるな。
0641nobodyさん04/01/09 23:33ID:hZGS3YnQ
カテゴリ登録のサイトをもくろんでます。

例えば
カテゴリABC:a-z (cate 0から5)
カテゴリあいう:あ-ん (cate 6から10)
カテゴリイロハ:イ-ン (cate 11から15)
の3カテゴリがあるとします。

本当は一つのサイトを各カテゴリに一つずつ登録させたいのですが、(例:B、か、ユ etc,.)
以下のスクリプトを繰り返しコピペしただけでは3番目のカテゴリのみの登録になってしまいます。
どうすれば、各一つずつ登録できるようになるのでしょうか?
先輩方よろしくお願いします。

<td>カテゴリ</td>
<td><select name="cate">
EOF

foreach (0 .. $#cates) {
if ($in{'cate'} eq "$_") { print qq(<option value="$_" selected>$cates[$_]\n); }
else { print qq(<option value="$_">$cates[$_]\n); }
}

print <<"EOF";


出所は taitai studio の Link & Rank (ver3.1) の regist.cgi です。
0642nobodyさん04/01/10 00:05ID:???
激しく改造が必要。
この場合、入力フォームだけではなく、記録部、記録直後の確認画面、表示画面も改造する必要がある。
ざっと見た感じカテゴリごとにフォルダを作ってログを管理してるので、そっちの形式もいじる事になる。

戦艦大和を海から引き上げて宇宙戦艦に改造する程の手間。他のCGIを探す事を薦める。
0643nobodyさん04/01/10 08:44ID:xCRFiDNp
>>642
ご返答ありがとうございます。
他をあたってみます
お薦めなどがありましたらお知らせいただければありがたいです。
0644nobodyさん04/01/10 19:46ID:???
本文



本文

と入力して、
<p>本文</p>

<p style="margin-top:3(←改行した数)em;">本文</p>

というように出力させるにはどうすればいいのでしょうか? 現在の掲示板では

# 複数の改行は段落に変換
$value =~ s/(<br \/>){2,}/<\/p><p>/g;

となっています。
0645nobodyさん04/01/10 23:55ID:???
>>643
一言だけ。
スレ違いっつーか板違い。CGI探しはWeb製作板へ。確か。
064664504/01/10 23:57ID:???
【CGI】こんなCGI探してますver.1.1【素材】
http://pc2.2ch.net/test/read.cgi/hp/1067286961/
0647nobodyさん04/01/12 01:32ID:+TyesD9W
Hyper Search (ttp://aki.adam.ne.jp/php/hysearch.php)を改造しようとしてます。
一枚のphpで左にメニュー右に検索結果と出るんですが
これをフレームで分割できるように出来るでしょうか?


全ファイル
ttp://junk.s41.xrea.com/test/hysearch.zip
0648nobodyさん04/01/13 12:41ID:???
>>647
できるだろ。
そんな糞面倒なこと俺は絶対やらないが。
できるかできないかで聞かれたからそれだけでこたえてみたが、
やり方はきかれても教えるつもりはない。
他の連中も教えるつもりがないから今まで黙っている訳で。
まあ、なんだ。努力する気が見えない奴には知ってる奴も教えたくなくなるってこった。
064964704/01/13 20:24ID:???
>>648
返答有難うございます
やっぱ面倒ですか。。。。
PHPの本片手に色々考えてみたんですが
僕の様なペーペーにはまだ無理ですね
もう少し勉強してきます<m(__)m>
0650nobodyさん04/01/13 20:33ID:0tJfIYqX
何て言うか、全くプログラムに無知でも検索とコピペで何とかなりそうなのを依頼してる奴は氏ね。
065164704/01/13 21:01ID:???
>>650
検索とコピペで何とかなるんですか・・・
一通り調べて分割するところまでは自力で出来たんですが
左メニューのリンクをtargetで右に表示させる方法を何とか探してる最中です。
もう少し頑張ってみますです。
出来上がったらソースを提出するのでダメだしお願いできますか?
0652nobodyさん04/01/13 23:54ID:???
>>651
HTMLの理解はCGIをやる上での前提事項だ。
これが一通りできないのであれば、CGIはやるべきではない。
出直してこい。悪いことは言わない。
基礎がないのに応用ができるわけはない。
これは、マジな忠告だ。
0653未承諾広告※ ◆aiY4htt2.2 04/01/14 00:26ID:???
その点、ちょっとでも HTML 絡みの話が出ると、「 Web 製作板逝って良し」ってなるのはちょっぴり悲しいかも。@内容にもよるけれども。
もしかしてそのお陰?で、不思議マークアップを吐き出す CGI スクリプト類が氾濫しているのだろうか?
0654nobodyさん04/01/14 01:31ID:???
>>653
中には、故意にそうしている奴もいるかも。
故意にinvalidなタグを吐いて、パクられた時の証拠にするみたいな。
0655nobodyさん04/01/14 02:50ID:???
>>653
運用情報板で不思議コード書いて「WebProg板へ逝って良し」と言われたのか?
0656nobodyさん04/01/14 07:03ID:???
>647
PHP的な処理で本当にフレーム分割しようとするとかなりの手間。

実はCSSとかJavaScriptでフレームっぽい外見/仕様にするだけなら比較的簡単。
http://www.42ch.net/UploaderSmall/source/1074031258.dat
(表示できない場合拡張子をhtmに)
もう少し練れば美しくできると思う。
ただ、ブラウザによっては小汚くなる。
0657nobodyさん04/01/14 07:09ID:???
と、補足忘れた。上記の例はCSSだけ使って、JavaScriptは使ってない。
で、美しさよりもフレーム分割っぽい外観に似せる事を重視してる。
美しくするにはどうすれば、とか、JavaScriptで実装するには?とかはweb製作板の人間に聞いてくれ。
065865004/01/14 10:32ID:???
>>651
いや、おまいに言ったんじゃなくて、このスレ全体を見て言ったんだけどね……。
上の方に凄いのが居るだろ。
0659nobodyさん04/01/14 14:00ID:???
KENTさんの掲示板でYY-BOARD を使ってます
サンプル
http://www.kent-web.com/bbs/yybbs/yybbs.cgi
配布URI
http://www.kent-web.com/cgi/down.cgi?down=www.kent-web.com/dload/yybbs.lzh&name=YY-BOARD

プロキシ経由での連続投稿プログラム使用を禁止したいのですが、設定では特定IPしか
弾けないのでどのように改造したら良いでしょうか。
0660nobodyさん04/01/14 15:19ID:???
トップページに、「あなたはプロキシ経由ですか? Yes No」みたいな

ページをつくればいいよ。
0661nobodyさん04/01/14 15:33ID:???
>>659
自分で改造してみて、それでも分からなかったら質問して下さい。
丸投げは禁止です。
0662nobodyさん04/01/14 18:56ID:???
とてつもなく亀レスで申し訳ありません・・・去年>>546を書いた者です。
所用でPC触る機会がなく今日ようやく時間ができたのでお礼だけ書かせてください。
>>548さん、丁寧な解説感謝です。ずっと「これでいいんだろうか・・・」って引っ掛かっていたものがなくなりました。
まだここを見てくれてるかわかりませんが、本当に助かりました。ありがとうございました。
0663nobodyさん04/01/14 19:54ID:???
>>659
proxyとは限らずに、連続投稿自体を制限すればいいんではないのか?
# ここに質問書き込む奴って、そういう仕様部分のツメも甘い気がする。
0664未承諾広告※ ◆aiY4htt2.2 04/01/14 21:53ID:???
>>655
ぎくっ
0665nobodyさん04/01/15 04:00ID:???
663に同意。
0666nobodyさん04/01/15 15:01ID:???
>>659
串変えながらの連続投稿プログラムはOKですか?
0667nobodyさん04/01/16 04:22ID:???
【CGI】こんなCGI探してますver.1.1【素材】@Web制作
ttp://pc2.2ch.net/test/read.cgi/hp/1067286961/l50
から誘導されてきました。

ttp://specters.net/cgipon/yoyuuha/
の余裕派掲示板なのですが、(cgiのあるところ、ttp://specters.net/cgipon/yoyuuha/yyh_262.zip)
UAの取得がなされていないので、「UAの取得」に関する記述を、どこ(何行目)にどのように差し込んだら取得されるのかがわかりませんでした。

わかる方、お教えくださいますようお願いいたします。
066866704/01/16 07:07ID:???
素人考えですが、
同じURIで振り分けを実装してるということは何らかの形でUAは取得しているのでしょうか?
あと、最近のAUはmobile browserなので、振り分けをi-mode用にしたいんです。
0669nobodyさん04/01/16 18:23ID:???
>>667
遅くなってすまん、誘導した本人だ。

UAは取得しているよ。
2033行目の
# [ ブラウザのチェック ]
の下でね。

わるいけど、俺はお前が何をしたいのかさっぱりわからん。
067066704/01/16 22:32ID:???
>>669
ありがとうございます。

やりたいのは、
1.UAを掲示板のログファイルに記録して、出力する。
2.AUがPC版を表示するのをi-mode版を表示するようにする。
の二点です。
0671nobodyさん04/01/17 21:00ID:???
>>670

248:
$tit,$mes,$adm,$tim,$ipa,$rmh) = split(/,/,$_);
$tit,$mes,$adm,$tim,$ipa,$rmh,$ua) = split(/,/,$_);

328:
<!-- [$ipa($rmh)] -->
<!-- [$ipa($rmh):$ua] -->

390:
$tit,$mes,$adm,$tim,$ipa,$rmh) = split(/,/,$print[0]);
$tit,$mes,$adm,$tim,$ipa,$rmh,$ua) = split(/,/,$print[0]);

410:
$ipa = "<FONT color=$coladm size=-1>[$ipa$rmh]</FONT>";
$ipa = "<FONT color=$coladm size=-1>[$ipa$rmh:$ua]</FONT>";

1413:
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh)
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh,$ip)

2313:
$cipa = $ENV{'REMOTE_ADDR'};
$cipa = $ENV{'REMOTE_ADDR'};$cua = $ENV{'HTTP_USER_AGENT'};

2336:
$input = "$cnam,$cmal,$curl,$cico,$ctit,$cmes,$cadm,$ctim,$cipa,$crmh";
$input = "$cnam,$cmal,$curl,$cico,$ctit,$cmes,$cadm,$ctim,$cipa,$crmh,$cua";
0672nobodyさん04/01/17 21:01ID:???
続き

2371:
$rmh = (split(/,/,$log))[11];
$rmh = (split(/,/,$log))[11];$ip = (split(/,/,$log))[12];

2379:
$log[11] = $rmh;
$log[11] = $rmh;$log[12] = $ip;

2391:
$log[11] = $rmh;
$log[11] = $rmh;$log[12] = $ip;

1.は、これでいいと思う。
2.は、AUのUAがわかんねー
0673nobodyさん04/01/17 21:03ID:???
修正(^^;

1413:
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh)
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh,$ua)
0674未承諾広告※ ◆aiY4htt2.2 04/01/17 22:41ID:???
http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
067566704/01/18 01:03ID:???
>671
ありがとうございます。さっそく作業に取り掛かります。

AUのUAはUP.Browserを含んでいると思います。

関係ないですが、AUのUAって回文みたいですね。
0676nobodyさん04/01/18 05:27ID:???
修正 その2 (^^;;

2371:
$rmh = (split(/,/,$log))[11];
$rmh = (split(/,/,$log))[11];$ua = (split(/,/,$log))[12];

2379:
$log[11] = $rmh;
$log[11] = $rmh;$log[12] = $ua;

2391:
$log[11] = $rmh;
$log[11] = $rmh;$log[12] = $ua;

インフルエンザかな?
0677nobodyさん04/01/18 05:34ID:???
で、AUのUAの件。

> 最近のAUはmobile browserなので、振り分けをi-mode用にしたいんです。
俺携帯に疎いから、よくわかんないけど
未承諾広告※タソ紹介の技術情報を見ると、
> au C3001H であれば、
> 「HTTP_USER_AGENT=KDDI-HI21 UP. Browser/6.0.2.254(GUI) MMP/1.1」と表示されます。
と書いてある。
これだと、2080行目の
elsif ($mob{car} eq 'UP.Browser') {
に引っかからないのがまずいのかな?

elsif ($mob{car} =~ /UP.Browser/) {
これでどうだろうか?

067866704/01/18 09:08ID:???
>676-677
 ありがとうございます!完璧です。
あとはソースいじくって4.01strictにすれば完成します。ありがとう御座いました。
どうしようもなくて途方にくれてたので心底助かりました。
0679nobodyさん04/01/18 11:44ID:???
>>678
喜んでいる所で申し訳ないが・・・

修正 その3 (^^;;;

1413:
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh)
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh,$ua)

(ま、ここのブロックでは使わないからどうでもいいが・・・)

完全にインフルエンザだな。
病院に逝ったほうがいいな。
0680nobodyさん04/01/18 11:55ID:???
今年のインフルエンザ、放っておくと死ぬよ
0681nobodyさん04/01/18 18:07ID:???
掲示板で、2chのように、
「○ sec たたないと書けません。(○回目、○ sec しかたっていない。)○」
と言うのを表示させたいのですが、○回目の所を1回表示ごとに1増加することがどうやるか分かりません。
規制に入れるのは考えなくても良いです。

お願いします。
0682nobodyさん04/01/18 18:26ID:???
>>681
>>1読んで出直せ。
068368104/01/18 18:32ID:???
>>682
(1) どの掲示板スクリプトにも対応
(2) 2chの様に「○ sec たたないと書けません。(○回目、○ sec しかたっていない。)○」と表示させる。
(3) 詳しく考えて、、○回目の所を1回表示ごとに1増加することがどうやるかだけ、分からなかった

これで宜しいでしょうか?
0684nobodyさん04/01/18 18:43ID:???
>>683
(1)の条件を満たすためには、スクリプトのかけらそのものではなく考え方を提示するしかない。
なので、そのものずばりを求めているならとっとと帰れ。

やりたいことはなんとなくわかったが、そのためには、アクセスしてきたマシンを一意に特定する必要がある。
この辺は、IPアドレスや、それにユーザーエージェントを併用するのが普通だろう。
これによってユーザーを特定した後、それぞれのユーザー毎に、
「最終書き込み時刻」と「その時刻以降のアクセス回数」を保存するようにすればよい。
アクセスがあった時に、以前のデータを見て表示用テキストをいじり、
現在のデータを新しい数値に変えて保存すると、上記実装が完成するだろう。

データの保存は、ファイルをflockするなり、データベースを使うなり様々な方法があり、
それらの選択はスクリプト作成者の知識と技量に左右される。

オマエの提示した条件ではこれ以上詳しくは無理だ。
さあ、教えてやったんだからとっとと帰れ。
068568104/01/18 19:09ID:???
ありがとうございます。
おかげでできました
0686nobodyさん04/01/18 21:09ID:???
http://cgi.www5a.biglobe.ne.jp/~fnao/cgi_nao/email.cgi
このCGIなんですが、携帯電話からでも遅れるようにしたいんです。
http://www5a.biglobe.ne.jp/~fnao/cgi_nao/chukyu3.htm
ここにスプリクトがあります。
自分でも試みてみたんですが、
http://members8.tsukaeru.net/tatsuya7bom/cgi-bin/mail.htm
http://members8.tsukaeru.net/tatsuya7bom/cgi-bin/mail.cgi
エラーで設置すらできませんでした。
無知な自分ですが、アドバイスなどよろしくおねがいします。
0687nobodyさん04/01/18 22:33ID:???
>>686
設置すらできないものが改造とか抜かすな。
設置できないものの大半は設定ミスだ。
自分の使ってる鯖のPerlのパスとかsendmailのパスとかをよく調べろ。
068868604/01/18 23:08ID:???
http://members8.tsukaeru.net/tatsuya7bom/cgi-bin/sensys.cgi
設置しました。しかし携帯から送信しようとすると、
cgi-lib.pl:Unknown Content-type:application/x-www-form-urlencoded;charset=shift_jis
となります。ezwebなのですが、対処法はありますか?
0689nobodyさん04/01/18 23:32ID:???
>>688
cgi-lib.pl が文句たれてるんだろ?
携帯の仕様を変更するのは事実上不可能だから、
1.cgi-lib.pl を改造するか
2.cgi-lib.pl を使わないで、他のものを使うように改造するか
だろ?
推測できるお前の実力からして、どっちもオススメはできないが、
しかしこれしかないな。
1.はライブラリの意味がなくなるのでそもそもスマートな方法ではない。
2.が妥当だろうし、代替手段としてCGI.pmもある。しかし、
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod
これ読もうとする意思があるかどうかが問題になる。

言っておくが、「誰かが解答のスクリプトを提示してくれる」みたいな甘いことは考えるなよ。
0690nobodyさん04/01/19 00:01ID:???
>>686
嘘つきのマルチは氏ね

http://pc2.2ch.net/test/read.cgi/php/1011174442/80-
069168904/01/19 00:19ID:???
>>690
騙されたみたいだな、俺……。
でもこれで、俺がソースを見ないで指摘しているのがばれてしまったな。
けどどうでもいいや。
069266704/01/19 02:09ID:???
>679
ありがとうございます。>>673と同じ内容ですよね?
うまくいきました。

> 完全にインフルエンザだな。
 危険ですので早めにいかれた方がいいですよ。ご自愛を。
0693nobodyさん04/01/19 23:43ID:ueJIFoYf
KENTさんのとこで配布されてるYYBOARDのVer: 5.32に
http://cuo.press.ne.jp/cgi/b05_1.html
ここで紹介されているユーザー専用アイコンを設定するのを加えたいんですけど
v4.1をベースに改造ポイントが指摘されてるため上手く出来ない状況です

”2.処理を加える”という所で似てるポイントだと思いyyini.cgiの298行目に加えたらエラーが出たりして
この処理をどこに加えたらいいのかわからず困ってます。


ソースですがKENTさんのとこのそのままですが
http://page.freett.com/yataro/yyini.txt
http://page.freett.com/yataro/yybbs.txt


アドバイスよろしくおねがいします。
0694nobodyさん04/01/20 21:03ID:???
>>693
……アドバイスったってなあ。
なんでレスつかないか自分で理由わかってる?

まあいいか。

v4.1を手に入れて改造するのはどうかね。一番キミ自身の労力が少ないと思うのだが。
0695nobodyさん04/01/21 07:26ID:???
そういわれると改造したくなるのが人情。

書き込み処理を行なっているのはyyregi.cgiなので、こっちを改造するのが正解。
sub formCheck内、L.405付近の管理用アイコン直前かね。
多分そのままコピペでいけると思うが、確認はしてない。

wwini.cgiを改造したいならL.375付近だろうけど、wwregiをいじる方をお勧めする。
069669504/01/21 07:27ID:???
>695
最終行、wwregi→yyregi、wwini→yyini に訂正。
069769304/01/21 12:31ID:KLRTDEd/
>>695
>>696

どうも。yyregiの405行目あたりに加えてみました。
ただ書き込もうとすると500のサーバーエラーが出て加えた文で何が原因かわからない状況です。
すいませんけどわかる方いましたらよろしくお願いします

http://page.freett.com/yataro/yyregi.txt
0698nobodyさん04/01/21 19:24ID:???
>>695
な? 仏心出したっていいことないって、こんな手合いにはさ。

>>697
いいところ教えるから、もう二度と他人の手を無用にわずらわせるなよ?
http://www.kawa.net/xp/index-j.html
KCatchだ。しっかり使えよ。
0699nobodyさん04/01/21 19:56ID:???
すまんが、クリスチャンなんだ
0700インド人プログラマ04/01/21 20:10ID:???
そうか。俺はヒンドゥーだ。
0701nobodyさん04/01/21 20:45ID:???
>>697
500エラーくらい対処できるスキルが無いと困るよ。

君のPCにPerl は入ってないの?
まさかローカルでテストせずに、共有サーバでテストしてるんじゃないだろうな。
それはいかんぞ。
Perl入れてりゃ、perl -cw yyregi.cgi って打ち込めば、エラーを表示してくれるだろうに…

また、3行目に
use CGI::Carp qw(fatalsToBrowser) ;
って入れてエラーをブラウザに表示汁って手もあるがな。

それとさ、エディタはどんなエディタ使ってる?
全角スペースが見えるエディタを使いなよ。
http://page.freett.com/yataro/yyregi.txt には変な所に全角スペースが入ってる。
スクリプトを詳細に見てないが(KENTは見る気が起こらない)
ま、そこが原因かな?
0702nobodyさん04/01/23 13:58ID:meUkJhrG
掲示板の半角かなの扱いについてなんですが、例えば[全角文字+半角かな]だと正常に表示されるのですが、半角かなだけを単独で書き込まれた場合文字化けしてしまいます。
2ちゃんねるのように半角かなだけの投稿にも文字化けを起こさずに対処させるにはどうすればいいでしょうか。

元々半角かなは一切使えない掲示板だったのですが、ゼロちゃんスクリプトを参考に自分なりに改造してみた結果以下のようなデコード処理に行き着きました。
ttp://www.geocities.co.jp//HeartLand-Cosmos/9800/de.txt


拙い文章で申し訳ありませんがご教授の程よろしくお願いします。
070370204/01/23 14:35ID:meUkJhrG
連投すみません・・・
おもっきり過去ログに出てました・・・_l ̄l○

http://pc2.2ch.net/php/kako/1047/10478/1047806915.html
の149さんからの流れを参考にjcodeg.plを取り入れてみたところPC閲覧においては解決しました。

ただ、携帯電話で見た場合にスクリプトエラーが発生してしまったので、携帯のコード処理部
jcode::z2h_sjis(\$message);
をコメントアウトしたところとりあえず大丈夫みたいです。

ただこの場合、メインのデコード部の
&jcode'convert(\$val,'sjis');
&jcode'convert(\$nam,'sjis');
を削っても表示自体はされるようなのですが、閲覧者さんの各環境を考慮する場合この処理は消さずに残しておいた方がいいんでしょうか・・・
質問ばっかりですみませんがよろしくお願いします。
0704nobodyさん04/01/23 18:33ID:???
動いているコードに手を触れるなという格言がある。
残しておいて問題はない。漏れなら残しておく。
日に数千の書き込みがあって、負荷が問題になってるとかなら話は別だけど。

削ると、極めて昔(Windows3.1とかの時代)のMac/Unix環境で化けるかもしれない。
気にしたいなら構わないけど、そこまで行くと趣味の領域になってくると思う。
070570204/01/24 00:21ID:???
>>704さん
返事が遅れて申し訳ありませんでした。

>動いているコードに手を触れるなという格言がある。
これ、すごく胸に響くものがありました。

正直、レスがないままだったらたぶん消してたと思うのですがそのまま残しておくことにします。
御助言ありがとうございました。
0706nobodyさん04/01/24 02:13ID:E5Iw/RSh
レッツPHP+zut.jpの写メールBBSなんですけど
携帯用ページで、投稿された写真に返信があったとき
返信ありのリンクの横に何件レスがあるか数字を表示させたいです。
scriptをどう改造すればいいかお知恵貸してくださいm(_ _)m

http://goa.k1.xrea.com/j.php?id=2&page=

↓返信ありの表示部分?
$rescom = "";
$path=dirname("http://".$SERVER_NAME.$PHP_SELF);
$fd2=fopen($res,"r");
while (!feof($fd2)) {
$buffer = fgets($fd2, 4096);
$data = explode("<>", $buffer);
if($data[0]==$id) $rescom = "<br>>> <a href=\"$path/chtml.php?res=$id&page=$page\">返信あり</a>";
}
fclose($fd2);

↓res.logの中身

1<>1074872857<>てすと<>てすと<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
1<>1074873090<>あいうえ<>あかさた<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
1<>1074875789<>どうですか?<>そうですか<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
2<>1074876582<>?<>ぉぉぉテスト<br><>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
2<>1074877568<>いごっそ<>いごっそ<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
2<>1074877795<>くるぶし<>ぺやんぐ<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))

宜しくお願いしますm(_ _)m
0707nobodyさん04/01/24 18:51ID:yESrv3M6
ネットサーフレスキューweb裏技で配布してる
シンプルなBBSの改造をしたいんだけど
改造初心者なので誰か助けてくらさい

http://www.rescue.ne.jp/cgi/bbs/

1 題名をなくしたい(「題名」フォームの部分を消したら「題名を入力してください」とエラー)
2 削除キーをなくしたい
3 記事が入力通りに改行されるようにしたい
4 出力文字サイズを変えたい

最近配布を始めたCGIらしいのでサポートとか少なくて、
改造されたものもあんま配布されてないみたいだったんで…
誰か助けて
設置は無事出来ました
0708nobodyさん04/01/24 19:09ID:???
>>707
ところで>>1はご覧になりました?
「少しは自分で考えること。」
0709nobodyさん04/01/24 19:13ID:???
小一時間は
0710nobodyさん04/01/24 19:14ID:???
>>708
敷居が高いようで、出直します。
お邪魔しました。
0711nobodyさん04/01/24 19:53ID:???
高いのは敷居じゃなくて、あんたの要求。
0712nobodyさん04/01/24 21:17ID:???
> 敷居が高いようで

どこがだろ?
0713nobodyさん04/01/25 01:44ID:???
>>710
敷居が高いんじゃなくて、あんたのいる位置が低い。
0714nobodyさん04/01/25 01:46ID:???
>>706
これだけデータ構造とかがわかってて、どうしてできないのかむしろそっちが不思議。
関係のある書き込みの数をカウントすればいいだけの話だろう?
071570604/01/25 02:14ID:9zQH+F4M
>>714 返事どうもです。

なんとなーくココかな?って部分は予想できるんですけど、
スクリプトの記述はまったくわからないです…

流れは、参照したres.logの先頭の1とか2のid番号をカウントして、
それを表示させるんですよね。

投稿されたログに連番を付ける箇所にすごいヒントがあるような…
でもどう書いてやればいいのか(; ;)?

$lines = file($log);
$st = (!$_GET['page']) ? 0 : $_GET['page'];

for ($i=$st; $i<$st+$page_def; $i++) {
if ($lines[$i] == "") break;
$imgsrc = $body = $subject = "";
list($id, $ptime, $subject, $from, $body, $att,) = explode("<>", $lines[$i]);

助言くださいm(_ _)m
0716nobodyさん04/01/25 04:01ID:A2CJsmcE
かなり悩んでます。
Perlでユーザーを追加するスクリプトをコーディングしているんですが、
パスワードの作成で躓いています。

シェルの内容は以下の通りです。
#!/usr/bin/perl
open(IN, "userlist.txt");
while($user=<IN>){
@user=split(/,/,$user);
`useradd $user[0]`;
`passwd $user[1]`;
}
でuserkist.txtの内容は、
user,pass
user1,pass2
です。
パスワードの設定がどうしてもうまくいきません。
どなたかご教授お願いします。
0717nobodyさん04/01/25 04:38ID:???
716はマルチにつき放置で
0718nobodyさん04/01/25 13:00ID:A2CJsmcE
>>717
てゆうか、分からないだけでしょ。
■ このスレッドは過去ログ倉庫に格納されています