★三 【 スクリプト改造工房 PART 9 】 ★三
1 :
nobodyさん :
2006/03/32(土) 04:52:20 ID:WJnup8Dd #================================ # スレッドの説明 #================================ 「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。 質問するときは以下の点に注意して書いて下さい (1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い) (2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し) (3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い ※答えてくれないからといって逆ギレする厨はお断り
Berryz工房
スクリプトを改造しているけどうまくできない場合のヘルプはこちらで。 配布先でアドバイスが得られない場合、ここで聞けば 親切な人が助言してくれるかもしれません。 依頼テンプレ 【. CGI名 .】 複数のバージョンがある場合には正確に (必須) 【配布先URL】 教えてくれる人が参照する場合があるので (必須) 【. 置き場所 .】 配布先が閉鎖の場合、すぐ見られるようtxtなどで upした場合、 デザインをhtmlで作成した場合など (任意) 【ヘルプ内容】 どのように改造したくてどのようにうまくできないか (必須) 機能・動作などを簡潔かつ詳細に
http://pc8.2ch.net/test/read.cgi/php/1104624784/2 より
■ エラーメッセージについて
500エラーやInternal Server Errorって言うのは、エラーメッセージじゃないから、そんなもん書いても問題解決に繋がらない。
ちゃんとしたエラーメッセージを書くように。
エラーメッセージはログに記録されている。
ログのありかがわかんないときは、サーバの管理人に問い合わせる。
もしくは、モジュールが入っている事が前提だが、
2行目に
use CGI::Carp qw(fatalsToBrowser);
の一文を挿入する。
したらエラーメッセージがブラウザに表示される。
あとは修正すればよい。
自分で修正できなかったら、エラーメッセージも書いて質問しる。
※ 共有サーバでいきなりテストせず、自宅のPCでテストできる環境を作れ
6 :
>>3-5 :2006/03/32(土) 05:28:07 ID:???
要るのかどうかわからんけど、スレだけひょっこり立ってたので貼っといた。
要らないもんだったら(
>>5 とか)ごめんよ。
7 :
nobodyさん :2006/03/32(土) 08:52:31 ID:KTTgIZMg
8 :
nobodyさん :2006/04/02(日) 21:43:33 ID:PlGfFHws
ffffff
9 :
nobodyさん :2006/04/05(水) 00:16:10 ID:x6iRtw62
氏ね
10 :
nobodyさん :2006/04/12(水) 02:39:38 ID:haUSJSue
どっこらせ
12 :
11 :2006/04/15(土) 04:53:41 ID:???
b_write.cgiの90行目の条件を日付に変えれば良さそうな気がしているのですが、 データに日付の項目を加えておかないと駄目ですかね?
>>11-12 書き込み時に日付データも加工して入ってるね。
この日付の加工タイミングをずらすも
新たに消去処理用の日付データを追加するもそのあたりは自由。
問題点としては消去のタイミングが書き込み時のみになること。
書き込みの多い掲示板ならいいだろうけど
そうでないなら、表示処理のところに仕込んでもいいと思う。
誘導されてきました。ヨロシクお願いします。
【 CGI名 】 携帯絵文字対応BBS「SmallPICT」 (Ver2.161)
【配布先URL】
http://hdml.cside.com/DLcgi/spict/ 【ヘルプ内容】 1.機種情報を表示しないようにしたいのですがどこを消したらいいのかわかりません。
2.アクセス解析のタグを挿入したいのですがどこに入れたらいいのかわかりません。
init.cgiの53行目辺りかと思ったのですがエラーが出てしまいます。
どうぞヨロシクお願いします。
2.の挿入したいタグはアクセス解析dopvSTAR*のもので以下のような感じです。(見本のまま貼っておきます。)
<a href="
http://tech.bayashi.net/ ">
<script type="text/javascript" language="JavaScript">
<!--
//----- ログ取得CGIへのパス(相対パスもしくはURL)
var pa = "パス/dsw.cgi";
//----- ページ名(半角英数文字のみ)
var pg = "ページ名";
//----- 出力タイプ(g=gifカウンタ, p=pngカウンタ, m=gifロゴ, n=出力ナシ)
var p = "g";
//----- カウントアップしないなら "no"
var cnt = "";
var a="&&"; var pf=navigator.platform; var lng=navigator.language;
var swh=screen.width+"x"+screen.height;
var cd=screen.colorDepth; var pd=screen.pixelDepth; var rf=document.referrer;
document.write("<img src='"+pa+"?xx=",new Date().getSeconds(),a+"pg="+pg+a+"p="+p+a+"md=j"+a+"cnt="+cnt+a+"pf="+pf+a+"lng="+lng+a+"swh="+swh+a+"cd="+cd+a+"pd="+pd+a+"rf="+rf+"' alt='アクセス解析' border='0' />");
// -->
</script>
<noscript>
<img src="パス/dsw.cgi?pg=ページ名&&p=g&&md=nj" alt="アクセス解析" border="0" />
</noscript>
</a>
>14 とりあえず1.だけ。 スクリプトだけをざっと眺めただけなんで、てきとう対処だけど。 sub dispUAってサブルーチンの最後、 return($ua); (2643行目くらい) という行の前に $ua = ''; という1行を入れる。
16 :
nobodyさん :2006/04/16(日) 18:27:42 ID:CDJOsfar
Kentのaskaで設定した書き込んだ人のパスと管理パスと二つで記事を消すようにしたいんだけどどうすればいいかな?
18 :
nobodyさん :2006/04/16(日) 18:58:50 ID:CDJOsfar
しっかりと書いてないじゃん
どのように改造したくて 「どのようにうまくできないか」
>18 日本語でおk
22 :
14 :2006/04/17(月) 02:05:34 ID:???
>>15 すごいです!ありがとうございます。
1行入れただけで、機種表示が消えて思うように表示されました。
今まで消すことばかり考えていたのでビックリしました。
本当に助かりました。
2.も引き続きお願いします。
>>22 >init.cgiの53行目辺り
これ、ヒアドキュメントでできそうな気がする
>>22 つか自分で解決する気無いなら丸投げ行けよ
>>14 >>24 の通り、スレ違いだと思うけど。
まず解析タグの中にある"を全部\"にしてから
int.cgiの58行目
</b>と";の間に挿入。
解析タグのパスとかページ名の書き換え方は自分で考えて。
それでも上手くいかなかったら所得方法をIMG式に換えてみる(その場合も\"に)。
>>23 ,25
modulesディレクトリのファイル見ると解るけど、携帯用モジュールは
$BBSsubtitle変数読み込んでいないので、それだとPCからのログしか取れないと思う。
ヘッダとかも全部独立してるし、結構面倒臭い作りになってるな〜コレ。
27 :
25 :2006/04/17(月) 16:02:06 ID:???
>>26 それは解っていて、やりやすい方を書きました。
丸投げの方で
>携帯は…どうなんでしょうか?PCで携帯の絵文字を表示させたいだけで
>携帯では殆どアクセスしませんです。
と書かれてたので。
携帯ログもとるにはmodukesの中身のjsky,imode.plで
<body $bodyColStr で検索して出てきたbodyタグの直後に
IMG式の解析タグ("を全部\"にしてから)を挿入。
ezweb.pl141行
$title = "<CENTER>$BBStitle$hr2\n"; "と<CENTER>の間
wap2.pl146行
$title .= "</p>$hr2\n"; "と</p>の間
にそれぞれIMG式の解析タグ("を全部\"にしてから)を挿入。
eawebの方はリンクタグを外さないと動かないかもしれない。
(解析の配布元では推奨してはいないが)
28 :
14=22 :2006/04/17(月) 23:11:02 ID:???
>>23-27 ありがとうございます。
そんな面倒な物とは知らずにすみませんでした。
>>27 丸投げから誘導されたのですが、あちらの書き込みも見て下さってありがとうございます。
>>14 に書いた内容だけでなく、携帯ログもとることができました。
本当に感謝しています。
29 :
25 :2006/04/17(月) 23:46:50 ID:???
>28 どうやら成功したようでなによりです。 上でも書いたけど ezweb.plの書き換えの結果、エラーが出そうなのが心配だ。 古いAu携帯でちゃんと見れるか確認した方が良いと思う。 記述のルールを守らないと 簡単にコンパイルエラー(表示不能)が起きてしまう。 古いAu携帯は少ないと思うからログを取らないという選択もあり。
>>29 古いAu携帯で来ている人が知り合いにはいないので
しばらく様子見てみます。
ありがとうございました。
31 :
nobodyさん :2006/04/21(金) 03:13:21 ID:aLUgf6D1
32 :
nobodyさん :2006/04/21(金) 12:31:39 ID:y1+BKuBn
ifで分けるだけじゃダメなのか
33 :
31 :2006/04/22(土) 06:22:53 ID:Klpi7ULf
>>32 ifだけだとちょっと分かりそうもないので丸投げのほう逝ってみます・・
スレ汚しすみませんでした。
35 :
nobodyさん :2006/05/04(木) 15:41:53 ID:79IZMTvl
>>36 元々SpeedyCGIを意識してないスクリプトを対応させるのは大変だから
情報なんか無くて当たり前だが・・・。
しかし人気があるものに限って凄い作りしてるよね。
>37 thx 効率上がりそうだ。 local宣言もひっかかるのが難点だが。 ひっかかったもの丸ごと全部初期化するのが無難?
40 :
36 :2006/05/05(金) 09:24:19 ID:???
作業終了。 手順 1.use strict 'vars';を宣言。 2.local変数をすべてmy変数に置換。 3.スクリプトを実行。 4.エラーログにグローバル変数が全てはかれる。 5.エラーログをエディタで整形して初期化ルーチン作成(定数部分は初期化しない)。 6.元のスクリプトを処理開始時点で初期化ルーチンを呼ぶように変更。 以上、数時間でnickyのSpeedyCGI化完全終了。 連休に時間ができた。 >37はネ申
41 :
nobodyさん :2006/05/05(金) 10:19:06 ID:oFARAoVx
43 :
nobodyさん :2006/05/07(日) 00:52:21 ID:NJ/WTSjH
44 :
大吉 :2006/05/07(日) 07:26:21 ID:ATirsoGK
47 :
nobodyさん :2006/05/15(月) 18:04:30 ID:MEub9acq
>>47 まったく検討がつかないなら丸投げに行けよ
49 :
47 :2006/05/15(月) 23:01:16 ID:???
>>48 すみません。移動します。
誘導ありがとうございました。
50 :
nobodyさん :2006/06/06(火) 03:34:14 ID:3gCz1oqj
50解決しました
52 :
nobodyさん :2006/06/11(日) 12:45:12 ID:gbv6O4j7
【. CGI名 .】 YY-BOARD5.6最新 【配布先URL】 tp://www.kent-web.com/bbs/yybbs/yybbs.cgi 【ヘルプ内容】 なんとかランダムアイコン機能を追加しました。下の奴です。 それに+してランダムを選択しないと出てこない、 ランダム専用アイコンを追加したいのです。どうすればよいのでしょうか? 色々と試してみたのですが、私にはムリです。 秘密扱いにしたいので、アイコン一覧には表示したくありません。 $ico1 = 'space.gif i1.gif i2.gif・・'; $ico2 = 'ランダム 1 2・・・'; # アイコンランダム追加 if ($in{'icon'} eq 'space.gif') { $in{'icon'} = $ico1[int(rand($#ico1)) + 1];
53 :
nobodyさん :2006/06/11(日) 13:50:15 ID:??? BE:752102069-
>>52 if ($in{'icon'} eq 'space.gif') {
$ico1 = ($ico1, $ico2);
$in{'icon'} = $ico1[int(rand($#ico1)) + 1];
>>53 ありがとうございます。
$ico1がファイルの場所で
$ico2が上に対となるファイルの名前になります。セットです。
初めは$ico1だけ書けばアイコン選択で出ないと思ってたのですが、
名前無しのアイコンが選択画面、アイコン一覧画面に出てきてしまい。
どうすればいいのかと思いました。
$ico3をどうにかして作るしかないのでしょうか。
>>52 >>54 それは$ico1基準で表示されてるから。$ico2基準で一覧作ってもらえればその通りになる。
表示するところのコード見たらいい。
もしくはランダムに選ぶ時だけマージする$specialico = ...みたいなのを用意しておくとか。
56 :
52 :2006/06/11(日) 22:27:03 ID:???
>>55 表示に関係してそうな点が2箇所ありました。
<select name=icon>\n";
foreach(0 .. $#ico1) {
if ($ico eq $ico1[$_]) {
print "<option value=\"$_\" selected>$ico2[$_]\n";
} else {print "<option value=\"$_\">$ico2[$_]\n";}}
print "</select>\n";
<tr>
EOM
@ico1 = split(/\s+/, $ico1);
@ico2 = split(/\s+/, $ico2);
$i=0; $j=0;
$stop = @ico1;
foreach (0 .. $#ico1) {
$i++; $j++;
print "<td><img src=\"$imgurl$ico1[$_]\">
$ico2[$_]</td>\n";
if ($j != $stop && $i >= 10) {
print "</td><tr>\n";
これをどういじればよいのでしょうか?よろしければお願いします。
57 :
nobodyさん :2006/06/11(日) 23:47:37 ID:??? BE:557112858-
>>54 ああそう、
てかスクリプト自体を見てないから何とも言えないけど、
$i = 0;
foreach $tmp(@ico2)
{
if ($tmp eq "") {splice(@ico2, $i, 1);}
$i++;
}
で
>>57 ありがとうございます。
早速53の部分を57に変えてやってみました。
そうしたらランダムを選んだときだけアイコンが表示されないようです。
難しいですね。これは。
61 :
nobodyさん :2006/06/15(木) 07:11:16 ID:QdHi4a/u
【. CGI名 .】 Web Calendar2
【配布先URL】
ttp://www3.biwako.ne.jp/~nobuaki/webcal/ 【ヘルプ内容】 カレンダーの従来タイプで一行の文字数を増やしたいのですがどこをいじったらいいのかわかりません。
webcalconf.cgiの
#カレンダーの枠の中の桁数(標準タイプ表示時、半角ベースです)
$keta = 12;
#カレンダーの枠の中の行数(標準タイプ)
$gyou = 8;
の辺りだと思って数字を増やしてみましたが、どこが変化したのかわかりませんでした。
よろしくお願いします。
62 :
nobodyさん :2006/06/17(土) 14:28:55 ID:gqgAthnB
>63 サーバはSSIは使えますが、フォルダのことは未確認でした。 とほほのリンク、じっくり読んでみます。ありがとうございました! >64 誘導ありがとうございました。
66 :
nobodyさん :2006/06/20(火) 15:43:28 ID:92BetCL3
【 CGI名 】2ちゃんねるのサーバーサイドスクリプト 【配布先URL】 調べたらあるのかも知れない 【 質問内容 】 2ちゃんねるのような、新規スレッド作成ボタンを押し、新規スレッド作成画面に出て クッキー認証(ライブドアのしたらばJBBSのクッキー認証ありに反応するように)を経て 書き込みボタンを押し、書き込みましたと表示され一定時間後にスレッドが立つような感じ サーバーを経由する必要があるなら、できたスクリプトのその部分にhttp:(置き場)と記入してくれればいいです 分かり易説明すると新規スレッド作成画面のボタンを押し、新規スレッド作成画面に変わった時に2ちゃんの場合は 画像、板名、スレ立ての心得、書き込む前に読んでね | 2ちゃんねるガイド | チャット が出るでしょ?そういう状態にしたいんですよ [タグの書き方の例(1)] 画像、板名、スレ立ての心得、書き込む前に読んでね | 2ちゃんねるガイド | チャット が出ないソースなら下にあるのですが、このソースに付加して書き込んでも無駄みたいです <THREADFORM_DISABLE> <form method=POST action="../../bbs/writebox.cgi"> <input type=submit value="新規スレッド作成" name="submit"> <JBBS_CUSTOM_HIDDEN> </form>
68 :
nobodyさん :2006/06/20(火) 15:51:19 ID:92BetCL3
>>67 マルチじゃなくて教えてもらえなかったから聞いて回ってるわけっす
因みにそっちは依頼です 解決してもらった方には金渡します
69 :
nobodyさん :2006/06/20(火) 15:53:58 ID:??? BE:397980959-#
それをマルチと言うんだが まだ答える人を待ってる状態な訳でしょ
>66 昔ぱど厨の間ではやってた「文字の色が変わるタグ」とか「画像が貼れるタグ」とかと同レベルの とんでもなくアフォな書き込みだな
71 :
nobodyさん :2006/06/20(火) 16:22:52 ID:92BetCL3
>>70 そんな単純な問題じゃないんだって
自分でやってみれば難しいことが分かるんだから
ただ単に掲示板の上部に画像とリンクで2ちゃんねるガイド表示させるわけじゃないんだぜ
おまえ、Web製作板でも電波撒き散らしてたろw
どうせ荒らしに使うだけだろうから放置しとけw 金だって払う訳ねぇw
76 :
nobodyさん :2006/06/20(火) 20:44:06 ID:92BetCL3
>>74 そういうことです!。
あとクッキー認証と看板画像表示場所の確保、掲示板タイトルとスレ立ての心得が書けるようにして、
テーブルでタイトル、名前、E-mail、内容を囲むだけじゃないですか
>>75 荒らしには使えだろ
77 :
nobodyさん :2006/06/20(火) 20:44:59 ID:92BetCL3
訂正 76 荒らしには使えだろ× 荒らしには使えないだろ○
78 :
nobodyさん :2006/06/20(火) 20:45:42 ID:??? BE:106128162-#
金出してスレの方に書いといたからよろしく〜
荒らしはともかく、2chに似せて何を狙っているのかな…とは思うがな。
報告致します、Sir!
>>61 の依頼は丸投げスレで引き受けますた。
あ
で、何をどうしたらどう上手く行かないと?
84 :
82 :2006/07/23(日) 21:16:34 ID:???
すみません。今まで私が試してみてるのは、 comchatq.cgi (1453行目) $br$sfont1$lname > $comment</font>$br2 ↓ (1453行目を1433行目と同じに) $db1$br$ir$sfont1$lname >$sfont2 $comment</font>$ir2$br2 びくともしないので着眼点間違ってるのだと思います。 簡易ログモード=未入室時の表示ログ、では無いのかな…。
>>82 今ざっと見てみたが、
comchatq.cgiの1983行目あたりのsub loginhtml以降で
いわゆる最初のフレーム分けのHTMLが吐かれているようだ。
で、GETメソッドで"colortype=on"というのを指定してやると
ログ表示における発言部分が染色されるようになるみたいだ。
というわけで、入室中の状態での下フレームのURLを参考に
comchatq.cgiの2003行目あたりをいじってみるといいんじゃないかな。
86 :
82 :2006/07/24(月) 21:00:17 ID:???
>85 出来ました! 同じく色の反映されてなかった過去ログも、 1225行目あたりに同じ処置を施して上手く行きました。 大感謝です。
不可能か可能かと言われたらそりゃ可能だが…。
>>88 言葉が足りませんでした。すみません。
改めて
【 CGI名 】 しぃちゃん作PaintBBS及びしぃペインター対応
固定ハンドル機能付き画像アップロード型掲示板「Pallet Town」v3.00
【配布先URL】
http://paoron.jp/script/pallet_town.html 【ヘルプ内容】 固定ハンドル機能はついていますが、トリップ機能がありません。
トリップ機能をつけるには、どの部分をどう弄ればいいのか教えて下さい。
>>89 pallet_town.cgiのデコード部分で名前にトリップキーが含まれていた場合に
トリップに変換する処理を入れておけば良い。具体的にどういじるかはググれ。
まあ2chと完全に同じ動作を実現するのならともかく、
適当なキーからユニークなトリップを出力という処理だけなら難しい事は何も無い。
ぼちぼち頑張れ。
丸投げにて >lib.plの改行処理を >$val =~ s/\r\n|\r|\n/<br>/g; >にして >album.cgiのメモの<input type=text>を<textarea>にして(2箇所) >album.cgiの# 並び替え/編集/削除 >の所の<textarea>の$i_photographer[$_]はprintする前に<br>を\nにする。 とアドバイスもらいました。 「lib.pl」を開き # 改行処理 $val =~ s/\r//g; $val =~ s/\n//g; } $form{$key} = $val; } } を # 改行処理 $val =~ s/\r\n|\r|\n/<br>/g; } $form{$key} = $val; } } にしました。
93 :
91,92 :2006/07/28(金) 09:11:16 ID:???
album.cgiをみて1箇所の「メモ」のinput部分を # メモ(投稿時) print "<tr>\n"; print "<td width=\"60\" class=\"item\">メ モ</td>\n"; print "<td><textarea cols=\"50\" rows=\"5\" type=text name=\"photographer\" size=\"50\" value=\"$b_photographer\" class=\"list\"></textarea></td>\n"; print "</tr>\n"; にかえました。 # 並び替え/編集/削除 の部分は # メモ print "<textarea cols=\"50\" rows=\"5\" type=text name=\"$n_photographer[$_]\" size=\"25\" value=\"photog\" class=\"list\">"; print "$i_photographer[$_]"; print "</textarea>\n"; print "</td></tr><tr><td>\n";
「>album.cgiの# 並び替え/編集/削除 >の所の<textarea>の$i_photographer[$_]はprintする前に<br>を\nにする。」 部分ができていないため、編集画面ではテキスト エリアに表示される文面に「<br>」が表示され、 さらにそのまま投稿しても<br>がタグとして処理 されず、そのまま文字として表示されてしまい編集 画面の意味をなしえません。 改行させるための命令だといろいろと調べてわかっ たのですが、挿入の仕方が悪く、反映されませんでした。 正しい改変の仕方をアドバイスいただきたく思います。 お願いいたします。
>>94 $i_photographer[$_] =~ s/<br>/\n/g;
97 :
94 :2006/07/28(金) 19:56:34 ID:???
>>96 大感謝です!
きちんと表示されるようになりました。
スクリプトに目を通してくださってありがとうございました!
>>95 簡潔な書き方ができず、すみませんでした。
【CGI名】 T-bookmarkPlus Final
【配布先】
http://www.de-bug.net/ (閉鎖?)
【置き場所】
http://www.uploda.org/uporg465634.txt 【ヘルプ内容】
検索画面の分野(カテゴリ)表示部分で、「分類」(ジャンルコードの頭に「_」がつくもの。見出し
として扱われ、登録や検索の対象外になる)にあたる行(TD)だけデザインを変えて見やすく
したいと思っています。
デザインの変更方法などはわかるのですが、cgiのどの部分がジャンルコードの頭に「_」が付く
場合の表示指定なのかわからず作業が進みません…。
改造の質問といえるかどうか分かりませんが、cgiファイルをtxtでUPしておきますので、該当
部分を教えていただけないでしょうか。よろしくお願いします。
(恐らく491行〜530行のあたりではないかと思うのですが…)
99 :
98 :2006/08/01(火) 23:31:55 ID:???
自己解決しましたm(_ _)m
100 :
nobodyさん :2006/08/11(金) 22:46:30 ID:nR0tNgA6
102 :
nobodyさん :2006/09/27(水) 12:38:13 ID:KyNAJ/4/
age
>101 >カレンダーを横一列で表示させたい。 この位の書き換えが解らないなら丸投げ向き。 再配布禁止。修正物も配布禁止になっているので回答は得られにくいよ。
104 :
101 :2006/09/28(木) 12:05:02 ID:???
両方ともレスしてくださりありがとうございました。 そして間違ってカキコした旨書けなくてすんません。 カレンダーの横一列、頑張ってなんとかしてみます。 今日の日付は保留で…とにかくありがとうございました。
【CGI名】 Webclap
【配布先】
http://guron.net/ 【置き場所】
http://guron.net/document/dl/cgi/webclap.php 【ヘルプ内容】
UTF-8化しようとして拍手は送れるがコメントが送れない状態になっています。
全ファイルの文字コードをUTF-8にしてwebclap.cgiに以下の変更を加えました。
002 use open ":utf8"; を追加
059 "sjis" を "utf8" に変更
578 charset=shift_jis を charset=utf-8 に変更
603 charset=shift_jis を charset=utf-8 に変更
恐らく間抜けなことをしているのだと思いますが、よろしければご指摘下さい。
エラーメッセージは?
>>105 その置き場所って本当にお前がこのCGIを置いた場所か?
108 :
105 :2006/10/08(日) 21:25:50 ID:???
>106 KCatch.pmで [clap.cgi:226:warn] Wide character in print at E:\www\koiyami\uru\clap\clap.cgi line 226, <out> line 21. と出てくるので、とりあえず226行目に utf8::encode($tag); を追加してみました。 エラーは出なくなりましたがやはりコメントは送れないままでした。 >107 すみません【配布先URL】です。 コピペしてそのまま書き込んでしまいました。
httpdのエラーログを出せハゲ。
110 :
105 :2006/10/08(日) 21:59:29 ID:???
>>109 特にCGIのエラーらしきものは見えないのですが、以下になります。
errors.log
Sun Oct 08 21:54:59 2006 Error Response 404
Thread 0(ID= 2892) to 127.0.0.1 for "/favicon.ico"
ハゲワロタwww
112 :
aoki :2006/10/21(土) 12:31:47 ID:Z1KRvl//
CGI名■KENT WEBさんのYY-CHAT
配布場所■
http://www.kent-web.com/chat/index.html 改造内容■同じくKENT WEBさんのWindyのように、YY-CHATをノーフレーム式(アイコン有)で表示したいのです。
YY-CHATの機能をそのまま使いたいので、YY-CHATを改造して、フレーム形式をノーフレーム形式に変換希望。
Windy、YY-CHATのソースを見比べてみたのですが、フレーム式からノーフレーム式への転換がやはり分かりません。
どなたかご存知の方、ご指摘いただければ幸いです。
リロードで書き込み中の下書きが消えちゃうけどいいのか?
114 :
aoki :2006/10/21(土) 20:15:32 ID:Z1KRvl//
お返事ありがとうございます。リロードは初期設定を手動にして、リロード設定部分を削除しますので、大丈夫です。 すぐにお返事が頂け、嬉しいです。宜しければご指導お願い致します。
115 :
aoki :2006/10/21(土) 20:18:20 ID:Z1KRvl//
↑追記↑要するに、フレーム非対応の携帯でも使えるようにしたいのです。 よく、携帯用のチャットは手動ですので大丈夫です。
116 :
nobodyさん :2006/10/23(月) 02:38:52 ID:oT4S3DMg
【. CGI名 .】 PatiPati - Version 3.0 -
【配布先URL】
http://www.gnbnet.com/ 【. 置き場所 .】
http://www.gnbnet.com/cgi/?mode=mail 【ヘルプ内容】
ttp://www.gnbnet.com/bbs/index.cgi?mode=view&seq=391 ↑の人と同じことを思ったので質問させて下さい。
________________________________________________
拍手ボタンを押す→最初の画面が出る→後の画面はランダムに表示
という表示は可能でしょうか?
一番最初の画面だけ固定して、その後の画面をランダムにしたいのですが…
宜しくお願いします。
________________________________________________
の書き込みに、制作者は
________________________________________________
申し訳ありませんが、こういった要望に対応しているとキリがなくなりますので、
ご自分で改造などして対処してくださるようお願いします。
________________________________________________
と言っているのですが、どう改造すれば良いのかわかりません。
どうぞ宜しくお願いします。
<?php echo "Hello World"; ?> これをWeb2.0風に改造してください。
一個前のレスも読めない君の亀田級の脳味噌には佐賀県庁の職員一同も心底がっかりだ。
何をどうやったらどう駄目だったのかを書いてアドバイスをもらうのがこのスレ。 それも理解できない丸投げ野郎はもう死んでいいよ。スレ違いを指摘するのもかったるい。
122 :
aoki :2006/10/24(火) 17:44:33 ID:QIrlktk5
>>121 さん、本当に申し訳ございませんでした。ご指摘頂き、ありがとうございます。
>>112 の追記です。
自分なりにWindyより、見よう見まねでYY-CHATと引っ付けた、という感じとなってしまいました。このままでは無理だとは思いますが、どのように変更して良いかがわかりません。
基本設定以降が
ttp://www.geocities.jp/aokiaoki_332/yychat.html です。
YY-CHATをWindyのように、ノーフレーム版(アイコン有り)で表示したいのです。
「Script Error」と表示されてしまいますので、宜しければご存知の方、ご指摘の程、お願いいたします。
エラーメッセージは?
124 :
aoki :2006/10/24(火) 23:35:55 ID:QIrlktk5
>>124 つかWindyにアイコン表示つけたほうが速くないか?
yychatをノンフレームに改造するのは相当大変だぞ
>>124 それは分かったからとっととエラーメッセージの詳細を出せやコラ。
まさかろくに動きもしない駄目スクリプトをローカルでチェックもせずにアップしてるのか?
127 :
aoki :2006/10/25(水) 00:23:46 ID:SpiYIrSU
>>125 さん
>>126 さん
早速のお返事ありがとうございました。
メイン処理部分の部分を一部変更して転送し直したところ、エラーメッセージは出ずに著作権部分しか表示されなくなっていました。
やはりWindyの方につけた方が良いのですね。助言ありがとうございました。
自分の知識不足ですので、また出直してまいります。
レス下さった方、本当にありがとうございました。
128 :
118 :2006/10/25(水) 00:26:03 ID:???
すいませんでした。向こうで聞いてきます。
てきるできないで言うならそりゃできる。
【. CGI名 .】 cmcboard.zip v0.23
【配布先URL】
http://cgi-lounge.eek.jp/ 【ヘルプ内容】
先月未明からi-パラダイス(
http://www.i-paradise.nu/ )に設置してある、
サイト内コンテンツの一つであるアップローダーの記事投稿が不可能な状態です
PostModeでの記事投稿前の認証を試みますが、
パスワードを入力し認証ボタンを押した次の瞬間空白のページに(ソースを見たところ無記述)移動してしまい、
ファイルのアップロード自体が出来ず、
PostMode以外での投稿はファイルがアップロードされる直前に先述したページが表示され、
ファイルのアップロードが無効になってしまうという状態です
Check Modeでのcgiの動作確認も試しましたが、各種パーミッション設定・各種パス等には異常は見受けられませんでした
また、この事象と併発するかのように、以前は見られなかった携帯閲覧時の502エラーも見受けられます
試しに他のレンタルサーバーのアカウントを取得し、上記cgiの設置・動作確認を試みてみたところ、
特に問題なくPostModeでのログイン・ファイルのアップロード、通常のファイルアップロードが出来ました
132 :
131 :2006/11/03(金) 21:30:51 ID:???
続きです 管理元にその旨問い合わせを行ったところ、 >おそらく記事投稿前の認証時の不都合は広告挿入が邪魔をしていると >思われますので、その処理の部分に<!--banner-->を挿入して >広告の位置を変更してください。 ><!--banner-->はHTMLの部分に記述しなければ有効になりませんので、 >CGIの処理の流れを見て頂く必要が御座います。 >目安として該当の認証を押した後の<BODY>が記述される直後か、 >更にいくつか下に設定されると良いと思います。 とのことでした >その処理の部分に<!--banner-->を挿入 の部分の処理の手順が分からなく、今回質問を書き込んだ次第です お願いします
まずサポートBBSで聞くべきではないかね?
135 :
nobodyさん :2006/11/07(火) 17:15:31 ID:5wPSAWJ0
>>134 つーかそもそも落とせなかったよ。古いし、他の探したほうがいいかも。
>>136 無理では無い気もするが
まぁとりあえず俺にはできない
139 :
nobodyさん :2006/11/10(金) 03:57:38 ID:l5C4yy5g
140 :
nobodyさん :2006/11/10(金) 04:11:11 ID:+7tgrk2T
age
age
142 :
nobodyさん :2006/11/14(火) 20:12:31 ID:Zhg0+JNh
最初は、日記のログに書き込む時に、頭に追記じゃなくて尻に追記する ように考えてみたのだが・・・ログがぐちゃぐちゃになった。 次にJSへ出力する時に順を変えてみようとしたのだが・・・ 「JSファイルに書き込みを〜回まで繰り返す」という処理になっていたので 出力する段階の配列をソートってわけに行かなかった。
144 :
142 :2006/11/14(火) 20:17:46 ID:???
>>142 置き場所つーのは『お前が』置いた場所だと何度言えばもうね。
…で、あんまちゃんと見てないけど、
外部JavaScriptへの出力ってkd_diary.cgiの800行目くらいからある部分のことかな。
だとしたら852行目の
print JS "document.write(\'$w_line\');\n";
で直接書き出す代わりに適当な配列に格納して、855行目の
close(JS);
の手前でまとめて吐き出せば良いんじゃないかな。
配列に格納する時に先頭にねじ込めば順番は逆になると思うが。
>>145 半分わかったような気がする。がんがってみる。ありがとん。
おう頑張りな。
148 :
142 :2006/11/15(水) 00:31:18 ID:???
できました。ありがとうございました(><)
149 :
nobodyさん :2006/11/25(土) 22:53:31 ID:ocCKf8uF
150 :
nobodyさん :2006/11/26(日) 12:42:51 ID:Y4Eo2nyo
>>150 ひとつめ
投稿のたびにIPを記録して同じIPなら規制すればいい
ふたつめ
Location
152 :
150 :2006/11/26(日) 19:19:57 ID:tkb0DDKs
>>150 ですが
説明不足でした。
>>151 さんすいません。
秒数で連続投稿規制をつけたいのです。
一回投稿したら、10秒は投稿できないようなものです。
よろしくお願いします。
KENTのBBSからその部分パクればええやん
154 :
150 :2006/11/26(日) 21:53:46 ID:tkb0DDKs
>>153 それってなにか違反になったりしませんよね?
再配布とかしない限りはな
156 :
150 :2006/11/27(月) 16:00:15 ID:kaXmljFh
連続投稿規制をつけるほうほうがのってるサイトがあったら教えてください
そんなピンポイントな方法は需要から考えてもそのものずばりが見つかるとは思えんし 大人しく自分で処理を考えるべきだと思うよ。死ぬほど簡単だし。 実際に動作するサンプルだってそこら中にあるでしょ。
158 :
150 :2006/11/27(月) 16:19:00 ID:kaXmljFh
わかりました。 どうもありがとうございます。
連投規制の処理がKENTの著作だとは知らなかったwww
160 :
1/2 :2006/11/29(水) 22:10:10 ID:???
PatiPati
ttp://www.gnbnet.com/patipati/ メッセージを送るためのフォームです。
これによって出力されるHTMLを改造したいのですが、
どのようにいじればよいものかと悩んでいます。
メッセージの送信ページでは2つの項目を用意していて、
<input type="text" name="com">
このようなinputで名前を送信し、
<textarea name="sub1">
このようなtextareaでメッセージを送信するしくみにしています。
デフォルトの設定では"com"の内容のみ送信され、
"sub1"はユーザがオプションで設置するようにマニュアルで書かれています。
メッセージを送信すると、
送信された内容が以下のように出力されるようになってほしいのですが、
<dl>
<dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)</dt>
<dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd>
</dl>
161 :
2/2 :2006/11/29(水) 22:10:46 ID:???
現状では以下のように出力されてしまいます。 <dl> <dt>(ここに、<input type="text" name="com">で送ったメッセージが入る) <dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd></dt> </dl> index.cgiを改造すれば解決できそうだということは予想がついていて、 70〜80行目あたりの「$QUERY{'com'}」や、 「$msg」あたりをいじれば解決できるだろうと思うのですが…。 なお、現在はそのへんを以下のように書いています。 $QUERY{'com'} .= "\n<dd>$QUERY{$wk}<\/dd>"; $msg = "<dl>\n<dt>$QUERY{'com'}<\/dt>\n<\/dl>"; CGIの知識はまったくないので、このへんをどのようにすればよいのかわかりません。 あと一歩でなんとかなりそうなので、 どなたかお力を貸していただけるとうれしいです。
バージョンを書き忘れました。すみません。 2006/11/18 Ver3.2 です。 ついでに書いておきますと、 メッセージの送信ページのフォームは以下のように書いています。 <dl> <dt>名前</dt> <dd><input type="text" name="com" value="名前" size="40"></dd> <dt>メッセージ</dt> <dd><textarea name="sub2" cols="20" rows="4">メッセージ</textarea></dd> <dt>返信不要ならばチェックしてください。</dt> <dd><input type="checkbox" name="sub1" value="返信不要">返信不要</dd> <dt>送信ボタン</dt> <dd><input type="submit" name="submit" value="送る"></dd> </dl>
そこまで分かればもう一歩だったのにな。 $QUERY{'com'} .= "\n<dd>$QUERY{$wk}<\/dd>"; $msg = "<dl>\n<dt>$QUERY{'com'}<\/dt>\n<\/dl>"; を $QUERY{'com'} .= "<\/dt>\n<dd>$QUERY{$wk}<\/dd>"; $msg = "<dl>\n<dt>$QUERY{'com'}\n<\/dl>"; にしてみそ。
164 :
160 :2006/11/29(水) 23:43:59 ID:???
>163 どうもありがとうございます。 最初に謝らなければなりません。 >161でname="com"とname="sub1"についてのことを書きましたが、 >162で書いた通り、「返信不要」のオプション(name="sub2")をつけております。 $QUERY{'com'} .= と $msg = を>161のように設定しているときは name="sub1"とname="sub2"の送信内容に問題がなかったので、 以下のように例文を端折って書いたのですが…。 <dl> <dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)</dt> <dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd> </dl> >163さんの設定だと <dl> <dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)</dt> <dd>(「返信不要」にチェックを入れた場合のみこの行が入る)</dd></dt> <dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd> </dl> このように「</dt>」が余計になってしまいました。 なお、name="sub2"にチェックしなかったときは希望通りになりました。 せっかく考えていただいてたいへん申し訳ないのですが、 必要な情報をすべて書かなかった私の失敗です。申し訳ございません。
165 :
160 :2006/11/29(水) 23:53:49 ID:???
「返信不要」の項目とメッセージを同時に送信しても 「</dt>」が入らなければよいのですが、そのような方法はありますか? name="com"の内容を「○○」、name="sub1"の内容を「○○」などと、 各nameごとにHTMLのタグを書ければ都合がよいのですが、 元のソースがそういう仕様ではないようなので惜しいです。 もし不可能であれば、「返信不要」のチェックを使用することはあきらめて、 >163さんが書いてくださったものをそのまま使用したいと思います。 あと、>164で『、「返信不要」のオプション(name="sub2")』と書いてしまいましたが、 正しくは、「返信不要」がname="sub1"で、メッセージがname="sub2"でした。 CGIの仕様で、もともとはメッセージをname="com"として送信するしくみになっているので、 そのへんの順番をいじったため、まぎらわしい文章になってしまいました。
ループの前に $QUERY{'com'} .= "<dt>$QUERY{'com'}<\/dt>\n"; でループの中に $QUERY{'com'} .= "<dd>$QUERY{$wk}<\/dd>\n"; でループの後に $msg = "<dl>\n$QUERY{'com'}\n<\/dl>"; でどうよ。
167 :
160 :2006/11/30(木) 01:25:36 ID:???
オリジナルのソースと照らし合わせてみたところ、 現在のソースもオリジナルと行番号が同じになっているので、 オリジナル版のソースの行番号を合わせて書きます。 >166 どうもありがとうございます。 「ループの前」というのは、 if($QUERY{$wk} ne ""){}(line69〜)の外側という意味ですよね? 「while($i <= $sub_su){」(line67)と「if($QUERY{$wk} ne ""){」の間に $QUERY{'com'} .= "<dt>$QUERY{'com'}<\/dt>\n";(>166)を書いてみましたが、 <dt>〜</dt>が何度も出力されてしまいます。 $QUERY{'com'} .= "<dd>$QUERY{$wk}<\/dd>\n";(>166)はline73のそれに置き換え、 $msg = "<dl>\n$QUERY{'com'}\n<\/dl>";(>166)もline79のそれに置き換えてみましたが、 <dd>も同様に、何度も出力されてしまいました。
何でifがループなんだよ。 ループはそこのwhileだっての。
169 :
160 :2006/12/01(金) 13:53:05 ID:???
>168 どうもありがとうございます。助かりました。 Proxomitronでグローバル変数の使い方を習っていたので、 それを応用することでとりあえず解決しました。 if($bk_ck == 0){(line65)の中に $QUERY{'total'} .= "<dt>$QUERY{'com'}<\/dt>"; を挿入し、 その後の$QUERY{'com'}をすべて$QUERY{'total'}に書き換えることで解決しました。 これで問題なければよいのですが…。
170 :
150 :2006/12/03(日) 14:24:33 ID:MG/kBdop
それそもそも動いてるのか? あとエラー出てるならエラー文書けや
172 :
170 :2006/12/03(日) 18:22:28 ID:Ga649VF2
>>170 それはぼくにいってるんですかね?
10秒規制を付けたいんですが
いつ投稿しても「連続投稿は禁止です。」とでます。
>>170 そんな部分的な変更点(しかも文法がおかしい)だけ見せられてもな
おまえ自身よくわかってなさそうだし、現時点でのソースどこかにupして晒せ
174 :
170 :2006/12/03(日) 19:23:11 ID:Ga649VF2
最近のガキは計算の順序も知らんのか?
176 :
170 :2006/12/03(日) 20:20:18 ID:Ga649VF2
KENTを参考にしてみたんだが
ヘタレだな。
【. CGI名 .】 切って出し日記 Ver2.5
【. 置き場所 .】
http://wws.cside.com/cgi-plant/ 【ヘルプ内容】
改造するのはkd_diary.cgiです。
1ページの表示と過去ログへの移行を、設定した件数ごとではなく
月ごとにしたい。
しかし・・・私の改造では、翌月の投稿をしても動作しませんでした。
※ちょうど年も変わりますしね。
やってみたのは、このCGI内の
##########################################
# ログデータ書きこみ
##########################################
の部分。
179 :
178 :2006/12/09(土) 20:10:20 ID:???
以下の部分を・・・ if($LOGDATA >= $pagemax) { $log_data = pop(@LOGDATA); if($logmax >= 0) { ($l_date,$l_comment,$l_face,$l_weather,$l_color_1,$l_color_2,$l_title,$l_time,$l_min) = split(/<>/,$log_data); $log_name = $logdir .'/'. substr($l_date,0,4) . substr($l_date,4,2) . '.log'; open(OLD,"$log_name"); @oldLOG = <OLD>; close(OLD); unshift(@oldLOG,"$log_data\n"); sort sorter1 @oldLOG; open(OLD,">> $log_name")|| &error('過去ログファイル/ディレクトリ異常'); print OLD @oldLOG; close(OLD); } } if($logmax > 0) { opendir(DIR,"$logdir") || &error('過去ログ格納ディレクトリがありません'); @dirent = grep(/[0-9]+\.log/,readdir(DIR)); @dirent_s = sort(@dirent); @dirent = reverse(@dirent_s); closedir(DIR) ; if($dirent >= $logmax) { unlink ("$logdir\/$dirent[$dirent]")|| &error("過去ログ($logdir\/$dirent[$dirent])が削除できませんでした"); } }
180 :
178 :2006/12/09(土) 20:45:46 ID:???
$log_data = pop(@LOGDATA); ($l_date,$l_comment,$l_face,$l_weather,$l_color_1,$l_color_2,$l_title,$l_time,$l_min) = split(/<>/,$log_data); #新規投稿データ↓ ($n_date,$n_comment,$n_face,$n_weather,$n_color_1,$n_color_2,$n_title,$n_time,$n_min) = split(/<>/,$line); #現在のログの月を取得 $olddate = substr($l_date,4,2); #新規投稿データから月を取得 $newdate = substr($n_date,4,2); #現在の月より、ログの方が大きかったら・・・。 if($olddate < $newdate){ $log_name = $logdir .'/'. substr($l_date,0,4) . substr($l_date,4,2) . '.log'; open(OLD,"$log_name"); @oldLOG = <OLD>; close(OLD); unshift(@oldLOG,"$log_data\n"); sort sorter1 @oldLOG; open(OLD,">> $log_name")|| &error('過去ログファイル/ディレクトリ異常'); print OLD @oldLOG; close(OLD); }elsif($olddate eq '12' && $newdate eq '1'){
181 :
178 :2006/12/09(土) 20:46:16 ID:???
#もし投稿されたのが1月で、直前の月が1月なら。 $log_name = $logdir .'/'. substr($l_date,0,4) . substr($l_date,4,2) . '.log'; open(OLD,"$log_name"); @oldLOG = <OLD>; close(OLD); unshift(@oldLOG,"$log_data\n"); sort sorter1 @oldLOG; open(OLD,">> $log_name")|| &error('過去ログファイル/ディレクトリ異常'); print OLD @oldLOG; close(OLD); } #ここまで
182 :
178 :2006/12/09(土) 20:49:38 ID:???
あ・・・ミスったorz
>>180 +
>>181 に変えた、ということです。
エラーなどはないのですが、
月が変わったことによる現行ページの更新ができないまま
それまでのログにそのまま追加されてる感じです。
183 :
nobodyさん :2006/12/24(日) 04:13:24 ID:9TMcOB7X
184 :
183 :2006/12/24(日) 04:14:08 ID:9TMcOB7X
↓こんなのを考えてみましたが、どのあたりに置いたら良いのかわかりません。 (書込みルーチンが長すぎて) ##### 投稿数をcookieに保存する ##### &read_cookie# cookie読込(imgboardルーチン) $post_count = $COOKIE{'imgboard_post'} $new_post_count = $post_count++;#投稿数を1つ加算する # 有効期限を30日間に指定 ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*24*30); @mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); $date = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT", $week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec); print "Content-type: text/html\n"; print "Set-Cookie: imgboard_post =$new_post_count; expires=$date; \n"; ----------------------------------------------------------- ##### 2回以上投稿があれば、掲示板の中身を表示する ##### &read_cookie# cookie読込(imgboardルーチン) $post_count = $COOKIE{'imgboard_post'} if ($post_count > 1) {# 2回以上投稿あるとき、 &top_html;# ヘッダ表示(imgboardルーチン) &output_form_html;# 投稿画面を表示(imgboardルーチン) &output_html("$file");# 掲示板を表示(imgboardルーチン) } else { &top_html;# ヘッダ表示(imgboardルーチン) &output_form_html;# 投稿画面のみ表示(imgboardルーチン) }
185 :
183 :2006/12/26(火) 15:44:50 ID:p3+/o574
自己解決、完成しました。
186 :
nobodyさん :2006/12/28(木) 17:03:53 ID:6RqsItPR
【. CGI名 .】 Web Board Professional
http://www.web-liberty.net/download/boardpro/index.html (ただし、Ver.2.27です。最新はVer.3.15)
【ヘルプ内容】 転送アドレスを利用した上でクッキーを有効にしたい。
無料の転送アドレスを取得し、本来のアドレスを隠していますが、
そうするとクッキーが利かなくなってしまいます。
クッキーがリファラを記憶し、照合しているため、転送アドと不一致となり、無効となっているようです。
以下がクッキー関連の処理部分です。
どうかお知恵をお貸しください。
sub get_cookie {
local($cookie_id) = @_;
local %all_cookies = ();
foreach (split(/; /, $ENV{'HTTP_COOKIE'})) {
local($key, $value) = split(/=/);
$all_cookies{"$key"} = $value;
}
foreach (split(/&/, $all_cookies{"$cookie_id"})) {
local ($key, $value) = split(/:/);
$value =~ s/&/&/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/"/"/g;
$cookie{&unescape($key)} = &unescape($value);
}
return %cookie;
}
187 :
186 :2006/12/28(木) 17:05:58 ID:6RqsItPR
続きです sub set_cookie { local(*cookie, $cookie_id, $hold_days) = @_; if (time() > $cookie{'refresh'} + 60 * 60 * 24 * 30) { $cookie{'refresh'} = time(); } local @pairs = (); foreach (sort keys %cookie) { push(@pairs, &escape($_) . ':' . &escape($cookie{"$_"})); } local $new_cookie = join('&', @pairs); local $date = &gmt_date(time + 60 * 60 * 24 * $hold_days); if ($new_cookie ne $all_cookies{"$cookie_id"}) { print "Set-Cookie: $cookie_id=$new_cookie; expires=$date\n"; } return; }
>>186 クッキーは異なるドメインは参照できない。
それに本来のアドレスを隠すといっているが、ばればれ。
とくにフレーム転送とか。
189 :
186 :2006/12/29(金) 17:41:09 ID:???
>>188 根本的にダメなんですね。ありがとうございました。
190 :
nobodyさん :2007/01/03(水) 10:54:46 ID:O8K3holw
:
192 :
nobodyさん :2007/01/06(土) 02:34:41 ID:5JmlMvQ+
193 :
nobodyさん :2007/01/06(土) 03:38:24 ID:WO53R+Nq
194 :
nobodyさん :2007/01/06(土) 22:49:45 ID:lBOtCkKI
【. CGI名 .】 askabbs
【配布先URL】
http://www.kent-web.com/ 【. 置き場所 .】
http://www.kent-web.com/ 【ヘルプ内容】
・投稿する本文に半角カタカナがあったらエラーメッセージを出したい。
・しかし「・」など、カタカナ以外はエラーにならないようにしたい。
本文を一旦EUCにして半角カタカナの有無を判定させるのはググればコードがあったので
以下のように書いてOKでした。
が、「・」が半角の場合までエラーになってしまいます。
カタカナ以外を半角カタカナと認識させないというのは、できないものでしょうか?
&jcode'convert(*message, "euc");
if ($message =~ /\x8E/) {&error("ERROR<br>半角カタカナが含まれています");}
&jcode'convert(*message, "sjis");
>>193 海外からのスパム投稿なら、日本語を含まない投稿を遮断したら?
196 :
nobodyさん :2007/01/08(月) 19:16:50 ID:RAFN8Ic4
197 :
nobodyさん :2007/01/09(火) 21:22:59 ID:kjLanKuN
【. CGI名 .】HiddenCounter Model4(隠しカウンタ/ダウンロードカウンタスクリプト)
【配布先URL】
http://www.chitta.com/nobu/download/ 【. 置き場所 .】
http://up.spawn.jp/file/up64354.txt.html 【ヘルプ内容】
<a href="hcnt4.cgi?カウンタ名@ファイルURL">ダウンロード</a>
のように呼び出してカウントさせるダウンロードカウンタです。
ログの閲覧(hcnt4.cgi?パスワード)ページには、カウンタ名とヒット数だけが載ります。
そのログの閲覧ページで、ファイルURLをカウンタ名にリンクさせる形で表示したいのですが、方法が分かりません。
カウンタ名は「$name」、ファイルURLは「$Url」、ヒット数は「$value」になっているみたいなので、単純に
<a href="$Url">$name</a>
としたのですが、設置ディレクトリがリンクされるだけで、ファイルURLをリンクさせる事ができませんでした。
どうすればファイルURLをリンクさせる事ができるのか、アドバイスを頂けないでしょうか。宜しくお願い致します。
※テスト環境ではパスワード($Password)は「1234」としています。
199 :
nobodyさん :2007/01/10(水) 06:40:46 ID:ALgB1HLh
保守
200 :
196 :2007/01/12(金) 15:49:54 ID:Sg/zwaZY
保守
201 :
nobodyさん :2007/01/15(月) 00:23:08 ID:ho2dYuVd
マルチはクタバレ。
203 :
201 :2007/01/15(月) 18:14:43 ID:???
重複申し訳有りません。 丸投げスレに依頼しましたのでそちらの方でお願い致します。
204 :
198 :2007/01/19(金) 22:25:32 ID:???
宜しくお願いします
>>198 hcnt4.datの中身見れば分かると思うけど、
そのスクリプトはカウンタ名とダウンロード回数しか記録していない。
集計モードではファイルの置き場所が分からないのでそれを表示なんて無理。
どうしてもこのカウンタにこだわるのなら
ダウンロード回数をカウントする際にダウンロード先のURLも合わせて記録するようにすれば
一応おまいのやりたかったことも実現できるけど、
おまいの腕なら改造するよりそういう機能を持った別のCGIを探した方が早いだろう。
206 :
198 :2007/01/21(日) 02:04:43 ID:???
>>205 レスありがとうございます。
>ダウンロード回数をカウントする際にダウンロード先のURLも合わせて記録する
にチャレンジしていたのですが、自力では無理そうです。
私はこのCGIを気に入っていたのですが、変に改造して不具合が出ても困りますし、(今更ですが)別のものを探した方が早いと思うので、諦めて他に乗り換えます。
アドバイスありがとうございました。
当然ここで聞く前にKENTのサポート板でも聞いたよね? そこでは何と言われたのかな?
209 :
207 :2007/01/23(火) 22:01:06 ID:???
>>207 で記述した過去ログを参考にしてみろと言われましたが、
やっぱり上手く行かなかったのでこちらに質問に来ました…
KENTのサポート板でちゃんと「言われた通りに過去ログを参考にしてみたけど やっぱり分かりませんでした」と言ったんだよね?
211 :
207 :2007/01/23(火) 22:24:47 ID:???
そこまではしませんでした…! また新にスレッドを作成して聞いてみたいと思います>< 厳しいご対応ありがとうございました。 ご迷惑お掛けしてしまい申し訳ございませんでした。
新しいスレッドじゃなく今のスレッドに続けてレスで書いた方がいいんじゃないかと思うんだが・・・ 質問の内容は続いてるのに、いちいちスレッド立てられたら禿しくウザイよ。 KENTのサポート板覗いたことないからどういう構造になってんのか知らんけどさ。
213 :
nobodyさん :2007/01/26(金) 08:18:44 ID:FhPFkwLT
自己解決しました。アクセル解析してif文で振り分けますね。
ヴゥォオオン!!ヴゥォオォオオン!!!
216 :
196 :2007/01/27(土) 09:14:27 ID:0yEfcEBm
誰かお願いします;;
自分でやる気がないものをここで聞くな。
218 :
196 :2007/02/02(金) 12:58:55 ID:tLR7xhcU
自分でできました! やる気だせばタグを追加すればいいだけで簡単でした。 死ね糞ども。
kent webにあるWEB PATIOの掲示板でスレッドの返信数を多くしたいので すが(1000くらい)。 普通に返信数の設定を1000に変えるだけで問題はありませんか? それともSQLとかデータベースを使ったほうがいいですか?
知らんがな。サーバ運営に聞けよ。 まあマジレスするとたかだか1000件程度ならデータベースはいらんと思うけどな。
アイコンを1つだけ選択して表示するためのルーチンを改造し 複数選択して表示できるようにしたいのですが アドバイスいただけますでしょうか。 ラジオボタン式からチェックボックス式に変えてみましたが、 当然というか、それだけでは複数表示できませんでしたorz 以下、そのルーチン部分です。 sub icon_select { unshift(@icon_image,""); if($icon eq ""){ $icon = $icon_image[0]; } $sel = ""; foreach $ico (@icon_image) { if($ico ne ""){ $ico_img = "<img src=\"$icon_dir$ico\" align=\"absmiddle\">"; }else{ $ico_img = "なし"; } if($ico eq $icon){ $sel .= "| <input type=\"radio\" name=\"icon\" value=\"$ico\" checked>$ico_img \n";} else{ $sel .= "| <input type=\"radio\" name=\"icon\" value=\"$ico\">$ico_img \n";} } $sel .= " |\n"; return $sel; }
>>221 同じnameで複数の値を送信する用に改造したい場合、
・値を受け取るところで、値を変数に入れている部分を複数の値を配列に入れる改造が必要である。
・アイコンを表示する部分では配列に入った分だけ表示されるように改造する必要がある。
223 :
221 :2007/02/13(火) 02:12:51 ID:???
>>222 アドバイスありがとうございます。
教えていただいた事を参考に改めて挑戦してみます。
長くなってしまったので続きます。 関係部分はこんな感じです。(html.plの590〜672行あたり) if(@iconu1){ $facemark = $facemark."<optgroup label=\"〜登録アイコン〜\">"; } foreach (0 .. $#iconu1){ $icon_value = $icon_url . "\/" . $iconu1[$_]; if (!$icon) { $icon = $icon_value; } if ($icon eq $icon_value) { $iconch = " selected"; } else { $iconch = ""; } $facemark = $facemark."<option value=\"$icon_value\"$iconch>$iconv1[$_]\n"; } if(@iconu1){ $facemark = $facemark."</optgroup>\n"; 自分でも色々遣ってみたのですが配列が二重だからか、 ソート関数の使い方が今ひとつ要領を得なかったので此方で質問させていただきました。 宜しければどなたかご教授願えませんでしょうか?
とりあえず自分でどう書いてどう動かないのか言ってみ?
sendmailについてお聞きしたいのですが
open(DATA,'| /usr/sbin/sendmail -t "
[email protected] "');
これなら通るのですが
$mlto="
[email protected] ";
open(DATA , '| /usr/sbin/sendmail -t $mlto');
これだと通らないで困っています。
目的はログイン制CGI内部でメンバの特定人物指定によるメッセージ機能で
メッセージが入るとmsnメッセンジャーや携帯メールにお知らせするためのものです
サーバーは個人運営してるところでお借りしているのですがそちらに問い合わせる
前にこちらで相談してからと思いました。基礎を知らないものですみません。
アドバイスがあればよろしくお願いいたします。
シングルクォート内では変数は展開されない
230 :
228 :2007/03/10(土) 22:32:41 ID:???
>>229 そうでした。忘れてました。ご指摘ありがとうざいます。
ダブルクォートで試してみましたがダメでした。
open(DATA , "|$mailer -t $mlto");も検索して見つけた次行
open(DATA , "|$mailer -t '$mlto'");もダメでした。
open(DATA , "|$mailer -t");print・・・; print DATA "To :$mlto";もダメでした。
一応一通り試してみたのですが自分では解決できそうにありません。
なにかアドバイスがあればよろしくお願いいたします。
232 :
228 :2007/03/11(日) 00:10:26 ID:???
>>231 言われる前に一通り試したのですがダメだったので相談しにきたのですが
止めろと言われるなら素直に借りてるサーバの管理者に相談します。
ありがとうございました。
233 :
nobodyさん :2007/03/12(月) 19:01:30 ID:D70wnXmo
【. CGI名 .】KENT SUN BOARD(HTMLボード) Ver: 3.9
【配布先URL】
http://www.kent-web.com/bbs/sunbbs.html 【ヘルプ内容】携帯には対応してはいませんが、文字サイズを小さくしたりして
一応携帯からも表示できるようにしました。
そこで、携帯から書き込みをした時に機種名を表示させたいのですが、
とりあえず時間取得の変数に混ぜて表示させてました。
日時のあとに DoCoMo/2.0 N903i(c100;TB;W24H12) このように表示されるのですが、
このN903iの部分だけ表示させるにはどうしたらよいでしょうか?
改造した部分も書いたほうがいいでしょうか?
>>234 そこまでできたならperl板行った方が…
正規表現で
^DoCoMo.* (.*)\(.+$
で\\1をとればいいんじゃないかな。
>>235 ありがとうございます。
web製作板から誘導されてきたもので。
箇所を書きます。できればここにその形で修正を施してくれればありがたいです。
#------------------------------------------------- # 時間取得 #------------------------------------------------- sub get_time { local($date,@week); $ENV{'TZ'} = "JST-9"; local($min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[1..6]; @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); # 日時のフォーマット if ($whatsnew) { $date = sprintf("%04d-%02d-%02d (%s)", $year+1900,$mon+1,$mday,$week[$wday]); } else { $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d", $year+1900,$mon+1,$mday,$week[$wday],$hour,$min); # UA記録 my $ua = $ENV{'HTTP_USER_AGENT'}; if ($ua =~ /^L-mode/) { $ua = 'L-mode'; } elsif ($ua =~ /^Mozilla/){ $ua = 'PC'; } $date .= " $ua"; # UA記録終了 } $date;}
こんなかんじで後は$dateをログ生成の適当なところに書き加えてました。 正直今までプログラミングやったことがないので、何度もコピペしたりテストしたりして と、まるっきり初心者です。 何度も携帯機種表示は試したのですがまるっきり。 もしあれならばperl板に誘導していただければ。
>>239 if ($ua =~ /^L-mode/) {
$ua = 'L-mode';
} elsif ($ua =~ /^Mozilla/){
$ua = 'PC';
} elsif ($ua =~ /^DoCoMo.* (.*)\(.+$/) {
$ua = $1;
}
242 :
236 :2007/03/16(金) 04:59:07 ID:???
すみません、自己解決しました。
244 :
243 :2007/03/21(水) 16:25:13 ID:TD8dcTEz
# 禁止ワード(いくつでも追加可能) #例 ('死ね','淫乱','援助交際','docomo') #新規登録時の名前 タイトル メッセージ ホストに適用。 @input_deny = ('死ね','',''); ##--禁止ワードチェック--## foreach (@input_deny) { if ($in{'name'} =~ /$_/i) { &error("名前に禁止ワードが含まれています。"); } if ($in{'title'} =~ /$_/i) { &error("タイトルに禁止ワードが含まれています。"); } if ($in{'comment'} =~ /$_/i) { &error("メッセージに禁止ワードが含まれています。"); } } これを追加するとエラーになってしまうのです。 何か足りないのでしょうか?
245 :
243 :2007/03/21(水) 16:30:54 ID:TD8dcTEz
#■投稿禁止ワード ""で囲って記入 複数設定する場合は『,』で区切ってください # 設定した文字列が名前かメッセージに含まれる場合、投稿できません # 必要ない場合は() @deny_words = ("アダルト","エロ"); foreach $d_words (@deny_words) {if ($title =~ /$d_words/i) {&error("名前に投稿できない言葉が含まれています");} } foreach $d_words (@deny_words) {if ($message =~ /$d_words/i) {&error("メッセージに投稿できない言葉が含まれています");} } これは違うスクリプトですが、 これだけでもできますか??
247 :
243 :2007/03/21(水) 17:38:39 ID:TD8dcTEz
他のあとにココ見つけたのですよ。ですから他には1つだけです。以下続き。 #####イタズラ投稿防止設定 # リモートホスト(またはIPアドレス)での投稿拒否 #ppp123.abc.or.jp などの場合は、数字の部分がアクセスのたびに異なるので #数字の部分を .* (ピリオド+アスタリスク)に置き換えます。 #@deny = ('ppp.*.abc.or.jp','web.net'); #などと設定します。 @deny = (); # 投稿記事内容にふさわしくない語句の禁止 # @word = ('セックス','エッチ','スカトロ','test', 'あああ','馬鹿');#などと設定。 @word = (); #投稿拒否 sub deny { foreach (@deny) { if ( $host =~/$_/ ){ &error(1,"あなたの投稿は許可されてません。"); } } } #禁止ワードチェック sub wordcheck { local($string) = $_[0];local($line); foreach $line(@word) { if (index($string,$line) >= 0) { &error(1,"$line<BR>使用禁止の文字が使われているようです。"); } } これでは?
248 :
243 :2007/03/21(水) 18:30:09 ID:TD8dcTEz
うー、ページがエラーにならず書き込みができたのは以下だけですが、 禁止設定が働かない。何が足りないのでしょうか?? #■投稿禁止ワード ""で囲って記入 複数設定する場合は『,』で区切ってください # 設定した文字列が名前かメッセージに含まれる場合、投稿できません # 必要ない場合は() @deny_words = ("アダルト","エロ"); foreach $d_words (@deny_words) {if ($title =~ /$d_words/i) {&error("タイトル名前に投稿できない言葉が含まれています");} } foreach $d_words (@deny_words) {if ($comment =~ /$d_words/i) {&error("メッセージに投稿できない言葉が含まれています");} } もう寸前まで出来てる気がする・・・
250 :
243 :2007/03/21(水) 19:30:00 ID:TD8dcTEz
エラーは毎回Internal Server Errorと出ます。 鯖のログには何も。。掲示板のエラーログはありません。 やはり無理なのかな・・・orz ランキング2つ、掲示板1つをムーバブル・タイプの中に設置、 ベーシック認証も設置できたのに、このカスタマイズで初挫折。 やはりカスタマイズは難しいですね。 ちなみに、CGIも巡り会って1週間の初心者です。
ローカルにサーバも立てられない餓鬼にCGIなんてまだ早い。
>>243 には絶対無理なので受精卵からやり直すように。
252 :
nobodyさん :2007/03/22(木) 17:29:14 ID:ZUn5Ffec
なんだよ。結局誰も答えられないのかよ。 糞スレ終了だなwww
マルチポストしてなけりゃ、ヒントくらいは教えてやってもいいかと思ったんだけどねえ 3回も同じものを読まされたらそんな気は失せる
254 :
nobodyさん :2007/03/22(木) 21:50:49 ID:ZUn5Ffec
オマエもただのカスだなwwwwww
255 :
nobodyさん :2007/03/22(木) 22:03:46 ID:8uBdXhS9
何で教えてもらう側の態度ってのが出来ないのかねぇ わけのわからん売り言葉見てると折角のモノも書く気も起きん
ソースコピペなり何なりで同じようにすればいいわけだが どこでつかえてるんだ?
258 :
256 :2007/03/27(火) 11:43:48 ID:???
Linuxの自宅サーバー(apache)とレンタルサーバーならば問題なく使用できるのですが、 Windowsの自宅サーバー(apache)だとどうしても、投稿の際の名前の欄が、 二度目から文字化けをしてしまいます。 Windowsの設定だとはじめは思いましたが、KENTさんの掲示板の場合 Windowsでも問題なく使用できているため、以前、セキュリティーなどの問題を指摘されましたが 結局Linuxを使用することになっていたので放置してました。 しかし、今回どうしてもWindowsで使用したいために質問させていただきました。 もし、よろしかったら、何行目をどのように訂正すれば良いのかご教授願えたら幸いです。
それは本当にCGI側の問題なのか…?
260 :
256 :2007/03/27(火) 12:14:21 ID:???
100%とは言えないです。 ただ、すばらしいCGIなのでどうにかWindowsで 使用したいです。 一応↓が結果です。 『Anthologys』 ○ 自宅サーバーLinuxアパッチ ○ レンタルサーバー × 自宅サーバーWindowsアパッチ 『KENTさんのCGI』 ○ 自宅サーバーLinuxアパッチ ○ レンタルサーバー ○ 自宅サーバーWindowsアパッチ それから、なぜCGI側に問題があるかというと、 以前質問して指摘されたことがありました。 他に、CGIのことはあまりくわしくありませんが、 他のCGIが、Windowsで使用できる場合、 設定でどうにかなるのではないかと思ったからです。
>>256 Windows+Apache2ならそうなるので、
・クッキーをエンコード・デコードする。
・Apache1系を使う。
のどちらか。
262 :
nobodyさん :2007/03/27(火) 15:38:55 ID:tZOgiuH5
CGI上で、 男性の画像をotoko.gif、女性の画像をonna.jifとした場合、 それぞれのページにあった画面を表示させる方法を教えてもらますか? 実際の処理のところに<img src="otoko.gif">を挿入すると、 女性の方にも表示されてしまいます。
263 :
256 :2007/03/27(火) 15:46:53 ID:???
お前は丸投げ行け
265 :
262 :2007/03/27(火) 16:34:12 ID:tZOgiuH5
これを応用できませんか? 男性は0、女性は1となっています。 if ($in{'sex'} eq "0" && $color eq "defwruto") { $color = "$boy_color"; } elsif ($in{'sex'} eq "0" && $color eq "") { $color = "$boy_color"; } if ($in{'sex'} eq "1" && $color eq "defwruto") { $color = "$girl_color"; } elsif ($in{'sex'} eq "1" && $color eq "") { $color = "$girl_color"; } 上の書き込みの画像を表示させる位置に・・・うーん、、お願いしまつ
>>262 if ($in{'sex'} eq "0") {
$src = 'otoko.gif';
} elsif ($in{'sex'} eq "1") {
$src = 'onna.gif';
} else {
$src = 'okama.gif';
}
267 :
262 :2007/03/27(火) 16:59:22 ID:tZOgiuH5
独自でできたよ。 ###+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ## SUB >>> ユーザー出力処理 ###+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sub member_view { if ($in{'sex'} eq "0") { $word_color = "$boy_color"; } elsif ($in{'sex'} eq "1") { $word_color = "$girl_color"; } ↑この部分を見て男女のページの色を区別してるんだから、 これに画像を当てはめれば良いんだと分かった。 下の方に→$word_colorがあったから。 んで、こうやって if ($in{'sex'} eq "0") { $image = "image/otoko.gif"; } elsif ($in{'sex'} eq "1") { $image = "image/onna.gif"; } 実際に画像を表示させる場所に、 <img src="$image" align="left">を入れたらできた! 俺って天才だ!
268 :
262 :2007/03/27(火) 17:01:00 ID:???
あ、
>>266 さん教えてくれたんですね。
わざわざ有難う。でもできたよ。^^)/
うざ
>>268 それ$in{'sex'}が0でも1でもない場合を想定できてないぞ
>256,263,269 何度も同じコピペを繰り返すような迷惑なクズの依頼は断わる!
273 :
262 :2007/03/27(火) 19:24:24 ID:tZOgiuH5
>>268 オカマを選択させる余地はありませぬ!w
自作掲示板完成まであと少しです。
最後に、
NGワードを外部ファイルで呼び出してチェックさせる秘儀を伝授して下さいマセ、殿!
274 :
262 :2007/03/27(火) 19:26:02 ID:???
レス間違え失礼
>>266 >>271 オカマを選択させる余地はありませぬ!w
自作掲示板完成まであと少しです。
最後に、
NGワードを外部ファイルで呼び出してチェックさせる秘儀を伝授して下さいマセ、殿!
>>274 問題をはき違えてるな。
読解力の無い奴にゃ教える気もおきねーや。
278 :
276 :2007/03/31(土) 16:30:59 ID:???
280 :
nobodyさん :2007/04/19(木) 22:04:34 ID:Nm6vIpzI
281 :
280 :2007/04/19(木) 22:45:12 ID:???
すみません、複数のフォルダを指定する方法もお願いします。
282 :
nobodyさん :2007/04/21(土) 19:53:28 ID:vsUwQ1K4
>>280 さん
まだ見てるか知らんけど・・・
↓こんなんでいいのかな?
ttp://sv1.jp/2ch/g_album_c1/ > 画像ごとに異なるコメントを出したい
「画像のファイル名.txt」のファイルを置いておくと、
コメントとして表示するようにしてみますた。
> 画像へのリンクを任意の文字列にしたい
意味がわかりませんですた。
> トップに画像とコメントを表示したい
トップとかの概念が無いような気もするけど、設定できるようにしてみますた。
コメントは同じく「画像のファイル名.txt」で表示されます。
> 複数のフォルダを指定する方法もお願いします。
index.phpの設定んとこで対象フォルダを指定できるようにしてみますた。
↓ソース
ttp://sv1.jp/2ch/g_album_c1/g_album_c1.zip 注意点
・設定のとこいくつか増えてるんで確認してください。
・複数フォルダのせいで、ファイル名でソートが曖昧です。
フォルダ名も含めてソートしてるかも。
・あんま確認してないんで、おかしいとこあったらごめんちゃい。
久しぶりに書き込んだらageてもたorz ごめんちゃいorz
で、どこまでやってどこで躓いてる? 言っておくがここは丸投げできるスレじゃないぞ
とりあえず、189行目から323行目と1061行目から最後までをいじれば良いと思うのですが それ以上はあんまり解りません
じゃ丸投げで延々と待つしかないな
GMazvB name is Kostya.My nick is Zold . I want to find friends .ICQ 324600825
丸投げが無い。。。 一から勉強しよ(´・ω・`)
ICQってまだあんの?
292 :
nobodyさん :2008/02/16(土) 15:55:54 ID:7IBR1+e+
【. CGI名 .】Variable Board Ver.1.06
【配布先URL】
http://dream.lib.net/room/ 【ヘルプ内容】携帯端末の書き換えについて
CGI自体は携帯端末対応なのですが、端末情報が少し古いようで現在での対応が一部できません。
variable.cgiの255行目「端末チェック」部分、
「ASTEL」の項は「KDDI」に変えてauへの対応はできたのですが、
Softbankが現在「J-PHONE」「Vodafone」「SoftBank」の三つがUAとしてあり、
そのうちJ-PHONEにしか端末チェックがなされてません。
「Vodafone」と「SoftBank」がSoftBank端末アクセスの8割を占めているので
両方も端末チェックに加えたいのですが、安易に項目を増やしてみたところ
やはりというか何というかUA偽装でチェックしてみても無理でした。
VodafoneがUAの場合、KDDI同様「UP.Browser」がありましたのでそれで出来るかと思ったんですが、
「UP\.Browser」と入れてみても対応はできませんでした。
もし良い方法がありましたら教えてください。
293 :
nobodyさん :2008/03/03(月) 16:17:11 ID:g0NPU4km
>>292 検索して調べれば判る事は自分で調べなさい!アホ
263行目を
$user_agent =~ /^J-PHONE|^Vodafone|^SoftBank/
に変更すれば判別出切る筈です。
294 :
nobodyさん :2008/03/03(月) 17:45:27 ID:ztXniNQN
記事ナンバーって何?
296 :
nobodyさん :2008/03/03(月) 18:25:38 ID:ztXniNQN
>>295 掲示板とかについてる記事の番号です。
一つの記事ごとに番号を付けたいんです。
それ本当に自分で作ったの?
298 :
nobodyさん :2008/03/03(月) 21:58:38 ID:ztXniNQN
299 :
nobodyさん :2008/03/04(火) 23:01:12 ID:8AwOHZTZ
【 CGI&PHP名 】 簡易コメント ver1.0
【 配布先URL 】
http://nurupo.biz 【 依頼期限 】 1週間以内
【 依頼内容 】
>>1 みたいにアンカー機能を付けて頂きたいです
75行目 my $max = @DATA;
76行目 my $res_no = undef;
96行目と97行目の間に追加 $res_no = $max - $i + 1;
97行目 print "[$date] $res_no. $text\n";
を追加でレス番号が付くのはわかったんですけど
正規表現が分からないので、調べられません(ToT)
正規表現のどの辺が分からんって?
>>294 日本語で失礼。
投稿内容をログファイルに書く前に、直前のログを取り出す。
そのログにある数字を取り出して、+1したものを最新記事のナンバーとする
そのナンバー+投稿内容としてログファイルに追記
ただの更新履歴ならコレで問題ない・・・・と思う
コードはあなた以上の初心者なので勘弁。
302 :
nobodyさん :2008/03/05(水) 20:35:19 ID:Wm0WO3jS
>>300 アンカーの構造から分かりません(∋_∈)
どこまでは考えた?
304 :
nobodyさん :2008/03/06(木) 00:39:31 ID:UOTbbi+N
えっと、全然発想すら分からないので >>数字 @DATA[数字] それでサブルーチンで取り出して表記する?という事だけです・・・
305 :
292 :2008/03/10(月) 06:53:01 ID:???
>>293 お礼が遅くなってしまいすみません。
方法がさっぱりだったのでぐだぐだになってしまってました。
お答えくださりありがとうございました。
307 :
訂正 :2008/03/16(日) 17:26:49 ID:???
308 :
nobodyさん :2008/04/14(月) 00:14:52 ID:sAfeJoyW
【. CGI名 .】 p++BBS 2006/03/02版 【配布先URL】
http://php.s3.to/ 【ヘルプ内容】
http://www.cj-c.com/にあるChildTreeと同様の記事リストで 、レスの更新時間を読んでUP!と表示させたいです。
自作の下記の処理だと親記事の更新時間しか読めてないため、レスがついてもNew!表示時間が延長されません。
レスの更新時間も読みにいく処理がうまく書けませんでした。お助け頂けたら嬉しいです。
素人のクソな処理なので効率化の突っ込みも大歓迎です。よろしくお願いします。
改行が多いと怒られたのでまとめてます…
function Kijilist(){
global $SCRIPT_NAME,$log;
array_shift($log); //要素1個目に非ログがあるので削除
foreach($log as $l){ list($ano,$no,) = split(',',$l); $carray[] = $no; }
$cdata = array_count_values($carray); /*要素数数えて格納*/ $tim = time(); $tgcnt = 0; /*別機能用*/ $page = $_GET['page']; /*別機能用*/
foreach($cdata as $key=>$val){
foreach($log as $l){
list($ano,$no,$res,$now,$name,$email,$sub,$com,$url,$ho,,$pco,$pk,$cnt,$uid) =split(',',$l);
if($res==0 && $no == $key) {
$val = $val-1;//親記事もカウントしてたのを除外
if($tim-$pk<NEWTIME * 3600) { //NEWTIMEを宣言しないとエラー
if($page <= 0 && $tgcnt<PAGEVIEW){ //PAGEVIEWを宣言しないとエラー
echo "<a href=\"#$no\">".NEWIMG."{$sub}($val)</a> | ";$tgcnt++; //NEWIMGを宣言しないとエラー
} else {
echo "<a href=\"$SCRIPT_NAME?mode=all&no=$no\">".NEWIMG."{$sub}($val)</a> | ";$page--;
}
} else {
if($page <= 0 && $tgcnt<PAGEVIEW){
echo "<a href=\"#$no\">$sub($val)</a> | ";$tgcnt++;
} else {
echo "<a href=\"$SCRIPT_NAME?mode=all&no=$no\">$sub($val)</a> | ";$page--;
}}}}}}
309 :
308 :2008/04/14(月) 12:41:15 ID:???
クソな処理なのは変わりませんが、自己解決できました。
313 :
nobodyさん :2008/05/14(水) 17:55:06 ID:1VhcNHK7
【. CGI名 .】 phpexit ver.1.1.4
【配布先URL】
http://chibinowa.net/ 【. 置き場所 .】
http://chibinowa.net/webapp/phpexit.html 【ヘルプ内容】
項目の追加をお願いします。
配布先にスクリーンショット画面がありますが、
一覧部分の「webplog>perl」の部分(カテゴリの部分)の上部に、2件の項目を追加したく思っています。
追加項目の内容は、1件はテキストエリア、2件目はコメント欄と同じくらいの文章です。
個人で、テキストエリアの追加は出来たのですが、肝心の一覧にその部分が表示されず、行き詰っています。
lib/cmd/edit.php、item.php などを弄ってあります。
ご助言お願い致します。
314 :
nobodyさん :2008/05/16(金) 23:46:50 ID:oqDS1N2X
313です。自己解決しました。
315 :
nobodyさん :2008/05/17(土) 02:10:38 ID:Td8Jyj+I
foreach (@lines) { ($noa,$Yeara,$Montha,$Daya,$suba,$tail1a,$W1a,$H1a,$com1a,$tail2a,$W2a,$H2a,$com2a,$tail3a,$W3a,$H3a,$com3a, $tail4a,$W4a,$H4a,$com4a,$tail5a,$W5a,$H5a,$com5a,$tail6a,$W6a,$H6a,$com6a,$tail7a,$W7a,$H7a,$com7a, $tail8a,$W8a,$H8a,$com8a,$tail9a,$W9a,$H9a,$com9a,$tail10a,$W10a,$H10a,$com10a,$hosta) = split(/<>/); ひどい処理だな。 一応html部から全て項目を増やせば動作するはず。 あるいは1件1行として全体的にリビルドしてしまうか。
まず拡張子合わずと記録する部分を見つけるんだ そしたらそこの条件を見るんだ そしたらそこでbreakするなりexitするなりしてアップロードできないようにするんだ
sub error{ my ($no,$note) = @_; if (length($note) > 64) { $note = substr($note,0,64).'...'; } $note =~ s/&/&/g; $note =~ s/\"/"/g; $note =~ s/</</g; $note =~ s/>/>/g; $note =~ s/\r//g; $note =~ s/\n//g; $note =~ s/\t//g; $note =~ s/\0//g; my ($message,$dispmsg,$flag); if($no == 98){ $message = ""; } elsif($no == 99){ $message = "UpFileなし"; } elsif($no == 101){ $message = "投稿禁止HOST"; } (略) # elsif($no == 108){ $flag = 1; $message = "POSTデータ不完全"; $dispmsg = '<tr><td>ファイルをアップロードできませんでした</td></tr><tr><td>POSTデータが不完全です</td></tr>';} elsif($no == 109){ $flag = 1; $message = "POSTKey不一致"; $dispmsg = '<tr><td>ファイルをアップロードできませんでした</td></tr><tr><td>POSTKeyが一致しません</td></tr>';} elsif($no == 202){ $flag = 1; $message = "拡張子合わず"; $dispmsg = '<tr><td>ファイルをアップロードできませんでした</td></tr><tr><td>投稿できる拡張子は'.$set{'up_ext'}.'です</td></tr>';} 見つけたけどわからない・・・orz
エラーナンバー202を記録してるとこ探せばいいだろw
{#メイン処理 if(!$in{'upfile'}){ &error(99); } if($set{'post_flag'} && !check_postkey($in{'postkey'})){ error(109); } if($set{'dlkey'} == 2 && !$in{'dlkey'}){ unlink("$in{'tmpfile2'}"); &error(61); } open(IN,$set{'log_file'})||&error(303); my @log = <IN>; close(IN); my ($no,$lastip,$lasttime) = split(/<>/,$log[0]); if($set{'interval'} && $set{'interval'} && $in{'time'} <= ($lasttime + $set{'interval'}) && $in{'addr'} eq $lastip){ &error(203);} $in{'ext'} = extfind($in{'orgname'}); if(!$in{'ext'} && $in{'upfile'}){ &error(202); } my $orgname; if(split(/\//,$in{'orgname'}) > split(/\\/,$in{'orgname'})){ my @name = split(/\//,$in{'orgname'}); $orgname = $name[$#name]; } else{ my @name = split(/\\/,$in{'orgname'}); $orgname = $name[$#name];} ここぐらいしか 202 ってところないけど・・・
もしかしてperlのソース読めないんですか?
>>322 $in{'ext'} = extfind($in{'orgname'}); if(!$in{'ext'} && $in{'upfile'}){ &error(202); }
この行をどうにかすればいけるぐらいしかわからん
324 :
nobodyさん :2008/05/29(木) 19:57:45 ID:Ql0N4gMP
上げてもよかったのでしょうか…
【. CGI名 .】 Link & Rank
【配布先URL】
http://taitaistudio.com/ 【. 置き場所 .】
http://taitaistudio.com/cgi/linkrank.html 【ヘルプ内容】
ユーザーエディット(sub mente)で、サイト名やサイトURLなどに追加して、
新しい変数($kisyu)を追加して、登録者が対応機種を選択出来る
新しい選択欄を追加したいのですが、どうしてもログに追加されません。
挙げ句の果てにはズレてIPが表示されてしまいます。
配布元は改造のサポートは行っていないとの事なので、完全にいきずまってしまいました。
どなたか、御教授よろしくお願い致します。
もっと詳しくかつ明瞭に。
326 :
324 :2008/05/30(金) 19:04:03 ID:mgybmJwP
ちょっと説明しづらいのですが、 デフォルトでランキングの登録者がサイト名やサイトURL、バナーURL、キーワード、サイト紹介文を決められるのに追加して、 例えば、『サイト詳細』などの新しい項目を作りたいです。 しかし、何度やってもログに記録されずにログから呼び出すことも出来ません。 わかりにくい説明かとは思いますがよろしくお願い致します。
「何をどうやった」のかを「具体的に」説明してくれないと こっちもアドバイスのしようがないんだが
328 :
nobodyさん :2008/05/30(金) 21:26:46 ID:mgybmJwP
全てに新しい変数を追加しました。
┓( ̄∇ ̄;)┏
1.設定で現在の書き方を参考に新しい変数を作ってデータを入れる 2.メインcgiのhtml出力しているところを見つけて同じように書く 3.メインcgiの書き込み、読み出ししてるところを見つけて同じように書く 以上
>>332 2725行?入れるところはそこじゃないと思うよ。
from : $ENV{REMOTE_HOST}($ENV{REMOTE_ADDR})
agent : $ENV{HTTP_USER_AGENT}
という行の下に以下を追加する
name : $CommentName
message : $CommentMsg
文字化けで読めなかったら
$CommentName
$CommentMsg
をjcodeでjisコードに変換する文をsub SendMailRcvNotice{の下の行に追加
>>333 ありがとうございました!
ちゃんとできました!
335 :
nobodyさん :2008/08/07(木) 13:46:25 ID:qpI1q2Ei
【CGI名】 PRTC BBS
【配布先URL】 一般に配布されていません
【ヘルプ内容】暗号化をしたいです
http://www.rescue.ne.jp/cgi/htpasswd/makepwd-des/ このサイトのような感じで(もっと簡素でも構いません)
とにかく出力をしたいんです
下記のソースでcgiを動かしたいのですが、初心者でわかりません
知識不足なのはわかっているのですがどうしてもやりたいです
よろしくお願いします
sub enc_string{
my ($key, $string) = @_;
my @map = (('A' ... 'Z'), ('a' ... 'z'), ('0' ... '9'), '+', '&');
my @key = unpack('C*', $key);
my $str = '';
my @x = map { int(rand(200)) } (0 ... 2);
@key = map {$x[$_] ^ $key[$_]} (0 ... 2);
while($string ne ''){
my $n = substr($string, 0, 3, '');
my @n = unpack('C3', $n);
map{$n[$_] ^= ($key[$_])} (0 ... 2);
336 :
335 :2008/08/07(木) 13:47:25 ID:???
@key = unpack('C3', $n); @key = map {$x[$_] ^ $key[$_]} (0 ... 2); my $a = $n[0] >> 2; my $b = (($n[0] & 3) << 4) | ($n[1] >> 4); my $c = (($n[1] & 15) << 2) | ($n[2] >> 6); my $d = $n[2] & 63; $str .= $map[$a] . $map[$b] . $map[$c] . $map[$d]; } my $a = $x[0] >> 2; my $b = (($x[0] & 3) << 4) | ($x[1] >> 4); my $c = (($x[1] & 15) << 2) | ($x[2] >> 6); my $d = $x[2] & 63; return $str.'<>'.$map[$a].$map[$b].$map[$c].$map[$d]; }
337 :
nobodyさん :2008/08/09(土) 03:15:31 ID:pVYfvjSg
>>335 それは暗号化キーと暗号化対象文字列を引数に取り、暗号化後の文字列二種を '<>' 区切りで返すサブルーチンです。
あとはそのサブルーチンを適切な引数で呼出し、返値を受取って表示するだけです。
この場合、引数は基本的に任意ですから、必要なものを与えてください。
値の与え方が分からない場合は暗号化アルゴリズムについて調べてください。
ルーチンの呼出し方、または返値の受取り方が分からない場合は、Perl のサブルーチン呼出しについて調べて下さい。
プログラムでの値の受取り方、または値の表示の仕方が分からない場合は、CGI の基礎を学ばれるべきだと思います。
339 :
nobodyさん :2008/08/22(金) 12:34:43 ID:HAxZZ1Pz
>(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い
341 :
nobodyさん :2008/08/22(金) 12:58:25 ID:HAxZZ1Pz
>少しは自分で考えること
>>342 もしかして
# 投稿順にソート
@new = @new[sort {$sort[$b] <=> $sort[$a]} 0 .. $#sort];
regist.plのここですかね?^^;
>>344 やってみました^^
これと
@new = @new[reverse sort {$sort[$b] <=> $sort[$a]} 0 .. $#sort];
これを
@new = reverse(@new);
@new = @new[sort {$sort[$b] <=> $sort[$a]} 0 .. $#sort];
試しましたが無理でしたorz
>>345 reverse() までたどり着いてんならあともう一歩だ。がんばれ。
lib/phone/read.plの220行目 while (<IN>) { ↓ for (reverse <IN>){ ってな感じじゃないかな
>>347 while と for では $_ のスコープに関する扱いに違いがある点に注意。
また逐行処理前提で書かれたループ内のコードが適切でない可能性があるよ。
読んでないからどう影響するかはわからんけど応援してみる。
>>346 >>348 ありがとうございます(^o^)
>>347 解りやすくありがとうございます^^
出来た!と思ったのですが(ひっくり返りました(感動))
1ページ表示数以上のレスが付くと一番新しいレスが2ページ目に行ってしまいます(涙)
@new = @new[sort {$sort[$a] <=> $sort[$b]} 0 .. $#sort]; でどうだ?
>>350 2カ所とも試してみましたが変わりませんでした(;.;)
ありがとうございました。
352 :
347 :2008/08/23(土) 09:49:35 ID:???
>>349 あとは表示するレスの抽出だけみたいだから
$i = 0;
while (<IN>) {
$i++;
if ($i <= $from) { next; }
if ($i > $to) { last; }
chop;
↑の部分(read.pl220行目辺り)を
$i= 0; my @line;
while (<IN>){
$i++;
if ($i <= $from) { next; }
if ($i > $to) { last; }
push(@line, $_);
}
for (reverse @line){
chop;
ってな感じじゃないかな
>>352 見事に出来ました(T.T)
非常に解りやすく教えて頂き本当に感謝致します。
ありがとうございましたm(__)m
354 :
nobodyさん :2008/08/24(日) 20:26:26 ID:8OT0ZHuq
【. CGI名 .】 HiLink ver1.12(サンプルAバージョン)
【配布先URL】
http://www.e-hws.net/ 【. 置き場所 .】
http://www.e-hws.net/hilink.html 【ヘルプ内容】
リンク登録時に特定のカテゴリーを選択したとき、表示部のテーブル背景色を変更したいです。
hilink.cgiの「表示データ作成」部分に以下のように追加し
if ($category eq 'ああああ' ){$cate_clr="red";}
elsif ($category eq 'いいいい ){$cate_clr="blue";}
else {$cate_clr="#999999";}
スキンのmain.htmlで、テーブルタグにbgcolor="$cate_clr"と入れてみましたが
うまくいきませんでした。
なにぶん手探りで、何かおかしなことをやらかしているかもしれないのですが
なんとかご教授いただけると嬉しいです。
どうかよろしくお願いします。
355 :
nobodyさん :2008/08/24(日) 20:38:01 ID:ZUYvYMes
>>355 headline.phpの144〜146行目
144: for($j=7; $j<count($files); $j++){//残りはHTMLデータ
145: $line.= $files[$j];
146: }
の下に、以下の行を加える。
$line = preg_replace('/<script[^>]*>.*<\/script>/','',$line);
表示時だけでなくデータ取り込みの際にも<script>を除去したければ、85行目の上にも同じものを入れる。
84: if($start || !$head[start]){
85: $new.= $line;
検証してないけど。
357 :
nobodyさん :2008/09/02(火) 17:46:02 ID:ikXIt5qG
【 CGI名 】配布用web拍手CGI
【配布先URL】
http://www.webclap.com/ web拍手CGI公式サイトさんのところで無料配布のスクリプトをもらってきたのですが、
ファビコンがプロバイダ側のへんてこファビコンなので変えたいのです!
自サイトのhtmlページでは自作のファビコンで被せてあるのですが、CGIでファビコンを
つけるのはどこをどういじったら良いですか?
clapinit.txt (cgi) このファイルがあやしかったので、
#--------------
# HTMLヘッダー
#--------------
sub header{
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',"\n";
print '<html lang="ja"><head>',"\n";
print "<title>$title</title>\n";
print "</head>\n";
この内に
print "<link rel="shortcut icon" href="favicon.ico">\n";
↑これを加えてみたのですがダメですた。
他にもいじらないとダメだったりするのでしょうか。
もしかして根本的に間違ってたりするのでしょうか…。
どなたかお助けください。
スクリプトダウンロード先は
http://www.webclap.com/etc/download.html ←ここです。
print qq|<link rel="shortcut icon" href="favicon.ico">\n|; 書くならエスケープしないと
359 :
357 :2008/09/02(火) 18:21:23 ID:ikXIt5qG
358さん、ありがとうっ! できました。ヽ( ´ ∇ ` )ノ エスケープてなんのことかさっぱりですが、助かりました! ありがとうございましたー。
PHP限定で改造やります 改造したものはHPで公衆発信します まず以下の情報を書いてレスよろ [スクリプト名]名前は正確に!! [配布先URL]二次配布できるかできないか確認するためです。うpローダに置いてあったらスルー [改造内容]何をどのように改造したいのか詳しく。あいまいな内容は基本的にスルー
>>361 スレの趣旨から反するから改造丸投げはNG
一部も丸投げもどっちでもいいよ
map+1409.txt;50;60
>>366 配布元の制限を読むと、あなたが配布元に連絡していない場合、
今回のアップロードは「スクリプトの無断再配布」に当たり、
同サイトの提示するライセンスに抵触する可能性があります。
権利関係を再確認してください。
368 :
nobodyさん :2008/09/26(金) 20:08:56 ID:ze4UkUPR
【. CGI名 .】toshinariスクリプト(Perl)
【配布先URL】
http://www.toshinari.net/ 【ヘルプ内容】
としなり掲示板にリモートホスト、IPを取得できるように改造してください。
できれば/BBSID/log/00000.cgi
みたいに掲示板IDディレクトリに新しくlogディレクトリを作成してcgiファイルで保存するようにして
それでレス削除画面にリモートホスト、IPを表示させるようにしてくれるといいです。
あと、ここからは希望ですが
リモートホスト(IP)規制機能と透明あぼーん機能をつけてください。
報酬はリモートホスト、IP取得が500P
リモートホスト(IP)規制機能、透明あぼーんまで追加してくださったら+500P払います
Pって何やねん
370 :
368 :2008/09/26(金) 20:35:04 ID:ze4UkUPR
>>368 すいません、書き忘れてました
ウェブマネーのことです。
371 :
368 :2008/09/26(金) 20:36:50 ID:ze4UkUPR
ケチくさいにもほどがあるな
>>368 「ここからは希望」ってあるがじゃあその前は何なんだ
375 :
368 :2008/09/27(土) 07:15:06 ID:DmLoG2K4
すいません。書き直します
ダウンロード場所:
http://cgi.toshinari.net/wiki.cgi スクリプト名:toshinariスクリプト
どんな風に改造するか:
としなり掲示板にリモートホスト、IPを取得できるように改造してください。
/BBSID/log/00000.cgiという感じにlogディレクトリにcgiファイルで保存するようにしてほしいです。
報酬はWM1000Pです。
これからは希望ですが
IP規制と透明あぼーんもつけてもらえれば幸いです。
>>375 で、どこまでやったのさ?
自分で全然やる気ないなら丸投げスレへ行け
377 :
368 :2008/09/27(土) 16:52:29 ID:DmLoG2K4
>>376 どこまでやったというと?
がんばってもできないから改造依頼したんですが・・・
あと、dat落ちしていない丸投げスレのURL教えてください。
これはひどい
379 :
368 :2008/09/27(土) 19:14:47 ID:DmLoG2K4
なんとか自分でできそうです
380 :
368 :2008/09/27(土) 19:25:04 ID:DmLoG2K4
なんとかできました
丸投げスレがまた即死したので立てときました。 こっち(工房)にまとめようという意見もあるようですが、一種の隔離スレみたいな 意味合いもあると思うので、やっぱあった方がいいかと……
hi, you have super site.,
【. CGI名 .】 ショッピングカート WebCart 2.3x
【配布先URL】
http://www.cgis.biz/script_web_cart/ 【ヘルプ内容】
サンプルを見ていただくとわかると思いますが、商品の並び順が新しい番号が
上にくるようになっています。
これをNO.1から表示するようにしたいのですが、どこを改造すればよいか
ご教授ください。
私が見た中で、ここかな?と思ったのは、view.phpの153〜154行目と思ってい
ますが、どうでしょうか。
じゃやれよ
>>386 じゃやれよって言われても…どう変えればいいのかわからないから聞いているの
ですが?
自分でできそうだったらすでにやってますが、場所が見当ついても、何を変えれ
ばいいのかわからず、作者さんもお忙しいとお聞きしましたので、ここで聞いて
みたのですが…。
分からないなりに当たりつけてやってみなよ まさか100%何も見当付かないってことはあるめえ?
言語がわからんってことなら丸投げいけば?
390 :
385 :2008/10/05(日) 11:16:52 ID:???
丸投げスレにて教えてもらいました。 誘導ありがとうございましたm(_ _)m
回答もらってからこっちを終わらせるとかほんと悪質だなw
392 :
nobodyさん :2008/10/07(火) 23:59:17 ID:Zxtb1+eC
393 :
nobodyさん :2008/10/27(月) 20:40:50 ID:vjLKC+JQ
【CGI名】スレ天
【場所】
http://cgipon.specters.net/tengoku/download.html 【ヘルプ】トリップつけれるようにしたい
ググったらそれらしいのはなんぼかみつかったけど
入れる場所とかわかりません。
ご教授よろしくおねがいします。
★ ワンポイント
2chのトリップ生成方法は以下のようになっています。
($name, $tripkey) = split(/\#(.+)/, $form{'name'});
if($tripkey){
$salt = substr($tripkey.'H.', 1, 2);
$salt =~ tr/\x3A-\x40\x5B-\x60\x00-\x2D\x7B-\xFF/A-Ga-f./;
$salt =~ s/[^\.\/0-9A-Za-z]/\./g;
$trip = '◆'. substr(crypt($tripkey, $salt), -10);
}
print "$name$trip";
394 :
nobodyさん :2008/10/27(月) 20:42:05 ID:vjLKC+JQ
書き込み処理直前、クッキー発行後 <ここから> #トリップ機能 $in{'name'} =~ s/◆/◇/g; $in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e; </ここまで> #----------------# # トリップ生成 # #----------------# sub trip { my $key = shift; $key =~ s/"/"/g; $key =~ s/</</g; $key =~ s/>/>/g; my $salt = substr("${key}H.", 1, 2); $salt =~ tr/\x00-\x2d\x7b-\xff/./; $salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/; return substr(crypt($key, $salt), -8);
395 :
nobodyさん :2008/11/29(土) 15:46:24 ID:kT4OjumG
396 :
395 :2008/11/29(土) 15:48:00 ID:???
# やってみたこと、考えたこと ・lib/RNA.pmの800行目付近、cacheしたサイトのデータをStoreして、sortする前あたりで 除去したらいいのかなと思ってます $self->__cache_sites($new_cache_data); $self->{SiteList}->{RSSArray} = \@rss_array; unless($config->{DateControl}->{AllowFutureEntries}) { $self->remove_future_entries; } $self->remove_ads; # この辺り?
397 :
395 :2008/11/29(土) 15:48:35 ID:???
・lib/RNA/RSS.pmの remove_future_itemsを参考に見よう見まねで書いてみたりもしましたが、 「titleが "PR:" で始まってるitemを除去する」という書き方がわかりませんでした sub remove_ads { my $self = shift; my %arg = @_; my @new_items = (); foreach my $item (@{$self->{items}}) { if (index($item->{title}, "PR:") < 0) { push(@new_items, $item); } } $self->{items} = \@new_items; } ・処理するタイミングも間違ってるかもしれません ・できれば今後のために、除去するitemの指定方法に汎用性を持たせていただけるとなお嬉しいです 以上よろしくお願いします
398 :
nobodyさん :2008/12/12(金) 23:58:00 ID:A0lF4mOo
で、向こうは書きっぱなしで放置逃亡ですか ならマルチは死ねとしか
400 :
nobodyさん :2008/12/13(土) 00:28:02 ID:fT/e8zoW
398です。 すいません。 何度か書き込みをしたことはあるのですが、 削除はしたことがなかったのでその辺を何も考えてませんでした。 えと、削除依頼を出せばいいのかな・・ガイドライン読んできます。
>>400 削除依頼じゃなくてさ、このスレに移動しますって書けばおk
402 :
nobodyさん :2008/12/13(土) 09:48:56 ID:fT/e8zoW
>>401 教えて下さってありがとうございます。
向こうのスレに書き込んできました。
以後気をつけます。
>>402 で、このスレは丸投げじゃないんだから自分で出来るところまでやるってのが第一歩。
404 :
nobodyさん :2009/01/30(金) 15:25:22 ID:Mp+dTJwq
【. CGI名 .】 phpexit ver.1.1.4
【配布先URL】
http://chibinowa.net/ 【. 置き場所 .】
http://chibinowa.net/webapp/phpexit.html 【ヘルプ内容】
項目の追加をお願いします。
配布先にスクリーンショット画面がありますが、
一覧部分の「webplog>perl」の部分(カテゴリの部分)の上部に、2件の項目を追加したく思っています。
追加項目の内容は、1件はテキストエリア、2件目はコメント欄と同じくらいの文章です。
個人で、テキストエリアの追加は出来たのですが、肝心の一覧にその部分が表示されず、行き詰っています。
lib/cmd/edit.php、item.php などを弄ってあります。
色々修正してみたり、記述を変えてみましたが、増やした項目部分を登録すると増やしたコメント欄とテキストエリアが同じ内容になってしまったりします。
1度自己解決したのですが、上記問題が出てしまいましたので、どうかご助言お願い致します。
コメント欄とテキストエリアで出力している変数を別にすればいいのでわ?
【. CGI名 .】 0chスクリプト
【配布先URL】
http://0ch.mine.nu/public/scripts/ 0chのtest060227.zip
【ヘルプ内容】
0chのtest060227.zipを使用して掲示板を運営しています。
スレッド一覧( ./subback.html )にもmeta.txtの内容を書き込もうと思い
いろいろ弄ってなんとか形になりました。※meta.txtは掲示板を作って自分で書き込めます。
しかし、これでよいのかどうか自信がもてないため質問します。
varda.plの191
sub CreateSubback{ } 内に
require('./module/legolas.pl');
$Caption = new LEGOLAS;
META($this,$Index,$Caption);
151# HTMLヘッダの出力
$Caption->Print($Page,undef);
他に
sub META{
my ($this,$Page,$Caption) = @_;
my ($title,$link,$image,$code);
$Caption->Load($this->{'SYS'},'META');
}
ミスはないでしょうか?
レンタル鯖にてメール送信CGIを設置したくPerlで継ぎはぎしてやってみたんですが、 メールは送信されるのですが、件名とメアドまで本文の方に来てしまって、 件名が(無題)で送信者がanonymousになってしまいます。 どうやったら件名とメアドを認識してくれるのでしょうか? HTMLの入力フォームは、名前、メアド、件名、本文の4つだけです。
408 :
404 :2009/02/04(水) 19:36:06 ID:KFPddoVr
>>405 解答ありがとうございました。頑張ってみます!
ソースをさらせばいい ↓そのソースじゃねーYO!
>>409 ソースさらします。Perl知らないんでこれが限界っす・・・。
#!/usr/bin/perl
$mailprog = '/usr/sbin/sendmail';
require 'jcode.pl';
#Get the input
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
#Split the name-value pairs
@pairs = split (/&/,$buffer);
foreach $pair(@pairs) {
($name, $value) = split(/=/, $pair);
#Un-Webify plus signs and %-encoding
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$FORM{$name} = $value;
if ( $name ne "to" ) {
push (@fields, $name) unless (grep(/^$name$/, @fields));
}
}
# set recipient address if form is blank
$to = $FORM{'to'};
続きです。 ### 送信フォーマット $mail_msg = ""; foreach $field (@fields) { $mail_msg = "$mail_msg-----------------------------------------------\n"; $mail_msg = "$mail_msg($field) $FORM{$field}\n"; } ### ShiftJis to Jis &jcode'convert(*mail_msg, 'jis'); open(MAIL,"| $mailprog $FORM{'to'}")|| die "Can't open $mailprog!\n"; print MAIL $mail_msg; close(MAIL);
メールヘッダがないではないか?
>>410 まず、スクリプトの先頭に use strict; use warnings; と書いて。
414 :
nobodyさん :2009/02/05(木) 15:06:41 ID:0clwaODI
【. CGI名 .】美しい画像掲示板
【配布先URL】
ttp://w1.nirai.ne.jp/freeze/appli/file06.html 【ヘルプ内容】
・ファイルサイズを800000にしたい
if($filesize <= 100000){
ここを変更するだけでは下記の行がエラーで上手く表示されません
$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);
・画像がない場合の表示
行に画像が1枠しかない場合、残り4枠に'image.jpg' の画像が
表示されるはずが1枠にしか表示されません
どうか力を貸して下さい
エラーでメッセージが出ずに行がそのまま出るの?
416 :
414 :2009/02/05(木) 16:05:49 ID:???
>>415 ファイル名 oo.jpg アップロード成功!
Warning: Division by zero in bbs.php on line 197
と出て、その行(表示させるテーブル)が凝縮されて画像は表示されません。
じゃもう問題分かったようなもんじゃん
418 :
414 :2009/02/06(金) 22:45:19 ID:???
>>417 if($filesize <= 100000)をif($filesize <= 800000)に変えるとなぜ
$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);
がエラーを起こすのか理解できていないので解決できません
いや検証して理解すれよ
糞スクリプト過ぎるな。 とりあえずその行の直前ででも関係する変数を適当に出力してみれ。 ゼロ除算なのだから、割る数のうちいずれかが0になっている。 値がおかしい変数が見つかったら、その変数に値を設定している部分を全部洗い出して、どういう風に値が変わっていくか調べろ。
421 :
420 :2009/02/07(土) 01:08:19 ID:???
配布CGIが糞なのは今に始まった事じゃないから諦めて整理しつつ読んだ。 問題はその変更じゃないな。変な画像が混ざってるんじゃねぇか? データはそのままで改造前のスクリプトを設置したらちゃんと動くのか?
422 :
414 :2009/02/07(土) 13:19:00 ID:???
>>421 アップして表示するのに関しては正常に動きます
画像がない場合の表示はダメです
理想 現実
■□□□□ ■××××
■アップした画像
□画像がない場合に表示する画像
×イメージがない
表示してみなよ $a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h); の直前に print "Content-type: text/plain\n\n$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);\n"; exit; みたいに書いてさ・・
424 :
414 :2009/02/07(土) 14:58:22 ID:???
>>423 ありがとう。テーブルの幅を変えているからダメなんでしょうか?
何かやればやるほど色んな不具合が見つかり心が折れそうです
これは止めておいた方がいいスクリプトですかね( ^ω^)
いや言われたことやれよ・・・
まあ、問題の切り分けをしようとも考えない>414にはお似合いのレベルだけどな。 image.jpgがスクリプトと同じディレクトリに無いだけ、に一票。 どう見えるかなんざ枝葉末節の問題に過ぎないんだから、HTMLソースどうなってるのか確認しろよ。
設置することが最終目標の人たちに対して、 デバッグの仕方教えても仕方ないような気がしてきた。
じゃ改造スレじゃなくて丸投げスレ行けと
429 :
414 :2009/02/07(土) 19:01:15 ID:???
>>425 テーブル幅・ファイルサイズを変えて色々試しました
ファイルサイズが関係無い事はわかったのですが
何がいけないかわからなかったです
>>426 422の現実は下記の間違いでした
■□×××
>423 >表示してみなよ >表示してみなよ >表示してみなよ >426 >HTMLソースどうなってるのか確認しろよ。 >HTMLソースどうなってるのか確認しろよ。 >HTMLソースどうなってるのか確認しろよ。 (日本語が分からないようなので3回言いました)
432 :
414 :2009/02/07(土) 21:09:57 ID:???
>>430 表示された式をレスすれば解決してくれるの?
ソースを確認と言われても414のサイトにあるソースの
ファイルサイズとテーブル幅以外は変更してないので
確認して貰えれば助かるのですが?
$bosyu の値が1ならば、登録フォームを表示させる。
0ならば、登録フォームを表示させない。
1か0かは、管理人用ページから設定することができる。 という感じでPerlを組みたいのですが、
まだまだ初心者でよく分かりません。
一応、
<input type=radio name=bosyu value=1>表示する
<input type=radio name=bosyu value=0>表示しない
というフォームを作り、登録フォームの表示部分に、
if ( $bosyu == 1 ){
#登録フォーム
}
else {}
というようにしました。
しかし、管理人画面から1にしようが0にしようが、登録フォームはどのみち消えてしまいました。
この場合、どうしたらよいのでしょう?
もしよろしければ、
http://www.77c.org/d.php?f=nk5918.lzh に本体をアップロードしましたので、修正箇所など教えていただけますと助かります。
私自身が追加しましたのは、行381,行382,行678,行683,行684 になります。
>>434 スクリプトを全部見る気はないんで間違っているかもしれんが
684行
else {}
→不要
678行
if ( bosyu == 1 ){
→if ( $FORM{'bosyu'} == 1 ){
437 :
436 :2009/02/08(日) 10:47:01 ID:???
あはw
>>436 は間違ってるわw
設定を別ファイルとかに記録しておかないとダメ!! ゛o(≧◇≦*)oo(*≧◇≦)o″ダメ!!じゃんw
考え方としては
&decode ;の後に
$FORM{'bosyu'}の値が「表示しない」なら別ファイルとかに表示しないという記録をして
$FORM{'bosyu'}の値が「表示する」なら別ファイルとかに表示するという記録をする
678行目のif文では、別ファイルとかに表示するという記録があるかないかで分岐させればいい
>>437 さん
ありがとうございます。
大体構造は理解できました。
if文で変数に値を入力する為には、「記録する」という別の処理が必要なのですね。
まことにお恥ずかしい話ですが、記録させるソースの書き方が分かりません・・・
例として、記録させるためのソースを教えていただけませんか?
(プログラム内容に沿っていなくても構いません。全体的に「どんな感じ」で書けばいいのか掴めれば幸いです。)
>>438 考え方は排他制御を参考にすればいい
$FORM{'bosyu'}の値が「表示しない」ならロックファイルみたいなものを作成し、
$FORM{'bosyu'}の値が「表示する」ならロックファイルみたいなものを削除する
if文はロックファイルみたいなものが存在していなかったらブロックを実行すればよい
annevote.cgiにもロックファイルが使われているからソースをよく読んで自分考えれ
440 :
nobodyさん :2009/02/12(木) 16:19:46 ID:KnJ40Ap9
441 :
440 :2009/02/13(金) 10:24:19 ID:???
>>440 の件、
flockでなんとか動きました。
ありがとうございました。
442 :
nobodyさん :2009/04/02(木) 18:02:40 ID:q5b3212c
>>442 ここは丸投げスレじゃないんだよ。
自分で改造してわからないことを質問するスレなんだよ。
444 :
442 :2009/04/02(木) 21:27:22 ID:???
すいません(´;ω;`)ウッ…
445 :
nobodyさん :2009/04/03(金) 23:39:45 ID:oy8/1v1D
【. CGI名 .】 もっと書き込み隊2
【配布先URL】
http://tackysroom.com/page_cgi2.htm 【ヘルプ内容】
外部のテンプレートファイルを読み込んで表示させたいのですが、うまくいきません。
772行目あたりの「ヘッダー上部書き出し」のところに
open (FT,"/navi.tmp"); #navi.tmpはテンプレートファイルです。
@navi = <FT>;
close (FT);
と書き、表示させたいところに
print @navi;
と書いてみたのですが、表示されません。
解決策ありましたらどうかご教示下さい。
テンプレートに書いてもしょうがないだろ
フリー配布のcgiの改造ヘルプってここでいいのかな…。
【. CGI名 .】arseno-l-0.5
【配布先URL】
ttp://www.geocities.jp/fla774/arseno/ 【ヘルプ内容】 単語の新規登録時に既に登録済みの単語(例えば雨があるのに雨はng。飴ならok)はエラーにする方法が知りたい
やってみたことはdl.cgiの中にあるregist_entryで
「新しい単語を配列に書き込む」って処理があったから、その直前に
新しい単語と配列の単語を比較して、一致したら既に登録済みってことでエラーにしようと思いました。
&catch_continuation( "index", $word, $Ip );
&lock_file;
&get_index_array( \@index ) or &error( 'open_index', __LINE__, 1 );
$newkey = 0;
(追加↓)
foreach( @index ){
&error( 'double_word', __LINE__ ) if @index[1] == $word;
}
(追加ここまで↑)
実際に試してみると、重複して登録できてしまいました。何が原因なんでしょうか。
foreach( @index ){ &error( 'double_word', __LINE__ ) if $_ eq $word; }
449 :
447 :2009/04/29(水) 10:29:59 ID:???
ありがとうございます。 構文ミスってことでしょうか? 試してみましたが、やっぱり重複しても登録できてしまいました。 もしかして入れる場所間違ってるんでしょうか…。
&get_index_array内部処理では末尾の改行付いたままだからな
451 :
447 :2009/04/29(水) 14:48:50 ID:???
つまり &get_index_arrayの単語と比較する前に「改行を除く」か 改行の手前までを比較対象にするようにすればいい、ってことですかね。 やってみます。
foreach( @index ){ &error( 'double_word', __LINE__ ) if $_ eq "$word\n"; } ちと頭悪いがsjisじゃなければこれで良くね?
453 :
447 :2009/04/29(水) 21:36:31 ID:???
試行錯誤してますが、どうもうまくいかないです…。
foreach my $var ( @index ){
my $var == @index;
my $var =~ s/\n//;
&error( 'double_word', __LINE__ ) if my $var_ eq "$word\n";
}
変数作って一旦配列の単語をコピーし、\nを置換で削って比較、と思ったのですが
既存の単語が消えて、新しい単語に置き換わる、という結果になってしまいました。
(雨、宝物、てすと、の3つがあった時、新たにとんかちを追加すると直前のてすとがとんかちに変わる)
>>452 ありがとうございます。試してみましたが、やはり重複登録できてしまいました。
>>453 なんか構文が色々おかしいぞw
foreach my $var ( @index ){
chomp($var);
&error( 'double_word', __LINE__ ) if $var eq $word;
}
myの意味も知らんと色々やらかしちゃってるっぽいな
456 :
447 :2009/04/29(水) 23:30:00 ID:???
>>454-455 ローカル変数にはmyつけるってperlのサイトに出てましたが…違うんですかorz
>>454 の方法を試すと
あめ、山、海の順で登録すると海を追加した後に山が消え、あめがあ行の前に移動して
海があ行先頭にきてしまいました。
どうもchomp命令で改行外すと、索引ファイルが改行なしになって表示が狂うようです。
>>454 のmy $varをやめてchomp( @index)としても同様の結果に。
改行を外すのではなく見ないようにする方がいいんでしょうか。(末尾無視するとか)
>>456 うーん、思ったよりおまいさんのperl知識が乏し過ぎてちょと話がしにくいな。
判定方法は
>>454 のでいいはずだけど、他にもいじっちゃったでしょ。そこがたぶん全然合って無い。
頑張る気持ちは大切にしてあげたいけど、先にもう少しperlの勉強しないと厳しいかも。
急ぎなら丸投げおいで。
458 :
447 :2009/04/30(木) 21:19:55 ID:???
言うとおり、改造前に基本から勉強してきます。 付け焼刃の知識じゃどうにもなんないみたいだし…。 とはいえ自分で中身わかってないと、何かあっても対処できないし 急ぎでもないので丸投げ依頼も今はやめておきます。 ありがとうございます。
CGIゲームの中で、javaスクリプトをつかうには、何が必要ですか?
別に何も?
あえて言うならjavascriptが動作するブラウザ
あれ、そうなんですか? なんで動かないのだろう・・・?
463 :
nobodyさん :2009/05/21(木) 07:04:12 ID:5BoMPyL5
いや、そこで終わられると丸投げも同然なんだがw どこまでやってどこでつっかえてるんだ?
465 :
643 :2009/05/21(木) 20:45:43 ID:???
初めからさっぱりです。 参考になるようなサイトを紹介してもらえればと思ったのですが、丸投げスレの方が妥当なのでそちらに行ってみます。
466 :
nobodyさん :2009/05/26(火) 00:43:47 ID:hNbwwEvZ
【 CGI名 】 アクセスカウンター(01)
【配布先URL】
ttp://plus-code.net/cgi-flash-counter/accesscounter01/ 【ヘルプ内容】
このCGIは、flashでカウンターを表示しているのですが、
カウンターをクリックすると、配布URLのトップページに飛ぶようになっています。
flash(swf)自体にリンクが設定されているのですが、なんとかこれを無効にする
方法はないでしょうか?
リンクの無効が無理なら、リンクが同窓で開くため、最低限別窓で開くようにしたいです。
タグでa hrefのtargetを指定してもNGでした。
>>466 swfに埋め込まれてる動作だから無理。
作者に要望出すしかない。っていうか本来そっちが先。
469 :
468 :2009/06/05(金) 17:12:47 ID:???
失礼しました、置き場所のファイルNoは2087です。
一ヵ所どう見ても</form>で閉じてない糞スクリプトだなw
471 :
470 :2009/06/05(金) 17:35:10 ID:???
答えるにはこのCGIに送信しているメールフォームの本文書く欄のtextareaのnameが判ったほうが やり易い
472 :
468 :2009/06/05(金) 19:39:42 ID:???
<form action="./mcarrier.cgi" method="post" id="form">
<textarea name="message" cols="20" rows="5" ></textarea>
<br>
<input name="submit" type="submit" value=" 送 信 " id="sousin"/>
</form>
htmにはこのように記述しています
>>470 自分でカスタマイズするうちにおかしくいじってしまったのかもしれません、
どこの部分を閉じていないかもわかっていないのですがご指摘ありがとうございます
473 :
468 :2009/06/05(金) 19:43:34 ID:???
474 :
470 :2009/06/05(金) 20:06:16 ID:???
150行目に↓を加えると大丈夫だと思うけど
>>473 みたいに「かなカナ」以外の日本語でもエラーにしたいなら
$in{'comment'}を$in{'message'}にすればいい。あと、荒らしに対してエラー文で"日本語を書いてください。"ってヒント与えるのはいただけない
if ($in{'message'}!~/(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]|[\xA1-\xDF]){2}/){ &error("Busy now!"); }
>>474 回答ありがとうございます。
早速150行目に上記の文を書き加えると、思った通りの動作をしてくれました。
一日中考えて調べてわからなかったので本当に感謝です。
神様(∩´∀`)∩
476 :
475 :2009/06/08(月) 19:03:02 ID:???
CGIのことをちゃんと勉強したいので初心者向けの書籍を探していますが 近所の書店には自分に合いそうなものがありません。 御薦めの本を知っている方いますか? スレ違いすみません
スレ違いってわかってんなら移動しようぜ・・・
478 :
476 :2009/06/09(火) 06:40:19 ID:???
479 :
nobodyさん :2009/06/13(土) 16:33:54 ID:FybrAREw
【. CGI名 .】 プチ☆ボード
【配布先URL】
http://www.kent-web.com/ 【ヘルプ内容】
sub add {
&header;
print <<"HTML";
<html>
<body>
<form method="post" action="./petit.cgi">
名前:<input type="text" name="sname" size="20" maxlength="8"><br>
<input type="submit" value="投稿する">
</form>
</body>
</html>
HTML
exit;
}
こんなサブルーチンを作る。
petit.cgi?mode=add
で呼び出したフォームから、書き込みが出来るようにしたい。
投稿内容がメチャクチャ多くなる予定なので、別ページでフォームを作りたいのです。
>479 プログラムにする必要すらなく、そのHTMLソースを丸ごとHTMLとして保存して設置すれば、とりあえず投稿はできるはず。 あとはCGIのほうからフォームを書き出してる箇所を削ってリンクでも置いておけばいい。
ありがとうございます!目からウロコでした。 これをやって思い出したのですが、投稿項目を凄く(少なくとも30個以上)にしたいのです。 たとえば、初期状態だと ・お名前 ・Eメール ・タイトル ・コメント ・URL ですよね。 たとえば、これに新しく ・出身地 という項目を追加するとして、フォームを書きます。 name属性をsyussinとします。 これをスクリプトのどの辺にスカラー変数として追加したら出来るのか?がわからないのです。 どうやらログファイルに追加はできたようなのですが、掲示板上には表示がされていません。。。
>>481 そういう用途には向かないCGIだね。
WEBフォームとかアンケートで別なもの探したほうがいい。
483 :
nobodyさん :2009/06/13(土) 18:20:46 ID:FybrAREw
失礼しました、これだけではわかりませんよね。 オリジナルでは364行目の ($no,$reno,$date,$name,$mail,$sub,$comment,$url,$host,$pw,$color) を、〜$color,$syussin) と追加。 397行目の print "<blockquote><font color=\"$color\">$comment</font></blockquote>\n"; を、〜$comment,$syussin</font></blockquote>\n"; と追加。 517行目の unshift(@new,"$no<><>$date<>$in{'name'}<>$in{'email'}<>$in{'sub'}<>$in{'comment'}<>$in{'url'}<>$host<>$ango<>$in{'color'}<>$in{'icon'}<>\n"); を、〜$in{'comment'}<>$in{'syussin'}<>〜 と追加しています。 私の頭以外ではどこが抜けているのでしょうか?
>>482 すみません、あくまでも例えでして。
アンケートではなくて、レスのできる掲示板で作る必要があるのです。
昔はとあるゲストブックで項目を追加したりしていたので、簡単にできるかな?と思ったのですが、難しいですね。
>>483 考え方はそれで合ってるし、実際いま俺がやってみてもそれで普通に表示されてる。
本当にログファイルに追加できてる?
「どうやら」とかじゃなくてちゃんと確かめた?
君が書いた517行目の順番と364行目の項目の順番をよーく見てごらん
・・・理解しました。(恥 一回吊ってから目的のスクリプト作成にむけてがんばります! ありがとうございました!
489 :
nobodyさん :2009/06/18(木) 03:54:24 ID:O7fG+jDb
>>489 どこまでできてて、どこでつまづいてるのさ?
491 :
489 :2009/06/18(木) 14:13:06 ID:???
クッキー関係は全く分かりません
じゃ基礎から学べよ
493 :
489 :2009/06/18(木) 16:05:19 ID:???
分からないのでここで質問しています。 分かる方いらっしゃいましたらどうぞよろしくお願いします<m(__)m>
丸投げなら丸投げスレでやれ
とりあえず17行目に↓を追加すれば記憶できると思うが setcookie("pass", $_POST['pass'], time()+60*60*24*30 ); setcookie("downpass", $_POST['downpass'], time()+60*60*24*30 );
496 :
489 :2009/06/19(金) 05:38:58 ID:???
497 :
ぶぅ子 ◆0cRRT9dSGg :2009/08/16(日) 01:42:29 ID:M5z+7f3F
こんばんは。
【スクリプト改造依頼スレ】(丸投げ)part7再々で投稿したら、
こちらへ誘導されたので投稿します。
よろしくお願いします。
【 CGI&PHP名 】 余裕派掲示板ver2.62
【 配布先URL 】
http://cgipon.specters.net/ 【 ヘルプ内容 】 WAP2.0対応にしたいです。
お世話になっているお店のサイトの掲示板で運用されているのですが、
配布されている状態のままだと、auの携帯からの表示、投稿が出来ません。
実際にサイトを作成した人は消息不明で困っている店主さんから相談を受けました。
現状はgoogleなどで検索をし、
USER_AGENTの記述を変更すれば良いのかと認識していたのですが、
やっぱりこれだけでは足りないのでしょうか?
例えば[yoyuuha.cgi]を開き、
$mob{car} = 'UP.BROWSER';
の部分を
$mob{car} =~ m/^KDDI/
に変更という具合に。
本を読んだり、ネット検索などをしていますが自分の理解が追いつかない状態です。
すみませんがよろしくお願いします。
で、それでダメだったの? 流石に他人のためにパケ代使って確認する気にはなれないぜ?
>>497 というかできないならできないってちゃんと言った方が良いんじゃないのか?
今後ことあるごとに頼まれるパターンだぞそれ。その度にここ来るのかよ。
500 :
ぶぅ子 ◆0cRRT9dSGg :2009/08/16(日) 22:44:37 ID:M5z+7f3F
こんばんは。 >498 失礼しました。肝心の結果ですが、497に書いた内容を試した所、 auの携帯(W63K)では既に投稿されている内容の閲覧だけは 出来るようになってます。 でも、他キャリアの携帯でアクセスした時のように 投稿フォームやボタンなどの表示は無く、ただテキスト表示のみです。 >499 相談を受けた段階では、出来るor出来ないの即答はしませんでした。 本やネットで調べて出来そうなら試してみます、という返答のみです。 今回の相談内容だと有料でプロの方にお願いするような内容となるのでしょうか? 他のスクリプトへ変更するように提案した方が良いのかなぁ。
>>500 プロに依頼するレベルかどうかはともかく、あんたが出来ないんだから
まずはその事を伝えるべきだろう。
他の物に変えるか、金払って対応するかどうかを決めるのはその店主とやらの仕事。
どなたかご教授下されば幸いです。
get-flash-videos -Google Code
http://code.google.com/p/get-flash-videos/ 数々の動画サイトからコマンドラインで動画を取得するツールなのですが、
ニコニコ動画にてダウンロードするファイルが恐らくswfだった場合、下記エラーメッセージが表示されダウンロードに失敗します。
--------------------------
Using method 'nicovideo' for
http://www.nicovideo.jp/watch/nm7382869 Error: No ID found
Couldn't extract Flash movie URL. This site may need specific support adding,or fixing.
--------------------------
Perlが大好きで勉強しつつ、swf対応にしようと書き換えているのですが上手く行きませんorz
どなたかswf対応に書き換えた後のdiff結果を頂けないでしょうか…
よろしくお願い致します。
大好きだったら自分で調べろよと
>>502 もう見てないかもしれんし, 板違いかもしれんけど, ソース見るついでに
弄ったら一応落ちてきたので, せっかくだから貼っておきます.
indent の空白が全角になるかもしれんから, 適当に手パッチした方が無難かも.
1番目のは smXXX 以外を弾く仕様になってたので, nmXXX も許すようにしただけ.
2番目のは問答無用で suffix が flv になるのようなので, 動画形式に合わせた
suffix にするようにした. なくても nmXXX は落ちてくる.
3番目のは取得したデータが動画かどうかチェックするルーチンが swf に
対応してないようなので対応させた. 先頭 3bytes が "CWS" らしいが,
いい加減に調べただけなので, なんかあっても知らんがな.
509 :
508 :2009/09/27(日) 13:13:22 ID:???
--- get_flash_videos-1.15.orig 2009-09-27 11:48:37.000000000 +0900
+++ get_flash_videos-1.15 2009-09-27 13:12:42.000000000 +0900
@@ -2010,7 +2010,7 @@ use URI::Escape;
sub find_video {
my ($self, $browser, $embed_url) = @_;
- my $id = ($embed_url =~ /(sm\d+)/)[0];
+ my $id = ($embed_url =~ /([sn]m\d+)/)[0];
die "No ID found\n" unless $id;
my $base = "
http://ext.nicovideo.jp/thumb_watch/$id ";
@@ -2029,7 +2029,9 @@ sub find_video {
$browser->get($base . "/$playkey");
my $url = uri_unescape(($browser->content =~ /url=([^&]+)/)[0]);
- return $url, title_to_filename($title);
+ $url =~ m{/smile\?(.)=} or die;
+ my $type = { qw( v flv m mp4 s swf ) }->{$1} or die;
+ return $url, title_to_filename($title, $type);
}
1;
@@ -3318,6 +3320,9 @@ sub check_magic {
# Other QuickTime
} elsif(substr($data, 4, 4) eq 'moov' || substr($data, 4, 4) eq 'mdat') {
return 1;
+ # SWF
+ } elsif(substr($data, 0, 3) eq 'CWS') {
+ return 1;
}
return 0;
510 :
502 :2009/09/27(日) 17:37:37 ID:???
>>508 >>509 ありがとうございます!
実は毎日見てたよこのスレ…
ずっと色々試してたけど上手く行かなかった…
助かりました。本当にありがとう!
>>511 スパムフィルタっつーか「日本語が入ってないとスパム扱い」の処理なら入ってるけどそれのこと?
だったら2717行目をコメントアウト。
スクリプトを自動で全部作ってくれるスクリプトってある?
あるよ
And this is the only construction which is consonant with the manifest intention of the grant and with the rule of interpreting such grants as laid down by the foremost publicists and jurists. ,
A parent w 4 kids, one special needs baby, and unwed teen w an infant should probably have her hands full with her brood. ,
それは作者へバグ報告するべきもんじゃないのか
【. CGI名 .】 CSS Yomi-Search(Yomi-Search改造版) ver 2.01 (テンプレは配布先のサンプル版と同じ「city」です) 【配布先URL】 ://www.w-art.org/ 【ヘルプ内容】 index頁の右側に表示されるカテゴリ>サブカテゴリ一覧部分で サブカテゴリを横2列から横3列表示にしたいです。 (cssのほうは横3列表示が可能なサイズに変更済み) 製作者の方にメルフォから問い合わせたのですが いつになっても返事を貰えずに困り果ててます・・・・・。 よろしくお願いします。 あと。よければこれで間違ってないかチェックしていただきたいのですが。 top.htmlの右側、カテゴリの上に通常表示される 「マーク>おすすめサイト・相互リンクサイト」がいらなかったので top.htmlのソースの63行目を local($i=0,$Gno,$gane_flag,$st_flag=0,$bf_kt_no,$gane_NOT,%gNot,$gn_list,$Ncb,$mk); ↓ local($i=0,$Gno,$gane_flag,$st_flag=0,$bf_kt_no,$gane_NOT,%gNot,$gn_list,$Ncb); 上記から下のように改変、本来64行目から73行目にあるソースを削除しました。 今のところ希望通り「マーク>〜」の表示がtopから消え、不具合もないのですが スクリプト改造として、これで間違ってないですか?
>>519 そら「カスタマイズの問い合わせするな」という所に改造の問い合わせしたんだから
返事こなくて当たり前だろ。作者さんのせいにするもんじゃないよ。
>>520 修正前のver2.0だと、top.htrml頁のソースの一番上に
--------------------------------------------
#↓設定↓
#カテゴリ・テーブル横のセル数
$table = '2';
#サブカテゴリを横に並べる数
$subcat = '2';
#↑ここまで↑
--------------------------------------------
と書いてあったんです。
なので値をどちらも'3'に変えたんですが、表示は相変わらず2列だったので
製作者へ問い合わせたら
しばらくして、top.htrmlなどを修正したver2.01の配布がはじまり
上記の設定項目が削られてしまってたんですけど・・・・。
あと、記憶違いでなければ
私が問いあわせたときに、あの注意書きはなかったと思うんです。
・・・・・・・・私のせいだろうな、注意書き足されたの。
猛省してきます。
【. CGI名 .】toshinariPerlパージョン
【配布先URL】
http://cgi.toshinari.net/wiki.cgi 【ヘルプ内容】
IEでは名前を打ち込んだ場合、ちゃんと記憶されて入力された状態なのですが
firefox等では名前を入力しても記憶されません。
これをfirefoxでも入力された状態になるように改造の方をお願いします。
cookie保存しない設定になってんじゃないの?
>>524 google等ではちゃんとクッキー情報が保存されてるので、それはないかと思います。
サポート掲示板で聞いてみたら?
>>526 サポート掲示板は過疎なので・・・
聞いても誰も答えてくれないかと思いここに来ました。
cookies.sqliteを削除すると直るらしいよ
>>528 FireFoxというのは例で上げています。
operaでも同じ現象です。
ブラウザが悪いとは思えません。
どうやらクッキーはちゃんと取得してるようですが、ちゃんと名前欄に表示されないみたいです。
クッキーがちゃんと書き込まれて、取得もできてるなら、 スクリプト側の問題ではないんでない?名前を代入してHTMLを返してるだけなんだから
>>530 けど名前欄には表示されないんですよね・・・
IEではちゃんと表示されるんですが・・・
じゃちょっとこっちでも試してみるよ
分かったぞい bbs.cgiのSetCookieサブルーチン内のクッキー発行文の、path=/の後にセミコロンを付ければおk ちなみに2つ発行してる意味は分からん
>>534 おぉ!ありがとうございます。
ちゃんと表示されるようになりました!
ですが日本語名だと文字化けしますね;;
エンコードに問題があるのかな・・・
>>536 自分なりにググったりして調べてやってみましたができませんでした;;
bbs.cgiのクッキー発行の部分にescapeをかけて、makeindex.plのクッキーを読み込むところにunescapeを使うんですよね・・・
アクセスして表示されるのは makeindex.plで生成されて当該ディレクトリに置かれるindex.htmlってことはおk?
540 :
わ :2009/11/26(木) 17:55:54 ID:???
【. CGI名 .】 携帯絵文字対応BBS「SmallPICT」(Ver2.5)
【配布先URL】
http://wap2.jp/download/spict/ 【ヘルプ内容】 ・PC、携帯表示共にアイコン式に改造したい
・アイコンの表示箇所はタイトルの前。レス番号の位置に表示させたい
以上です。できれば、よろしくお願いいたします。
542 :
nobodyさん :2009/12/10(木) 01:16:42 ID:NJF5r4ib
検索すれば星の数ほど出てくる
544 :
nobodyさん :2009/12/10(木) 01:56:31 ID:NJF5r4ib
>>543 imgboard トリップ 実装 追加 など、あらゆる単語の組み合わせで
検索をかけましたが、紹介はあるもののすでにデッドリンクだったりして
まともにはHITしませんでした。何が足りないのでしょうか?
>実際にトリップを使えるCGIから移植を試みたりしているのですが、中々うまく行きません。 ここを詳しく書かないとアドバイスのしようがないのだが。 perlがわからんとかいうレベルなら丸投げ行けとしか言えん。
546 :
nobodyさん :2009/12/10(木) 02:08:01 ID:NJF5r4ib
>>545 わかりました。ありがとうございました。
547 :
nobodyさん :2009/12/13(日) 07:01:48 ID:NqNR44Mc
>>545 その節はお世話になりました。ご紹介の通り丸投げへ行きましたがダメでした。
>>ここを詳しく書かないとアドバイスのしようがない
imgboardではない別のCGIですと、いくつかの実装例がありましたので、
それを見ながら似たようなことをやっていましたが、
トリップが表示されないか、掲示板そのものが表示されないかのどちらかでした。
「perl」・「初心者」で検索をかけ、あらゆるサイトを見てまわりましたが、
むずかしいですね。「習うより慣れろ」じゃありませんが、本を読むより
実際にスクリプトをいじらないと理解しにくいのかもしれません。
私としては、「このソースをimgboardのココに貼り付けて、後、ココとココと
ココをこのように書き直せ」みたいなレスを期待していたのですが、
どうやらそんな単純なモノではないようですね。
もっとよく勉強して改めて出直します。スレ汚し失礼しました。
548 :
545 :2009/12/13(日) 09:46:05 ID:???
>>547 お前な・・・ダメも何もテンプレすら読まん(と判断された)ヤツが相手にされるわけ無いだろ。
つか期待する内容があるなら最初からそう書けよ。回りくどいことして自滅してどうする。
間違えて板違いのところで尋ねてしまいましたので再度こちらの板で質問させてください。
既成のCGIの改造でいくらやってもうまくいかなくて困りきっています。
板違いでしたらもうしわけありません(探してみましたがCGI改造板は2001年の代物でした)
いくら改造してもエラーばかりでもう2日悩んでいます。
改造したいものはテルラさんという方のCGI解説の古い本を入手してCGIの勉強を始めました。
昔はサポート掲示板などもあったらしいのですけど今はいくら探してもサポートがありません。
質問もできません。ほんとうにここしか質問ができる場所がなくてもう困っています。
もともとのCGIは
ttp://cgicgi.webdeki-hp.com/1.htm です。 これを改造したいのです。
したいこと
1 このスクリプトはリロードするたびに(ブラウザで更新を押すたびに)なぜかどんどん
その直前に書き込んだ文章が繰り返してどんどん書き込まれて行きます。
更新ボタンを押してもページの更新を(リフレッシュを)するだけにして、勝手にどんどんその直前の
書き込みが繰り返して書き込まれていくのを辞めたいです。
2 もうひとつは書き込んだ人の名前の下に書き込み者のIPやブラウザ名を表示させたい
です。 サンプルは
ttp://cgicgi.webdeki-hp.com/2.htm です。 この二つ目を改造して使えばいいではないかといわれそうですが、ひとつめの
デザインが好きなのでなんとか一つ目のデザインのまま、2.htmのスクリプトでの書き込み
表示のようになるようにしたいと思っています。
もうこれでまるまる3日目です。完全にわからなくなって発狂寸前です。
板違いかもしれないのですけど、ほんとうに助けてください。
なお、1.htmと2.htmは解決し次第、きちんと削除します。
すみません。ほんとうに助けてください。
(他のKentさんとかのCGIを使え、というレスはなしでお願いします)
(続き) やってみたこと。 ブラウザ名とIPの表示に関しては &cookie_read; $agentsoft = $ENV{'HTTP_USER_AGENT'}; $agentsoft =~ s/,/./g; $hosei = 1; if ($agentsoft =~ /Mozilla\/4/i && $agentsoft !~ /compatible/i) { $hosei = 0.8; } $textwidth = 80; if ($agentsoft =~ /MSIE 3/i) { $textwidth = $textwidth * 1.5; } および print "<br><font size=2>$agent</font>"; if ($returnmail eq 'checked') { print "<input type=hidden name=returntoemail value=$email>\n"; } を1に移植して1の$date\,などのところに関連すると思われる$agentsoftを追加したりしてみました。 でもエラーばかりでどうしてもうまくいきませんでした。 すみません。 お手上げで困ってます。 お年玉代わりにいろいろとご教唆いただけたらほんとうに嬉しいです。
>>549 まず、
>>1-5 を読んでもらおうかな?
とりあえずエラーの内容を見てからアドバイスするかどうか考えるわ
>>549 お前さぁ、俺「それぞれのスレの
>>1 読め」って言ったよね? 読んでないよね?
人の話し聞かないやつに回答する人はいないよ。もう消え失せろ!
要件に見合うレベルに達してないだけなのに三日で発狂とか言われてもなぁw perl初心者なら丸投げいったほうが早いかもねー
誘導元のスレはどこなん?
>>552 きちんと読みました。 1には「ソースを見られたら」「どこをいじったのか」と書いてあります。 よってソースをつけ、またどこをいじったのかも書きました(これは前のところでは書いていません)。
出てくるエラーは「真っ白の白紙になる」です。
丸投げもみました。 しかし丸投げする代物ではありません。 自分でどこをやったらいいのか、ということを知りたいので(勉強になりたいので)こちらにきました。
>552 申し訳ないですけど、私も2chのほかの板でわかる範囲で助けています。
他人にけちをつけるだけの、CGIがわかるフリの奴、というのはフェアーではないと思います。
発狂というのは言い過ぎかもしれないですけど、いくらいろいろとソースの変更をやっても
真っ白になってしまう現象が3日も続いたらプロでない限り素人にはお手上げと言う意味です。
いやさ、エラーログくらい見ようぜ。 まさかエラーログも見れない環境でCGI改造しようとか暢気なこと考えてないよな? 初心者以前の問題だぞ?
>>552 あなたにそれから「おまえ」扱いされるのはどうかとおもいます。
少なくとも私は2chでもきちんと相手に対して礼儀をもって書き込んでいます。
親のしつけが丸見えになりますので。。
だんだん釣り臭がしてきましたよw
2chしか頼れない人が礼儀語るとかここは面白いインターネッツですね
>>557 ありがとうございます。
書き込み直後、書き込んでいただいたようで申し訳ありません。
現在、ローカルサーバーを立て上げて擬似的にCGIを動かしています。
(動きもしない中途半端なCGIをサーバーにあげてサーバーをダウン
させるような馬鹿な真似はマナー違反になりますのでできません)
よってエラーコードは出てきません。 真っ白になるだけ、ということです。
このローカルで走らせている時に更新ボタンを押すとその直前に書き込んだ
ものがまた次の書き込みとして現れてしまう、という現象がおこったり
しています。 また2.htmではサーバ名としてLocalhostと出てきますが、
このようにしたいのですがどうやっても1.htmではこけて白い画面が
出てきてしまう、という現象です。
まだ必要なことがありましたらお知らせいたします。
丸投げは簡単ですし、その方が動作させるのには確実かもしれません。 時間
の節約にもなると思います。 しかしできる範囲でやってみたいと思っています
(そうでなければ3日も一人で悩まず最初から2chに頼っています)
>>562 ちょっとそのローカル鯖の環境を書いてみ。なんか色々前提と現象がおかしい。
>>559 3と5はきちんと読みました。 私の書き込みを全く読んでいないのはどちらでしょうか?
3で書かれております、ソースの提示は、私の書き込みの中にきちんとソースのリンク
1.htm 2.htm として入っています。 最低限のマナーです。
5はローカルなので記録がありません。
>564 ありがとうございます。 とても古い本をオークションで手に入れたものらしく、約10年前の本です。 CGIでつくるインタラクティブWebページという本です。 この本の中にあるPerl for win32 というのとAn HTTPDというものを使って実験しています。 とりあえずできましたら549内に 1.htm 2.htm というリンクを貼ってあり、その先に ソースを開示しておりますので(他の方のソースですのできちんと後から解決後に削除するつも りでソースそのものは2chにはあげていません)見ていただけますでしょうか。
追加になりますが とても古い本をオークションで手に入れたものらしく、 友達が「こんな本あるけど要る?」と言ってくれて面白そうだなあ、とただでもらって私は飛びついたのが約2月ほどまえです(地獄の一丁目)。他のCGIファイルではソースの改変というより、レ イアウトの変更などは自分でもできたのですが、今回のように幾らやっても勝手に 自動で書き込みが行われる、ということは他のスクリプトではなかったので訳が わからなくなりました。 また550に書きましたように2.htmを参考にしていろいろと 入れてもみたのですけど、どうしても真っ白になってしまい(2.htmは1.htmの改良版 とのことだったのでなんとかなるのかと思ったのですが)、どうしてもブラウザ名と IP表示ができずに困りました。おわかりになる範囲で結構ですのでヒントをいただける とうれしく思います。
>>564 いや、
>>5 をちゃんと読めば「ローカルなので」なんて答えは出てこない。
いまお前がやることは冷静に
>>5 を呼んで実践することだ。まず冷静になれ。話はそれからだ。
なんか凄いヤツが来てるなw 質問に全く関係ないエピソードとか要らんわw
スレ検索もできない人だから仕方ないよ 理解できないことを素直に認めることもできなさそうな人だし
10年前の本に添付されてるperlにCGIモジュールが付いてるとは思えんが・・・。 どちらにせよperlのverも書けないんじゃアドバイス以前だな。
なんかここの板って9人のカスと1人のまともなひとでできているスレですね・・・
教えられるほどの技術のある人が一人で残りの9人はどうでもいいことでさわいでいるだけの知能のない猿というか、言い負かされて悔しくてわめいているだけのチンパンジーというか。
Perl 5.003
>>567 二行目にuse CGI::Carp qw(fatalsToBrowser); を追加すると今まで動いてい
たスクリプトも動かなくなってしまいます(ご自身で1.htmの二行目に追加
して試してみてください)。
正月だから技術のある人はみなさん、お休みで小学校から逃げてきたチンパン
ジー集団ばっかなのだろうか?(567さんなどの一部を除く)
>>570 CDが付属していました。
中にスクリプトやPerlなども全て含まれていました。
>>567 5の書き方がまずいですね。 再度検索して試してみました。
##use CGI::Carp qw(fatalsToBrowser);
にしないと動きませんよ。 ちょっとこれでしばらく再度がんばってみます。
またご連絡いたします。 ありがとう。
記載ミス。 #use CGI::Carp qw(fatalsToBrowser); にしないと動きませんでしたよ、の間違いでした。
575 :
567 :2010/01/02(土) 00:31:36 ID:???
>>571 お前は煽れた立場じゃないだろ。少し考えて発言しろ。俺ももう少しで「半年ROMってろ」と言うぞ。
で、実際にCGI::Carp組み込んでも普通に「Can't locate jcode.pl in @INC」って出るけどな。
jcode.plが無いってことだな。お前ちゃんと全部のスクリプトうpれよ。あとhtmlでうpするとかおかしいだろ。
576 :
567 :2010/01/02(土) 00:33:07 ID:???
>>573-574 それコメントアウトしてるだけじゃねぇか・・・お前には改造はまだ早いよマジで。
本当に酷いなコイツw なんでこんなレベルで改造なんて大それたことしようとしてるんだ?w
なんかもう発狂済みなんじゃないかマジで
煽るだけで回答できないのはOCNかちんぴらだろ
>>571 × なんかここの板って9人のカスと1人のまともなひと
○ 1人のカスが書き込みしまくっている
自演判定つまんねw
なぜ今頃ツッコんだし
なんとなく...かな
お前もだよクズww
【CGI名】YY-BOARD v6.3 Rev2.67
【配布先URL】
http://swanbay-web.hp.infoseek.co.jp/yybbs/index.html 【ヘルプ内容】
1.投稿記事のプレビュー機能をチェックボックスかラジオボックス型にし、
プレビューを見ながらの内容修正を、何度か繰り返せるようなフォームにしたい。
2.入力された名前に応じて、自動でアイコンを選択できるようにしたい
この二つの改造をしたいのですが、自分では知識が足りず…
どなたかお力をお貸し頂けませんでしょうか?宜しくお願い致します。
で、どこまでできてるんですか?
>589 反応を下さってありがとうございます。 プレビュー機能ですが、regist.cgiの1330行目に <input type=radio name=mode value=previewmode> を入れてみたところ、プレビューを繰り返す事には成功したように思うのですが、 肝心のフォームを出す事ができない状況です。 1355行の下に EOM # 修正フォーム require $formpl; &form($nam,$eml,$url,'??',$ico,$col,$sub,$com,$sm); print <<EOM; と入れてみたところ、フォーム事態は出現するのですが、記事の内容などがフォームに入っておらず、 そのままプレビューを押してみても、フォームの内容が反映されません。 現在はフォームにプレビューボタンを設置しようと試行錯誤している途中です。 よろしければ、アドバイス等頂ければ幸いです。
>>590 <input name="hoge" value="$hoge" type="text" /> # $hogeは引数
とか
あるいは、POSTされた内容が取得できてないとか
$hoge = $q->param('hoge');
プレビューと投稿の振り分けは
<input name="post" value="投稿" type="submit" />
<input name="preview" value="プレビュー" type="submit" />
両方を用意して
$mode = $q->param('post') || $q->param('preview') || undef;
みたいなのが個人的には好き( ´艸`)
>>591 早速試してみます、ありがとうございます!
確かにチェックボックス等より、ボタンの方が投稿する時に楽ですよね、
実装頑張ってみます。
他にもアドバイス等あれば、是非ご助力お願いしますね。
それでは、また書き込ませて頂きます。
連続投稿失礼します。 1355行の下に <form action="$registcgi" method="$method"> <input type="hidden" name="comment" value="$in{'comment'}"> EOM # 修正フォーム require $formpl; &form($nam,$eml,$url,'??',$ico,$col,$sub,$com,$sm); $hoge = $q->param('hoge'); print <<EOM; </form> と記述したところ、フォームに記入した内容をプレビューする事はできるのですが、 相変わらず、フォームに内容が出ず、そのまま投稿すると、新規での投稿扱いになってしまい、 返信ができない状況です。 >591さんの言うとおり、POSTされた内容が取得できてないのだと思うのですが、 どこを弄ればいいのか、私の知識ではお手上げ状態でして…。 ご助力お願いしたく書き込ませて頂きました、宜しくお願い致します。
要点だけ ・チェックボックスを追加 at sub form{} in lib/form.pl # 例えば、nameはpreviewとする。valueは真になるなら何でもいい ・sub preview {} を追加 in regist.cgi # ここのブロックの中にプレビューで表示したいものを書く。 # &header はヘッダ生成(?)、最後にexitしておく。 ・最初のほうに分岐を設定 at sub regist{} in regist.cgi # ex.) &preview if $in{'preview'}; name=hogeの値をとるときは$in{'hoge'}
>>588 を投稿させて頂いたものです。
>594さんに頂いたアドバイスを元に頑張ってみたのですが上手くいかず、
再度お力添え頂きたく思い、投稿させて頂いております。
現在、プレビューボタンの設置はできたのですが、
大元の時間でのプレビュー表示を外してしまうとプレビューが表示されません。
あまり質問ばかりするのは教えて頂く側として失礼だと思い頑張ってみたのですが、
どうにも自分の知識では解決できず…。
ご助力願えればと思います、宜しくお願い致します。
596 :
KENT厨 :2010/04/04(日) 01:55:03 ID:???
>>588 2について
メモ帳でもなんでもいいのでテキストエディタでnameicon.cgiという名前のファイルを作る。
そのファイルの中に以下のような感じで名前と画像のファイル名を書き込む。
太郎<>cow.gif<>
次郎<>dog.gif<>
花子<>zou.gif<>
画像のファイル名はinit.cgiの$ico1に書いてあるものにする。今後追加したり削除したりする場合は
nameicon.cgiを書き換えてupする。upする場所はregist.cgiとかと同じ場所。
そうしたら、regist.cgiのregistサブルーチンの # フォーム入力チェック の次あたりに以下を書き込む。
# 名前によってアイコンを指定
open(IN,"nameicon.cgi") || &error("Open Error: nameicon.cgi");
my @list = <IN>;
close(IN);
foreach (@list) {
my ($myname,$myicon) = split (/<>/);
if($in{'name'} eq $myname){
$in{'icon'} = $myicon;
last;
}
}
こんな感じでどうでしょう?試すときはバックアップを取っておいてください。
>596 KENT厨さん 反応下さりありがとうございます。 教えて頂いた通りしたところ、無事にアイコンが自動選択されました。 ありがとうございます! 一つ質問があるのですが。こちら、記事の修正をするとアイコンが自動選択されず、 一番上に設定したアイコンが選択されてしまいました。 libフォルダのeditlog.plかな、と思い触ってみたのですが上手くいかず、 宜しければご教授願えればと思います。
>597 の修正をさせて頂きます。 × 記事の修正 ○ 管理人権限での記事の修正 です。 レス消費申し訳ありませんでした。宜しくお願い致します。
599 :
KENT厨 :2010/04/06(火) 02:04:09 ID:???
>>597 admin.cgiの中のadminサブルーチンの中に
# 修正実行
というのがあると思うので、その最初のほうに
>>596 と同様に
# 名前によってアイコンを指定
open(IN,"nameicon.cgi") || &error("Open Error: nameicon.cgi");
my @list = <IN>;
close(IN);
foreach (@list) {
my ($myname,$myicon) = split (/<>/);
if($in{'name'} eq $myname){
$in{'icon'} = $myicon;
last;
}
}
を加えてみてください。それと、editlog.plの中のedit_logサブルーチンにも
# フォーム入力チェック
というのがあるのでそのすぐ後ろとかに同様の処理を追加してみてください。ただし、
editlog.plのほうはnameicon.cgiを「../nameicon.cgi」にしてください。
open(IN,"../nameicon.cgi") || &error("Open Error: nameicon.cgi");
ここは投稿した本人が記事の修正をした場合のものです。
こんな感じでどうでしょうか?
迅速な反応、お手数お掛け致します。
記事修正でのアイコン選択、無事に出来ました。
>>588 、ヘルプ内容の2番は解決とさせて頂きます。
KENT厨さん、本当にありがとうございます!
1につきましては、もしアドバイス等ありましたらお力添え頂ければと思います。
宜しくお願い致します。
よろしくお願いします。 多分とても簡単な事だと思うのですが、どう調べればいいのかが分からず… $filepassにファイルのパスとファイル名が保存されています。 /data/aaa.zip /data/b/abc.zip のような形です。 これをファイル名だけ表示させたいのですが、どのようにしたらよいでしょうか? $fname = 「スラッシュ以下だけを抜き取り?」 の形にしたいのですが、よろしくお願いします。
アップローダをD&D、複数同時アップに対応させたいのですが躓いています。
JavaScriptも入ってきてしまうのですが・・・
どなたかよろしければおつきあいください。
【. CGI名 .】 Hello-UP + plupload
【配布先URL】 Hello-UP:
ttp://idol.nm.land.to/ plupload:
ttp://www.plupload.com/index.php 【ヘルプ内容】 Hello-UPのアップロードフォームをpluploadに差し替えたい。
Hello-UPのupload.php中の<head>の中にスクリプトの呼び出しと
$upload = <<<UPLOADの部分に設置をしたところ、
オリジナルファイル名でのデータのアップだけは可能になりました。
その後のアップロードログへの書き込み、サムネイルの作成にどう対応したらいいのかわかりません。
要するに入り口だけ作った、ってとこでしょか。先長いですね。 先に聞いておきますが、API Documentのどの辺で引っかかってます?
605 :
603 :2010/06/07(月) 21:23:18 ID:???
先は長そうですか。 トライアンドエラーで少しのつぎはぎで何とかなるかな?と思っていじり始めてみたのですが。。 API Documentのどの辺と言われてもよくわからないくらいに基本的なところもわかりません。 ヘタに手を出してしまったかな。。 この辺をみてみるといいよ、とかでもありましたらお願いします。
うーん、せめて使おうとしてるモジュールのドキュメントは一通り目を通してください。 じゃないとこちらも話がし辛いです。習得意欲が無くて実装のみ楽をしたいなら丸投げへどうぞ。
607 :
603 :2010/06/07(月) 22:50:59 ID:???
実は丸投げの方に誘導されてしまうかなっていう気はしてました。。 ちょっとここで質問するには無知すぎたようですね。 もう少し勉強して出直してきます。 ひとまずありがとうございました。
608 :
588 :2010/06/13(日) 15:29:02 ID:???
ヘルプの方、一旦終了させて頂き、一度丸投げの方に助力をお願いしてみようと思います。 回答・ご助力して下さった方々は本当にありがとうございました!
609 :
nobodyさん :2010/09/27(月) 14:51:24 ID:i9clsC0G
晒しage
610 :
nobodyさん :2010/09/27(月) 21:05:13 ID:yo7j0Viu
あ
611 :
nobodyさん :2010/10/15(金) 18:23:54 ID:h3JajiVY
【 CGI&PHP名 】ReverseAccess
【 配布先URL 】
http://www.cj-c.com/cgi_s/access.htm 【 依頼期限 】1ヶ月くらい
【 依頼内容】acmgr.cgiを弄ってurl.logに書き込む項目(サイトの紹介)を一つ増やしました。
■デフォルト yahoo%5c%2eco%5c%2ejp;Yahoo!;
http://www.yahoo.co.jp/; ■改 yahoo%5c%2eco%5c%2ejp;Yahoo!;
http://www.yahoo.co.jp/;アホー (サイトの紹介);
その増やした項目をaccess.cgiを開いた時に表示されるようにしてほしいのです。
■acmgr.cgi弄った箇所
50行目近辺
$url=$FORM{'url'};
$z = $FORM{'z'};#■$zコメント追加
$andor=$FORM{'andor'};
132行目近辺
($u,$t,$url,$z) = split(/;/,$URL[$_]);#■$zコメント追加
139行目近辺
print"<th>$t</th><td>$u<br><a href=\"$url\" target_=\"_blank\">→ $url</a><br>$z</td></tr>\n";#■$zコメント追加
164行目近辺
print OUT "$U;$t;$url;$z;\n";#■$zコメント追加
222行目近辺
if($_==$FORM{"G"}){$URL[$_]="$U;$t;$url;$z;\n"; $f=1;}#■$zコメント追加
236行目近辺
($ur,$ti,$urls,$z) = split(/;/,$Edit);#■$zコメント追加
252行目近辺
print"<tr><td bgcolor=\"$stripe\">コメント</td><td><input type=\"text\" name=\"z\" size=\"50\" value=\"$z\"></td></tr>\n";#■$zコメント追加
612 :
nobodyさん :2010/10/15(金) 18:25:12 ID:h3JajiVY
■access.cgi 180行目近辺 ($u,$n,$tu,$zc) = split(/;/,$urls);#■コメント追加,$zc 229行目近辺 ($u,$n,$tu,$zc) = split(/;/,$_);#■コメント追加,$zc 319行目近辺 $Rankh.="<td><a href=\"$url\" target=\"$TGET\" title=\"$title\">$title_url</a><br>$zc</td>";#■コメント追加,$zc これだと全てのサイトの紹介が、url.logの一番最後の行のデータで表示されてしまうので困っています。 どなたか助けてください。
url.log自体には正常にデータ記録されてんだよね?
>>613 ftpからダウンロードしてチェックしましたが、問題はないようです。
また、管理者モードacmgr.cgiから見ても問題ないです。
でも、access.cgi?countから見ると、駄目なんです。
615 :
KENT厨 :2010/10/15(金) 21:01:06 ID:???
>>611-612 もっといい方法があるんだろうけど、これだとどう?
access.cgi
319行目近辺
$Rankh.="<td><a href=\"$url\" target=\"$TGET\" title=\"$title\">$title_url</a><br>$zc</td>";#■コメント追加,$zc
このすぐ上に以下をコピペしてみたらどう?
undef $zc;
foreach (@urls) {
($u,$n,$tu,$zt) = split(/;/,$_);
if($tu eq $url) {
$zc = $zt;
last;
}
}
うまくいかなかったらごめんね
>>615 レスありがとうございます。
早速コピペしてみたところ、問題なく動作しました。
本当にありがとうございました。
【. CGI名 .】 w3Analyzer
【配布先URL】
http://fmono.sub.jp/v_w3a/howto.php 【ヘルプ内容】
このスクリプトとは直接関係ないのですが、利用してるって事で…
古いアクセス解析のせいだと思うのですが、最新のOS・ブラウザに対応していません。
(Windows7をMeと言ってみたり、iPhoneがUnknown OSだったり…IE7をサファリって言ってみたり)
と言う事で、そのリストを自分で更新したいのですが、どこかにOSとブラウザのリストってないでしょうか?
って、ここで聞いてもいいものでしょうか?
だめです
requireで指定するもんなの?
>>620 そうなんです。
解析対象のCGIにrequireで指定します。
KENT-WEBにあるWeb ForumとかWeb Patioとかだとうまくいくんですけどね。
622 :
619 :2010/10/30(土) 05:10:44 ID:???
自己解決しました。
どう解決したか書いとけ
624 :
nobodyさん :2010/11/01(月) 14:40:12 ID:??? BE:3685651979-2BP(500)
改造仕様にも流れの早いどっとうpろだに上げるようなヴァカは…
625 :
nobodyさん :2010/12/04(土) 07:31:13 ID:It+aPYdc
【 CGI&PHP名 】
http://www.kent-web.com/bbs/epad.html 【 ヘルプ内容 】 携帯から閲覧したときに、ページの一番上にモバイルアドセンス
を表示したいです。
ptel.plの224行付近(&data("<font color=\"$t_color\">$title</font><hr>\n");)
にモバイルアドセンス(CGIコード)を書きましたがエラーになります。
よろしければ、アドバイス宜しくお願い致します。
補足 223行目 &data("ここにモバイルアドセンスのCGIコードをそのままコピペ\n"); Script Errorになります。
アドセンスのs−スコードって、&dataの中とかじゃなくて html出力の直前に直接挟み込むものなんじゃないの?
【 CGI名 】web拍手CGI配布版
【配布先URL】
http://www.webclap.com/ 【ヘルプ内容】
コメント入力フォームに、入力した文字数をカウントする機能を付けたいです。
clapinit.cgi内のヘッダ部分(67行目辺り)に以下を追加し、
print '<script type="text/javascript"><!--',"\n";
print 'function ShowLength( str ) {',"\n";
print 'document.getElementById("inputlength").innerHTML = str.length + "文字";',"\n";
print "}\n";
print "// --></script>\n";
clap.cgiのフォーム部分(155行目辺り)を以下に変更しました。
print '<TEXTAREA rows=3 cols=40 name=hitokoto onkeyup=ShowLength(value);></TEXTAREA><br>',"\n";
print '<p id="inputlength">0文字</p>',"\n";
実行すると画面が真っ白になってしまいます。
要は、ヘッダ部分に
<script type="text/javascript"><!--
function ShowLength( str ) {
document.getElementById("inputlength").innerHTML = str.length + "文字";
}
// --></script>
を追加したいのですが、どうすると正解なのでしょうか。
長くなってしまいすみません。
お力添えいただけると嬉しいです。
629 :
628 :2010/12/19(日) 13:56:18 ID:S9yuhp3U
age忘れです。
valueは何のために使ってんの?
>>628 真っ白になったときのHTMLソース見てみ
632 :
KENT厨 :2010/12/19(日) 23:43:22 ID:???
>>628 JavaScript 文字数カウント でぐぐったら
最初に出てくるやつですよね?
とりあえずこれをコピペしてみてください。
自分で試してみたらこれで文字数が増えていきました。
clapinit.cgi
print '<script type="text/javascript"><!--',"\n";
print 'function ShowLength( str ) {',"\n";
print 'document.getElementById("inputlength").innerHTML = str.length + "文字";',"\n";
print '}',"\n";
print '// --></script>',"\n";
clap.cgi
print '<input type=text name=hitokoto size=50 maxlength=50 onkeyup="ShowLength(value);"><br>',"\n";
print '<p id="inputlength">0文字</p>',"\n";
633 :
628 :2010/12/20(月) 00:18:01 ID:???
>>630-632 ありがとうございます!
>JavaScript 文字数カウント でぐぐったら
>最初に出てくるやつですよね?
はい、それをコピペしていました。
ソースを見ても見た感じ同じだったのですが、
>>632 さんのをコピペしてみたら正常に動作しました。
大変助かりました。ありがとうございました。
634 :
nobodyさん :2011/01/05(水) 15:03:02 ID:j6Ha8RbP
マルチポストうざ
【. CGI名 .】 アクセス制限・強化タイプ (WebProtect)
【配布先URL】
http://www.kent-web.com/pwd/protect.html 【. 置き場所 .】 上と同じ
【ヘルプ内容】 認証が終わった後のページをCGIにしたい。
ユーザー登録時にユーザー名を登録できるので、そのユーザー名を表示させたいです。(○○さんのページ)
そのため、認証後のページをCGIにしたいと思っていますが、CGIにすると、内容全部表示してしまいます。
(#!/usr/bin/perl〜を全部表示してしまう。)
protect.cgiのサブルーチン「fileOpen」の"# HTMLファイル移動"部分を変えればいいとは思うのですが、どう変えて
いいかがよくわかりません。
また、この部分がCGIになることで、認証後のページアドレスがわかってしまったとしても問題はありません。
(設置したいのはCGIなので、IDが変数として送られなければエラーページを出せばいいだけですよね)
よろしくお願いします。
>>636 というか、設定(init.cgi)の$secretを「
http:// 〜/nantoka.cgi」の書式で書けばいいだけじゃないんか?
>>637 返答ありがとうございます。
>というか、設定(init.cgi)の$secretを「
http:// 〜/nantoka.cgi」の書式で書けばいいだけじゃないんか?
そこはファイル名が変わるので、「./××.cgi」に変更してます。
ではなくて、「
http:// 〜」で記載しないといけないということでしょうか?
いや、nantoka.cgiは単なる例えなんだけどさ。
つかinit.cgiに「# → CGIの場合のみ
http://から記述すること 」って書いてあるじゃない?
>>639 あ、下に書いてましたね…
見落としてました。
んで、いろいろ考えたんですが、"認証が終わったら他のページに飛ぶ"スクリプトとばっかり思ってたのですが、
サブルーチン内で"認証後のページをプリント(この表現あってます?)"してるだけですよね。
単純にその部分を書き換えればいいんじゃねってことに気がつきました。
認証処理の隠しファイル出力サブルーチン「fileOpen」をファイルを開くじゃなくて、そこに直接認証後のページ
を作成することで無事解決できました。
CGIの中で他のCGIを動作させようとしているのですが、うまく出来ません。(変数が送れない) requireで呼び出したCGIに変数を送るにはどうしたらいいのですか? $y = 1; $m = 1; #テスト用表示 print "$y◆$m◆\n"; require '../year/year.cgi'; これでやってみたのですが、year.cgi側のエラーメッセージ「"$y"の指定がされていない」となってしまいます。 year.cgi側からエラーメッセージを表示しているので、year.cgiは動作していると思います。 よろしくお願いします。
>>642 $yをyear.cgi内で定義したならrequireすれば受け取れる
$yがyear.cgiを実行した結果格納されるのだとしたらちょっとした手間が要る
例えば同じディレクトリに year.cgi があったとして
$y = `year.cgi`;
と書けば、一応 year.cgi を実行してその結果を$yに格納できんこともない
いろいろ細かい制約もあるので、常に期待した通りに動くとは限らんし、今回オマエのやりたいことと違うのかもしれない
644 :
nobodyさん :2011/06/13(月) 23:57:51.65 ID:fkYHtcsj
丸投げスレって落ちた?
落ちた
646 :
nobodyさん :2011/07/01(金) 21:11:33.27 ID:rBdJPBhY
【CGI名】 YY-BOARD掲示板スパム対策・掲示板荒らし対策版
【配布先URL】
http://antispam-bbs.xii.jp/yybbs/index.html 【ヘルプ内容】 iPhone等スマートフォンへの対応
現在PCと携帯電話とのアクセスで振り分けを行っているのですが
これにスマートフォンでのアクセスの場合の振り分けを行い、
スマートフォン用の表示を作成したいのです。
どのようにすればよいのでしょうか?
どうぞよろしくおねがいします。
648 :
1/3 :2011/07/24(日) 10:12:58.42 ID:???
で?
650 :
2/5 :2011/07/24(日) 12:26:04.29 ID:???
おさるさんバイバイされてました…。つづきです。↓ トピック機能は、チャットの発言欄に「お肉の話/topic」と入力して発言ボタンを押すと、 チャットのログ画面の上部に「現在の話題:お肉の話」というコメントが追加されるものです。 ちなみにトピックをリセットするには「end/topic」と入力する必要があります。 私が行いたい改造は、チャットの入室画面でトピックを指定してから入室をする…という改造です。 トピックは「topic(部屋番号).txt」というテキストをあらかじめ準備して、 「〜〜/topic」と発言するたびに内容が上書きされる仕様になっているようです。 このテキストの中身は「お肉の話<>肉好き<>#666666」(トピック<>チャットネーム<>設定した文字色)と一行で書かれた非常にシンプルなものです。
651 :
3/5 :2011/07/24(日) 12:29:10.50 ID:???
最初に入室画面に、 print "<B>話題の設定</B><INPUT TYPE=text NAME=\"comment\" SIZE=\"60\" VALUE=\"/topic\"><BR>\n"; と入力してテストを行いましたがだめでした。 最初に入室画面に、 print "<B>話題の設定</B><INPUT TYPE=text NAME=\"comment\" SIZE=\"60\" VALUE=\"/topic\"><BR>\n"; と入力してテストを行いましたがだめでした。 chat_start.cgiの673行目「#発言メッセージ書き込み」693行目以下「#Topic機能修正start」〜「#Topic機能修正End」までが関係があるかと思い、 そのままソースをコピペしましたが(浅はかですがそれ位の知識しかなく…。) やはりトピックの設定はうまくできませんでした。
652 :
4/4 :2011/07/24(日) 12:30:26.64 ID:???
チャットの発言という方法ではなく、 print TOPIC "$comment<>$chatname<>$color"; $topic = $comment; $topicname = $chatname; $topiccolor = $color; $comment = "お部屋の設定を致します。"; この辺のソースを生かして、直接「topic(部屋番号).txt」というテキストをいじれればいいのかもしれませんが、 その構文を組み立てる技術がありません。 (アップローダーにcgiをアップしましたが、トピック機能の該当箇所、「話題の設定」ではなく「お部屋の設定」になっております。) すみませんが、ヒントだけでもご教授していただきたく思います。 わかりづらくてすみません。そして投稿に時間がかかりすみません。よろしくお願いします。
長いわ意味不明だわ2ch初心者だわでどうすりゃいいんだか。
チャット入室時に後から来たやつがどんどんトピック書き換えていくってこと?
それとも一番最初に部屋作ったやつがトピック設定するってこと?
あと
>>648 のソースだけじゃ動かないよ。ファイルが足りない。
655 :
648 :2011/07/24(日) 15:51:45.06 ID:???
>>655 一番最初に入室したヤツは入室後もトピック変更できるようにしたいってこと?
つかファイル落とせねーんだけど。
657 :
648 :2011/07/24(日) 17:52:23.93 ID:???
>>656 そうです。
最初に入室した人だけトピックが変更できれば嬉しいです。
でも2番目以降の入室者にトピック作成のテキストボックスが隠される事が出来たら十分です。
ありがとうございます。
パスkaizouでダウンロード確認出来ましたが、もし別のロダが良ければアップし直します。
658 :
648 :2011/07/25(月) 10:47:27.90 ID:???
皆さんレスしてくださってありがとうございます。 色々考えたのですが、 無理して改造をせずに今自分に出来ることをしたいと思います。 初心者がスレを汚してしまって本当にすみませんでした。 ファイルは全て削除しました。 本当にありがとうございました。感謝です。
659 :
nobodyさん :2011/07/27(水) 11:54:17.89 ID:CHHFUSQx
まる投げでお願いする事なんでしょうが、無くなったみたいなのでこちらに来ました。
板違いでしたらごめんなさい。
【. CGI名 .】 アイコンTeaChatV2
【配布先URL】
http://blog.tirno.net/e212.html 【.動作サンプル .】
http://www.tirno.net/chat2/chat.cgi 【ヘルプ内容】 外ROMが出来ないようにといいますか、外部から直接ログが覗けない様にしたいのですが、お願いできますでしょうか。(入室画面で下フレーム(ログ)を表示しない 設定ではダメでした)
実はchat荒らしに困っていまして、2chにログのコピペを貼っては誹謗中傷、
また2chに
http:// 〜/chat.cgi?relb=on&view=on&window=500&n_color=#FFFFFF&name=○○○○ この様なリンクを貼っては参加者欄に中傷のコメントを表示させたり
アイコンteachatはある程度の串を拒否できるので使いやすいのですが、この攻撃には困っています。
どうかよろしくお願いします。
>>659 チラ見だけど大改造が必要。というか運営的な対処を先にするべきだと思う。
>>660 さっそく見て頂いてありがとうございます。
そうですかぁ・・・かなり多機能なスクリプトだったので残念です。
また、困った事がありましたら相談させて頂きたいと思います。
ありがとうございました。
662 :
nobodyさん :2011/07/30(土) 15:06:40.47 ID:sJZknbjp
>>662 丸投げスレがなくなっちゃったってのはわかるんだけどさ、一応ここは
>>1 の通りのスレであって。
それをわかってて丸投げ目的で二度来るのはどうかと思うんだ。
どこまでできてる? まったくわからない? 時には諦めも肝心だよ?
だれか丸投げスレたてれば?おれは無理だったけど。
欲しいやつが立てりゃいい。無理なら依頼すればいい。
ああ
【. CGI名 .】 ASKA BBS Ver: 5.3
【配布先URL】
ttp://www.kent-web.com/ 【ヘルプ内容】 チェックボックスを用いて投稿内容の表示非表示を行いたい。
ifを使ってもチェックの有無に関わらず全て表示されてしまいます。
項目を増やしたりはできるのですが、どうしてもこの動作だけがうまくいきません。
どうぞ知恵をお貸しください。よろしくお願いします。
if文になんて書いたのさ?
669 :
667 :2011/08/30(火) 02:09:13.28 ID:???
<input type="checkbox" name="secret" value="on"> if($secret eq "on"){print"";} else{#元の表示内容 print "<dt><hr>[<b>$no</b>] <b style=\"color:$subcol\">$sub</b> "; print "投稿者:<b>$nam</b> 投稿日:$dat "; print "<input type=\"submit\" name=\"res$no\" value=\"返信\"><br><br>\n"; print "<dd>$com<br><br>\n"; } と書きました。元の表示と空欄を入れ替えても、 投稿記事全てが表示されないかされるかの違いだけでした。 あと、先に書いた「ASKA BBS」だとスキン仕様だったのを失念しておりました…。 あれやこれやと試していたのでごっちゃになっていました。申し訳ありません。 なので「ASKA BBS」ではなく同じくKENTさんのところの「LIGHT BOARD Ver: 7.1」でお願いいたします。
>>667 追加したチェックボックスの表示非表示っていうのはログに保存してる?たとえばこんなかんじで。
print DAT "$no<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$pwd<>$time<>$in{secret}<>\n";
で、bbs_listで記事を表示するときに
my ($no,$date,$name,$eml,$sub,$com,$url,$host,$pw,$tim,$secret) = split(/<>/);
のようにして、$secretが非表示だったらスルーしたらいいんじゃない?
もうやってたらごめんね。
671 :
667 :2011/08/30(火) 14:48:15.07 ID:???
>>670 指摘されたところに追加はしていたのですが、$in{secret}にはせず$secretとしていたところがあったので
念のため一からやり直してみたらできました!
初歩的なところで躓いていたのが恥ずかしい限りですが良かったです。
ありがとうございました!
672 :
nobodyさん :2011/09/07(水) 21:21:30.18 ID:pw5mVziB
改造をお願い致します。どうしてもうまくいく改造方法が見つかりませんでした。
cgiの概要は、任意のフォルダに画像があり、それをサムネイル表示するというものです。
現在の症状は、image majickで生成したサムネイルフォルダにthumbs.dbファイルが存在しないとcgiエラーをはいてしまいます。
サムネイル保存用フォルダにthumbs.dbがあると、表示されるのですが、html上のサムネイル表示にもthumbs.dbが画像の1枚として表示されてしまいます。
アドバイス、または改造をお願いできないでしょうか。よろしくお願いいたします。
http://science-lab.ddo.jp/uploader/files/0403.txt
>>672 いまいち話が見えんが、「サムネイルフォルダにthumbs.dbファイルが存在しないとcgiエラー」で
出てくるエラーは具体的に何さ?
674 :
672 :2011/09/11(日) 21:23:05.41 ID:Pif199R3
>>673 色々試してみたのですが、階層を変えただけで表示されるようになりました。
なぜ、URLの階層を1つ深くして設置しただけでcgiの挙動が変化したのか分かりませんが、とりあえずおkなので、質問は解決しました。ありがとうございました。
675 :
nobodyさん :2011/10/08(土) 13:43:38.17 ID:lEe/ThVo
【. CGI名 .】 ASKA BBS Ver: 5.5
【配布先URL】
ttp://www.kent-web.com/ 【ヘルプ内容】 レスの返信機能を保持したまま、引用機能(メッセージ内容)を非表示にしたい。
昔のバージョンは以下のように#を付けるだけで出来ましたが、最新バージョンでは同じように#を付けるだけでは出来ないようです。
どういう風に変更すれば出来るのかよろしくお願いしますorz
昔のバージョン
■変更前
$sub =~ s/^Re://g;
$r_sub = "Re:[$no] $sub";
$r_com = "> $com";
$r_com =~ s/<br>/\r> /ig;
■変更後
$sub =~ s/^Re://g;
$r_sub = "Re:[$no] $sub";
#$r_com = "> $com";
#$r_com =~ s/<br>/\r> /ig;
最新のバージョン
■変更前
$res{sub} =~ s/^Re://g;
$res{sub} =~ s/\[\d+\]\s?//g;
$res{sub} = "Re:[$in{res}] $res{sub}";
$res{com} = "> $res{com}";
$res{com} =~ s/<br>/\n> /ig;
#$res{com} = "> $res{com}"; #$res{com} =~ s/<br>/\n> /ig; でいいはずだけど。変更するところ間違ってない? つか昔のverのバージョン番号くらいおくれ。
>>675 KENTスレにあるように
$res{com} = "";
を加えてもだめだったの?
678 :
675 :2011/10/09(日) 18:54:28.30 ID:8B/jE2+d
>>676 >>677 昔のは3.2です
でも今、変更するところ変えてみたら出来ました
thxでした
それと、もう一つお願いしますorz
削除キーを入力して書き込んだ後に掲示板に戻っても削除キーが入力されてる状態にしたいのですが
クッキー情報保存にチェック入ってるのに書き込む度に空欄になってしまいます
これは分りますでしょうか?
そりゃ単にブラウザの設定じゃねーの?
>>678 削除キーはクッキーに保存してないみたいだね。
だから$in{pwd}もset_cookieに追加して保存するようにしたらいいんじゃない?
そうしたらtmpl内のbbs.htmlのクッキー情報保存の近くにある削除キーの
valueに!pass!とか何でもいいから適当に書いて、aska.cgiのbbs_listの
文字置換のところで削除キーは$cook[3]に入っていると思うからほかと同じように
置換したらいいと思う。
これでわからなかったら丸投げに行ってね。
681 :
675 :2011/10/11(火) 18:55:33.47 ID:KMpzzZKw
>>680 分りやすい説明ありがとうございます。
90%くらい出来た感じなんですけど、例えば、削除キーを3文字にして書き込んでも、掲示板に戻るとなぜか4文字の●が出来てます。
で、その削除キーは合ってるの?
683 :
KENT厨 :2011/10/12(水) 01:40:25.61 ID:???
>>681 >文字置換のところで削除キーは$cook[3]に入っていると思うから〜〜〜
というのはregistで
&set_cookie($in{name},$in{email},$in{url},$in{pwd});
のような順番で保存することを想定していたのですが、
違う順番で保存してたらこの順番で保存するようにしてください。
いちおう自分で試してみたところうまくいってます。
684 :
675 :2011/10/14(金) 18:03:28.98 ID:V+jiaLjd
お手数かけますorz
>>682 そこは間違えないでしょうw
>>683 aska.cgiのクッキー格納の所ですよね。
何度確かめてもその順番になってるんですけどね・・・
出来てると言うことは自分のやり方が悪いのでどこかが間違ってると思いますが。
それと、文字置換のところを見ると削除キーはない?みたいです
v5.5は以下のようになってました
# 文字置換
foreach ($head,$foot) {
s/!([a-z]+_cgi)!/$cf{$1}/g;
s/!homepage!/$cf{homepage}/g;
s/!page_btn!/$page_btn/g;
s/!name!/$cook[0]/;
s/!email!/$cook[1]/;
s/!url!/$cook[2]/;
s/!sub!/$res{sub}/;
s/!comment!/$res{com}/;
s/!bbs_title!/$cf{bbs_title}/g;
s/!str_crypt!/$str_crypt/g;
682が言いたいのは、4文字になった削除キーは意図した文字列になってるか? ということだと思うんだが・・・。
>>684 だからそこに一行付け加えるんでしょ
s/!pass!/$cook[3]/;
687 :
675 :2011/10/20(木) 18:20:35.44 ID:VqBvUrqI
レスが遅れてすみませんorz
>>685 例えば、削除キーを123と入力して、送信する→掲示板に戻るをクリックしても、
削除キーのところを見ると●が勝手に4つ出来てるということなんです。
>>686 そのキーを付け加えるとまた空欄になるんですよね・・・
それで、s/!pwd!/$cook[3]/;にしてみるとまた4つの●に。。。
688 :
KENT厨 :2011/10/20(木) 23:43:21.15 ID:???
>>687 ここまでいくと丸投げの範疇のような気もするけど・・・
おれがやったこと
aska.cgiの257行目($in{pwd}を追加)
&set_cookie($in{name},$in{email},$in{url},$in{pwd});
tmpl内のbbs.htmlの67行目(!pass!を追加)
<input type="password" name="pwd" size="8" maxlength="8" value="!pass!">
aska.cgiの110-111行目(s/!pass!/$cook[3]/;を追加)
s/!url!/$cook[2]/;
s/!pass!/$cook[3]/;#追加
s/!sub!/$res{sub}/;
689 :
nobodyさん :2011/10/21(金) 23:37:10.75 ID:M1w9tWcp
690 :
nobodyさん :2012/05/25(金) 15:23:38.33 ID:+SbZ3p6J
691 :
nobodyさん :2012/05/25(金) 15:46:03.49 ID:+SbZ3p6J
すいません、板違いでしたね。無視してください
【. CGI名 .】 簡易データベース
【配布先URL】
ttp://www.rescue.ne.jp/cgi/database/ 【ヘルプ内容】 ↑の名前検索をスペースを置いて複数人同時に検索したいのですがうまくいきません
$word = $FORM{'HANDLE'};
$word =~ s/ / /g;
@word2 = split(/ /,$word);
if ($FORM{'HANDLE'} ne '') {
foreach $word2(@word2){
if ($HANDLE =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$word2/i)
{ ; }else { next; }
}
}
693 :
nobodyさん :2012/06/29(金) 20:10:54.47 ID:6XDyiqMK
↑お時間ありましたらよろしくお願いします。
>>692 まだいる?
なんとな〜く考えてみたんだけど。
エラーの内容なりどう上手く行かないのか書かないと
697 :
694 :2012/07/05(木) 21:35:22.58 ID:???
>>692 ,695
なんとな〜くだからうまくいかなかったらごめんね。
# ニックネーム(マッチ)
my $word = $FORM{'HANDLE'};
$word =~ s/\xA1\xA1/ /g;
my @word2 = split(/\s+/,$word);
my $myflag = 0;
if ($FORM{'HANDLE'} ne '') {
foreach my $word3 (@word2) {
if ($HANDLE =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$word3/i) { $myflag = 1; last; } else { ; }
}
}
if ($FORM{'HANDLE'} ne '' && $myflag == 0) { next; }
# 検索終了処理
>>697 今、帰宅しました。
>>694 さんのコードを試した処サーバーがResponseエラーになったのですが
myを外して見たところ上手くいきました。(もしかしてこのコードがperl4だったりするんでしょうか?)
無事出力成功しました。ありがとうございます
自己解決 unless 使用 myflagの値変更
【. CGI名 .】 COMCHAT
【配布先URL】
http://www.kent-web.com/ 【ヘルプ内容】
チャットに入室中に間違えてウインドウを閉じてしまったり、ページ全体を更新してしまって入室前の画面に戻ってしまう等を防止したいと思い、
発言フォーム(入室後の上フレームに表示する画面)のソースに、ページ移動時に確認ダイアログを表示するようにJavascliptを追加したのですが、
退室ボタンを押してチャットから退室しようとした時にも上記のダイアログが表示されてしまいます。
そこで、下記のように退室ボタンを押したときにフラグを立て、そのフラグが立っていない時のみページ移動orウインドウを閉じるとダイアログを
表示するようにしようと試みたのですが、退室ボタンを押しても同様にダイアログは表示され上手くいきませんでした。
##発言フォームに追加したJavascript部分
<script type="text/javascript"><!--
var flag01=1;
function taisitsu() {
var flag01="";
}
if (flag01 == 1) {
if(navigator.userAgent.indexOf("Safari") != -1){
window.onbeforeunload = function(event) {
event = event || window.event;
event.returnValue = "このページから移動しますか?";
}}}
--></script>
##退室ボタンの記述部分
print "<input type=submit value='退室する' class=\"pochi\" onsubmit=\"taisitsu()\">\n";
よろしくお願いいたします。
var flag01=1; function taisitsu() { var flag01=""; } スコープ違うし
浮上します
706 :
nobodyさん :2014/07/07(月) 11:24:47.37 ID:6SCF+68T
【. CGI名 .】 ACCESS REPORT
【配布先URL】
http://www.kent-web.com/data/report.html 【. 置き場所 .】
http://www.kent-web.com/cgi/downld/downld.cgi?id=report 【ヘルプ内容】
アクセス解析なのですが、ホスト名が*.ocn.ne.jpみたいに本当にプロバイダ情報だけで
地域までは解析データにとってくれないのでアク禁したい時に困っています。
report.cgiの↓の部分が該当個所だと思うのですが、お助け下さい。
sub get_host {
# ホスト名取得
my $host = $ENV{REMOTE_HOST};
my $addr = $ENV{REMOTE_ADDR};
if ($host eq "" || $host eq $addr) {
$host = gethostbyaddr(pack("C4",split(/\./,$addr)),2) || $addr;
}
if ($cf{deny_host}) {
my $flg;
foreach ( split(/\s+/, $cf{deny_host}) ) {
if (index("$host $addr",$_) >= 0) { $flg++; last; }
}
if ($flg) { &load_img; }
}
if ($host =~ /(.*)\.(\d+)$/) { ; }
elsif ($host =~ /(.*)\.(.*)\.(.*)\.(.*)$/) { $host = "\*\.$2\.$3\.$4"; }
elsif ($host =~ /(.*)\.(.*)\.(.*)$/) { $host = "\*\.$2\.$3"; }
# 結果
return ($addr,$host);
}
以下をまるごとコメントにせい =comment if ($host =~ /(.*)\.(\d+)$/) { ; } elsif ($host =~ /(.*)\.(.*)\.(.*)\.(.*)$/) { $host = "\*\.$2\.$3\.$4"; } elsif ($host =~ /(.*)\.(.*)\.(.*)$/) { $host = "\*\.$2\.$3"; } =cut
>>707 動作確認できました!
ありがとうございます。