★三 【 スクリプト改造工房 PART 8 】 ★三at PHP
★三 【 スクリプト改造工房 PART 8 】 ★三 - 暇つぶし2ch511:nobodyさん
04/11/01 14:22:31 dvWt0D+J
保存先をCSV形式のファイルからデータベース(MySQL)に変更すにはどうすればいいのでしょうか?どなたか、おしえてくださいm(_ _)m
<?php
//error_reporting(E_USER_WARNING); // Warrningを出力しない

//----------------------------------------------------
// 定数の宣言
//----------------------------------------------------
define("BBS_DATA", "./bbs.csv");
define("BBS_COL_DATE", 0);
define("BBS_COL_NAME", 1);
define("BBS_COL_BODY", 2);

//----------------------------------------------------
// 関数の定義
//----------------------------------------------------
// AppendCsvFile関数
// 機 能  CSV形式のデータをファイルの末尾に追加する
// 引 数  $FilePath : 書込むファイルへのパス
//   $CsvData : 書込みデータ
function AppendCsvToFile($FilePath, $CsvData) {
if ($FilePath == "") {
return false;
}
$fp = fopen($FilePath, "a");
if ($fp == 0) {
return false;
}
//作成日、名前、発言内容を「,」で連結し、レコードを作成する。
//また、レコード中の改行文字を取り除き行末に改行文字を付加する。
$temp = ereg_replace("[\r\n]", "", join(",", $CsvData)) . "\n";
fputs($fp, $temp);
}

512:nobodyさん
04/11/01 14:23:01
>>511の続き
// LoadCsvFile関数
// 機 能 CSV形式のファイルを2次元配列に読込む
// 引 数 $FilePath : 読込むファイルへのパス
// 戻り値 $CsvData : 読込んだテキストの2次元配列
function LoadCsvFile($FilePath) {
if (file_exists($FilePath) == false) { // ファイルの存在を確認する
return false;
}
$CsvData = array(); // 配列を作る
$TextData = file($FilePath); // ファイルのデータを読み込む

for ($i = 0; $i < sizeof($TextData); $i++) { // レコードが10件あれば10回
$TextData[$i] = ereg_replace("\n$", "", $TextData[$i]); // 行末の\nを取り除く
$TextData[$i] = ereg_replace("\r$", "", $TextData[$i]); // 行末の\rを取り除く
$CsvData[$i] = split("," , $TextData[$i]); // 「,」を区切りとしてフィールドの値を取り出す
}

return $CsvData; // $CsvDataは二次元配列
}
//------------------------------------------------------------
// ここからが主処理
//------------------------------------------------------------
if (isset($_POST["SUBMIT"])) { //このページが初めてアクセスされたか?
if ($_POST["BODY"] != "") { //発言内容はあるか?
$body = str_replace("\n", "<br>", $_POST["BODY"]); // \n\r(改行文字)をタグ<br>に変換する
$body = str_replace("\r", "", $body);
$name = $_POST["NAME"];
$BBSRecord = array(date("Y/m/d H:i:s"), $name, $body);
AppendCsvToFile(BBS_DATA, $BBSRecord); //「内容」の書込み
}
}

513:nobodyさん
04/11/01 14:23:23
>>512の続き
$BBSData = LoadCsvFile(BBS_DATA); //「内容」の読込み
?>
<html>
<head>
<title>掲示板</title>
</head>
<body><h1 align="center">掲示板</h1>
<a href="bbs.php">最新</a>
<form action="bbs.php" method="POST">
<table border="1" align="center" cellspacing="0">
<tr><td bgcolor="#cccccc" align="center">名 前</td><td><input type="text" name="NAME"></td></tr>
<tr><td bgcolor="#cccccc">発言内容</td><td><textarea name="BODY" cols="40" rows="8"></textarea></td>
<tr><td colspan="2" align="center">
<input type="submit" name="SUBMIT" value=" 投 稿 ">
<input type="reset" value=" ク リ ア "></td>
</tr>
</table>
</form>

514:nobodyさん
04/11/01 14:25:07
>>513の続き
<?php
if ($BBSData == false) { // 発言内容がなければ$BBSDataは空っぽ
print "発言はありません。<br>";
} else {
for ($i = sizeof($BBSData) - 1; $i >= 0; $i--) {
print "<hr><font size='3' color='#0000ff'><b>";
print $BBSData[$i][BBS_COL_NAME] . "</b></fomt>";
print "<font size='2' color='#666666'>";
print " [" . $BBSData[$i][BBS_COL_DATE] . "]" . "</font><br><br>";
print "<font size='3' color='#333333'>";
print $BBSData[$i][BBS_COL_BODY] . "</font><br><br>";
}
}
?>
</body>
</html>

515:nobodyさん
04/11/01 15:24:26
>>511-514
マルチうざい

516:505
04/11/01 23:13:08
>508
ファイル名間違えていました…訂正ありがとうございます。
>509
回答有難うございました!
#css以下を書き換えて動作させてみたのですが、反映されませんでした。
mainをちゃんと作ってないのですが、動作させてみたらこんな感じです↓
URLリンク(shingari1582.hp.infoseek.co.jp)(左フレームからログファイルへ入れます)
書き換え前と変わった事は一番上に「""; 」という記号が入った事だけのようです。
ソースを見てみたところ、<meta name="keywords" content=""></head>の後にスタイルシートが来ているので反映されないのかな?と思うのですが…関係ないでしょうか。
元もとのprint OUT $css;の位置がおかしいのかな?とも思うのですが、それだったら\.docからのcssも反映されませんよね。
現在a:hover以下のcssが反映されていないようです。
自分で別にcss用の変数を作ってみたらどうかと思いいろいろいじってみたのですが、表示されなくなってしまったりしてお手上げ状態です…orz
よろしければアドバイスお願いいたします…。

517:nobodyさん
04/11/02 03:54:29
>>516
#CSS
$css = <<CSSEND;
<style type="text/css"><!--
.doc {  font-size: $honbunsize; color: $honbuncolor font-family : Verdana;}
.sub {  font-size: $titlesize; color: $titlecolor; font-family : Verdana;}
.date {  font-size: $datesize; color: $datecolor; font-family : Verdana;}
a:link {color:000000;text-decoration:none;}
a:hover {color:666666;text-decoration:none;}
a:visited {color:000000;text-decoration:none;}
a:active {color:000000;text-decoration:none;}
FONT { font-family : Verdana;}
BODY { line-height : 120%;}
--></style>
CSSEND

じゃあ、これで。
不要な\と\nと"と;を削除しただけ。
SyntaxErrorはないから多分いけるはず。
動作確認は面倒なのでやってないけど。

#>516のリンク先のhtmlソースには一応css部分出力されてるみたい
#有効になってるかどうかはわからんけど

518:nobodyさん
04/11/04 08:51:40
おはようございます。

URLリンク(haiiro.info)

このCGIで NGワードを設定出来るようにしたいのですが
可能でしょうか?
宜しくお願いします。

519:nobodyさん
04/11/04 12:02:05
>>518
変数にNGワードが入ってたらエラーで弾けばよかろ

520:518
04/11/04 13:11:29 /4YiSBg1
>>519
スミマセン。詳しくお教えいただけないでしょうか?

521:nobodyさん
04/11/04 17:36:00
>>520
これ以上何を聞きたいのだろうか…
丸投げしたいのならスレ違い。
自分で何とかしたいのなら、どこがどう解らないのかを書く。

【 スクリプト改造依頼スレ 】(丸投げ) part2
スレリンク(php板)

522:nobodyさん
04/11/06 21:18:18
178 Name_Not_Found [sage] 04/11/06 16:26:41 ID:???
【種別】 ダイスチャット
【言語】 perl
【備考】 URLリンク(www.big.or.jp)
      これのようにダイスを振るフォームがあるのではなく、発言欄にコマンドを入れるようなもの。

正確には、COMCHAT-EX(KENT-WEB)に追記することによって
実装できるダイス用の構文が欲しいかも。


179 Name_Not_Found [sage] New! 04/11/06 19:49:11 ID:???
それは改造になるんじゃ?

523:nobodyさん
04/11/06 21:22:07
>>522
>>521

1つ上のレスぐらい読めや

524:nobodyさん
04/11/17 22:33:22
【.  CGI名  .】LIGHT CHAT
【配布先URL】URLリンク(happy.honesto.net)
【. 置き場所 .】URLリンク(botejako.com)
         自分で多少改造したものです。
【ヘルプ内容】
チャットの発言が表示される上の部分に表示される参加者名を
左から発言・入室したのが早い順に更新・発言した際に並び替えて
表示させるようにしたいのですがどうしてもできません。
今の状態だと、入室した順にしかなっていないようです。
参加者リスト(present.dat)の先頭に毎回追加すればいいのだと思うのですが、
push~~をunshift~~に変えてみてもうまくいきません。
それが見当違いのことをしてるかどうかもわかりません。

何かヒントをいただけないでしょうか、お願いします。

525:nobodyさん
04/11/17 22:35:28 A5o7/dm+
書き込みないようなのでageさせてもらいますです。

526:nobodyさん
04/11/22 19:28:58
しかし回答出来る人間は居なかった


      - 完( ´∀`) -






527:nobodyさん
04/11/22 22:20:50
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

528:nobodyさん
04/11/23 00:04:37
一匹釣れたみたいよ>>526

529:nobodyさん
04/11/23 02:43:22
527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

530:nobodyさん
04/11/24 05:44:42
527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやん、つまらん改造ですので、スクを見る気になれませんわ。
私を満足させられる対価を頂けますなら請け負いますけれど…

531:nobodyさん
04/11/26 17:09:14
【CGI名】ランキングSP
【配布先URL】URLリンク(hp.bird.to)
【依頼内容】スコアと表示されてる数字の間に.とかを入れる(9999を9.999と表示)ようにしたいのですが、どのように改造すればいいでしょうか?
アドバイスお願いします。


532:nobodyさん
04/11/30 18:53:24
URLリンク(www.rescue.ne.jp)

↑ここのサイトのデータベース改造してます。
regist.cgi、search.cgiは変更しましたがエラーになったのでデフォルト。
regist.htmlのみ変更してます。

複数登録したいのでregist.htmlのリストボックスをチェックボックスに改造中なのですが、
チェックボックスに変更した後、WEB上で動作確認した所
チェックボックスで選択した項目で最後の物のみ反映されて
他の項目は反映されません。

【例】

<input type="checkbox" name="PREF" value="1" border="0">1  
<input type="checkbox" name="PREF" value="2" border="0">2 
<input type="checkbox" name="PREF" value="3" border="0">3 
<input type="checkbox" name="PREF" value="4" border="0">4
<input type="checkbox" name="PREF" value="5" border="0">5

Aに対して2つの項目を登録するとして

1と4を選択すると4のみ、2と3を選択すると3のみ
と言った状況です。

regist.cgi、search.cgiもいじらなくてはいけない事は分かるんですが、
何処をどうやって良いのか分かりません_| ̄|○

誰か、教えてください。。。

長文、すいませんでした。

533:nobodyさん
04/12/01 04:25:16
こっちに貼っておけば良かったのかな?
URLリンク(www.google.co.jp)

534:nobodyさん
04/12/04 20:50:36 8LV5OOZo
配布されているチャットを改造したいです。

インフォシークなので直リンができないので、中継地点を作ってます。

URLリンク(keizibann.hp.infoseek.co.jp)
↑から入ったチャットの、一番上あたりに、
 参加者の名前を表示させるにはどうすればいいですか?

スクリプトはこれ↓です。
URLリンク(keizibann.hp.infoseek.co.jp)

よろしくお願いします。




535:nobodyさん
04/12/04 21:24:16
URLリンク(help.www.infoseek.co.jp)
通報済み

536:nobodyさん
04/12/05 06:13:44
>>534
知恵袋で質問した人だよね。
漏れは丸投げスレに誘導したんだが、工房スレに来たということは自分で改造できるんだね。

じゃ、改造の流れを説明するぞ。

まずKENTの所(URLリンク(www.kent-web.com))に行ってcomchatをダウンロードして来い。
comchat.cgiの在室者処理の所をパクれ。
変数名をK's Chat Ligthにあうように弄れ。

以上。

537:nobodyさん
04/12/05 06:14:55
>以上。

これは余計だなお

538:nobodyさん
04/12/05 16:51:08 +UKjgSSz
ここじゃなかったのか、、、。
ついでに寄ったから間違えた。。。

でもありがとう。がんばります。

539:nobodyさん
04/12/12 03:38:36
imgboard.cgiを利用中です。
URLリンク(www.big.or.jp)

これに2ちゃんと同じsage機能をつけたいのですが上手くいきません。

540:nobodyさん
04/12/12 03:39:20
3341行目からの
----------------------------------------------------
if($PM{'res_go_up'} == 1){
undef $tp_match_flag;
local($tp_loop_counter)=0;
foreach $tmp_parent(@NEW_BLOODS){
# 3スレッドまで上へ持って行く
# それ以上にすると負荷が上がるのでやめる
last if($tp_loop_counter >= 3);
if(($tmp_parent eq "$9")||($tmp_parent eq "$11")){
$tp_match_flag = 1;
last;# 検出したら抜ける
}
$tp_loop_counter++;
}
if($tp_match_flag == 1){
push(@GOUP_MESSAGE, $_);
$all_message++;
}else{
push(@MESSAGE, $_);
$all_message++;
}
}else{
push(@MESSAGE, $_);
$all_message++;
}
----------------------------------------------------

541:nobodyさん
04/12/12 03:40:26
を下のように書き換えました

----------------------------------------------------
if($email == $sage){ #### $sage=sageというのを作った
push(@MESSAGE, $_);
$all_message++;
}
else{
undef $tp_match_flag;
local($tp_loop_counter)=0;
foreach $tmp_parent(@NEW_BLOODS){
# 3スレッドまで上へ持って行く
# それ以上にすると負荷が上がるのでやめる
last if($tp_loop_counter >= 3);
if(($tmp_parent eq "$9")||($tmp_parent eq "$11")){
$tp_match_flag = 1;
last;# 検出したら抜ける
}
$tp_loop_counter++;
}
if($tp_match_flag == 1){
push(@GOUP_MESSAGE, $_);
$all_message++;
}else{
push(@MESSAGE, $_);
$all_message++;
}
}
----------------------------------------------------


542:nobodyさん
04/12/12 04:12:51
そうした所レスのメール欄にsageを入れようが入れまいが
書き込むと上に上がらなくなってしまいました。
試しに変更した
if($email == $sage)

if($PM{'res_go_up'} == 0)
にしてレスを入れたらちゃんと上がりました。

if($email == $sage)
が間違えているのでしょうか?
どなたご教授頂けないでしょうか?
長くなってすみません。

543:nobodyさん
04/12/12 06:05:55
質問を全部読んでないが(^^;
== は数値の比較
eq が文字列の比較

544:539
04/12/12 08:03:13
>>543
ありがとうございます。
if($email eq $sage)が正しいようですね。
しかし今度は下がらなくなった。_| ̄|○

545:nobodyさん
04/12/12 17:10:46 cJqt4xtP
参考:URLリンク(www.kent-web.com)
依頼:携帯から投稿された絵文字が記録されているログを開き
$text = &emoji($text);
の様に絵文字変換ルーチンを通せば
携帯3キャリア相互変換、PC表示ができる様にさせたい。
&emoji; の部分をお願い致します。


546:nobodyさん
04/12/12 18:53:39
>>545
まず、>>1の(3)の真ん中を音読してもらおうか?

547:nobodyさん
04/12/14 09:19:31 Q99fVzSY
URLリンク(www.kit.hi-ho.ne.jp)
こちらで配布している「シンプル日記」の改造をお願いします
(作者さんが多忙のせいか、更新放置されているので・・・)

改造項目は日付の横に任意の画像アイコン(セレクトタグで)を載せたいです
自分で改造できなくて情けない・・・
宜しくお願いします

548:nobodyさん
04/12/14 10:10:33
>>547
スレ違い

■ 自分で改造できない場合には
【 スクリプト改造依頼スレ 】(丸投げ) part2
スレリンク(php板:2番)(テンプレ)

549:nobodyさん
04/12/14 11:04:42
>>548
ありがとう、移動します
スレ汚してごめんなさい

550:6
05/01/07 23:40:43
【.  CGI名  .】 電光! v.5.20
【配布先URL】 URLリンク(cgiscriptmarket.com)
【. 置き場所 .】 URLリンク(www36.tok2.com)
【ヘルプ内容】 
途中までやりましたがココからがわかりません。
・枠がどうしても青色。黒色に変えたい。枠の太さも1pxに。
・日付に「'」が入ってしまう。
・1 名前 : 内容  5/06 12:40 とひとつのformで表示したい。
・見かけ上だけ消してるだけなので要らないソースは消してしまいたいがどれを消していいかわからない。

お願いします。

551:nobodyさん
05/01/07 23:53:58
>>550
マルチ乙!

552:6
05/01/07 23:59:44
誘導されてきました。。
スレ違いですか?

553:nobodyさん
05/01/08 00:55:46
>>552
丸投げスレとperlスレみたいにあちこち書いてるだろ。
他のスレに書くなら取り消すなり移動する旨ぐらい書け。
だからマルチと言われる。
それに自分でいじってるんだろ?
だからここへ誘導されたんだ。

↓自分がどちらなのかよく考えろ。

■ 自分で改造できない場合には
【 スクリプト改造依頼スレ 】(丸投げ) part3
スレリンク(php板:2番)(テンプレ)

■ 自分で改造するアドバイスが欲しい場合には
★三 【 スクリプト改造工房 PART 8 】 ★三
スレリンク(php板:79番)(テンプレ)

554:6
05/01/08 16:21:33
こっちが★三 【 スクリプト改造工房 PART 8 】 ★三 で
・枠がどうしても青色。黒色に変えたい。枠の太さも1pxに。
・日付に「'」が入ってしまう。
こっちが★三 【 スクリプト改造工房 PART 8 】 ★三 です。
見かけ上だけ消してるだけなので要らないソースは消してしまいたいがどれを消していいかわからない。 rmで表示したい。
・1 名前 : 内容  5/06 12:40 とひとつのformで表示したい。

555:nobodyさん
05/01/14 22:12:47
【.  CGI名  .】 WwwSearch Ver3.15 - 検索フォーム
【配布先URL】 URLリンク(www.tohoho-web.com)
【ヘルプ内容】 検索結果を、5件ごとや10件ごとに表示させるようにしたいです
自分がいじった部分のソースを貼ります

sub search1 {
  local($dir) = $_[0];
  local(@filelist, $file, $filename);
  opendir(DIR, $dir);
  @filelist = readdir(DIR);
  closedir(DIR);
  $begin = $FORM{'page'} * $hyouji;
  $end = $bigin + $hyouji;
  if($end > @filelist) {
    $end = @filelist;
  }

(続く)



556:555
05/01/14 22:13:34
    #foreach $file (@filelist) {
    for ($a = $bigin; $a < $end; ++$a) {
    if ($file eq ".") { next; }
    if ($file eq "..") { next; }
    $filename = "$dir/$file";
    if (-d $filename) {
      if ($recursive_flag) {
        &search1($filename);
      }
    } else {
    &search2($filename, $dir);
    }
  }
  if ($end < @filelist) {
  $nextpage = $FORM{'page'} + 1;
  print "<a href=\"$ENV{'SCRIPT_NAME'}?page=$nextpage\">次へ</a>\n";
  }

# }
}



557:555
05/01/14 22:18:04
foreachのかわりにforでまわしてみたんですが
結果は検索が一件もされず「次へ」のみが表示されてしまいます
アドバイス、解決法よろしくお願いします


558:nobodyさん
05/01/15 19:29:07
>>555
久しぶりに改造工房にお客が来たのに放置されているなぁ~

sub search1の@filelistだが、お前はこの配列に検索に引っかかったものが入っていると思っているだろ?
残念。
@filelistには対象ディレクトリの中にある全てのファイルが格納されている。
試しに
closedir(DIR);
のあとに
errexit("@filelist");
って入れてごらんよ。

漏れならsub search1とsub search2を大改造しる。
opendir(DIR, $dir);
で、指定してた拡張子のファイルのみを
@filelistに入れていく。

559:555
05/01/15 23:08:47
>558
指摘、アドバイスありがとうございます
となるとforループ自体がおかしいことになりますね
なんだか煮詰まってテンパってきました
もちょっとガンガってみますです…

560:nobodyさん
05/01/16 03:38:30
KENTのBBSのソースでも眺めれ。
たいていは件数によって次ページ送りの機能がついているから。

561:nobodyさん
05/01/17 11:01:28 gvEGsU/w
丸投げの方で放置されそうな勢いなので、自分で努力しつつこちらで質問します。

【.  CGI名  .】 HiLink Type-B
【配布先URL】 URLリンク(www.e-hws.net)
簡易表示の方法をちょっと変えたいです。新着順とランキング順しかソート方法が無いのですが、
これをタイトル(サイト名)で50音表示できるように変更したいです。
利用方法としては「ランキング表示」リンクボタン(?)を「50音表示」とし、クリックするとで50音順で
並ぶというものです。
表示方法なんかを改造してるので、行数が合わないと思われるので、名前で場所を伝えます。

sub mainの「表示データ作成」にある「# ランキング表示の場合、ソートする」をどうにかしたら良いんですよね?
$ititleと$jtitleがサイト名のようです。
さらに、その下の「if( $iclicknum < $jclicknum ){」の部分を書き換えれば良いとは思うのですが…
素人ながらに「if( $ititle < $jtitle ){」ってしてみましたが、案の定変化無しです。
どのようにしたら50音順に並べる事が可能ですか?

宜しくお願いします。


562:nobodyさん
05/01/17 18:56:00
>>561
規約は読んだのか?
再配布禁止&&使用者はメールで届出の義務あり

563:555
05/01/18 19:32:37
>560
眺めて悩んでいたらなんかわかってきました
558さん560さん、アドバイスありがとうございました

564:nobodyさん
05/01/18 20:55:07
>>562
このスレは改造工房であり、改造済みのスクリプトを手渡すわけではないので再配布禁止には当たらないかと…
それにまだ改造したものを設置してないので、メールはまだしなくてもよいかと…

要するにヒントだけ与えれば質問者が何とかするって言うスレなので問題はないかと…

>>561
今ちょっと忙しいので、そのうちスクを見てみるわ。

565:nobodyさん
05/01/19 05:16:19
>>561
惜しい。
Perlは数値か文字列かで比較演算子が異なる。
< の代わりに gt を使えば丁度だな。

566:561
05/01/19 10:15:04 sYVj0TcQ
>>564 >>565
フォロー&返答ありがとうございます。

ばっちり出来ました。
文字列は数字じゃないから数字の演算式記号は使えないって事で覚えててOKでしょうか?

アドバイスありがとうございました!

567:730
05/01/23 11:37:56
他スレから誘導されて来ました。

会員制掲示板のPerlCGIスクリプトです。普通の掲示板(KENTさんの書籍のスクリプトを参考に、過去ログ
作成機能と検索機能を削除した)に、IP制限とパス制を組み合わせ改造しました。
✓で特定のIP(@allow)だったら認証画面(&admin)を出し、パスが合ったら掲示板を表示させる(&bbs)。
IPおよびパスが合わなければエラーを返す、・・・つもりでした。しかし下記のスクリプトでは認証画面は
表示しますが、パスを入力しても認証画面、パスミスでも認証画面になるという状態で、
どうにも煮詰まってしまいました。どこがおかしいのかご教授下さい。これでもIP制限は動作しています。

スクリプトはここにアップしました。該当部分だけ。
URLリンク(up.isp.2ch.net)


568:730
05/01/23 12:14:51
ついでにお聞きします。

【スクリプト名】
Web拍手(公式HPから配布版DL。2004年10月。)

【CGIソース】
kaiseki.cgiだけ。
URLリンク(up.isp.2ch.net)

【改造した内容】
●過去15日分のデータを保存し表示するのを、31日分にする。(crap.cgiとkaiseki.cgi)
●アクセス解析機能を追加し、拍手した人のホスト名をaccess.datに保存する。(crap.cgi)
●このスクリプトへアクセスしたときの画面にはaccess.datへのリンクを張る。
●DLしたままのスクリプトでは、解析グラフのタグがぐちゃぐちゃだったので
 そこも変更。時間ごとのグラフも縦表示から横表示に変更し、31日表示を
 しやすくした。
●グラフの画像も横表示に対応させた。
[現在困っていること]
上記改造を加えたあと先週までは問題なく動作していたのですが、今日アクセス
してみたらスクリプトエラーが発生していました。拍手機能は動作しています。
kaiseki.cgiは、上記改造後何も手を加えていないので普通は起こりえないエラーです。
ただ原因として、ローカルに保存していたこのスクリプト(アプロダに挙げたもの)が
間違っていて、サーバーで動作していたのはサーバー側で直接書きなおしたからでミラーリング
していなかった。それをFTPソフトの誤動作で全ファイルを送信したために、動かないローカルの
スクリプトで更新されてしまった・・・というのが考えられます。
#FTPソフトのログにはこのファイルを送信したという記録はないのですが、一昨日以前のログが
#消えているのでわからない。

そこでUPしたこのスクリプトを眺めてみたのですが、どこがおかしいのかわかりません。
pcheck.cgi(Perlスクリプト文法チェッカ)ではsyntax errorの発生はありませんでした。
なにか間違っているところがありましたら教えてください。


569:nobodyさん
05/01/23 13:17:49
>>567-568
アップ先が表示できません


570:567
05/01/23 16:52:48
ありゃ。失礼しました。申し訳ないです(大汗)
UPしなおしました。
>>567
URLリンク(yellow.ribbon.to)
>>568
URLリンク(yellow.ribbon.to)

571:555
05/01/23 22:33:51 a5mA126v
再びすみません

【.  CGI名  .】 WwwSearch Ver3.15 - 検索フォーム
【配布先URL】 URLリンク(www.tohoho-web.com)
【ヘルプ内容】 検索結果を、「次へ」ボタンを押して、次の件をひょうじさせたいです

5件ごとや10件ごとの表示は最初だけは表示できるようになりました
「次へ」ボタンを押して、次の件をひょうじさせたいのですが
うまくいきません
この文を最後に追加しました

print "<form method=\"POST\" action=\"$script?page=$page&word=$word\">\n";
print "<input type=\"submit\" value=\"次へ\">";
print "</form>";

「次へ」ボタンを押しても検索結果が出てきません
何かたりないのでしょうか
かなり悩みましたが答えが見つかりません
ヒント、アドバイスお願いします

572:nobodyさん
05/01/23 22:37:48
書き忘れました

>571の文の前に

$page=$FORM{'page'};
$word=$FORM{'word'};

を実行しています

$scriptには自身のCGIファイルの名前が入ってます

573:nobodyさん
05/01/24 00:23:35
>>572
掲示板スクリプトを拾って読んでみたら応用できるんじゃない?

574:nobodyさん
05/01/24 00:33:32
>>572
かなり勘で答えるけど、
<form method=\"POST\" action=\"$script?page=$page&word=$word\">
これをこんな風にしたらだめ?
<form method=\"POST\" action=\"$script¥">
<input type=\"hidden\" name=\"page\" value=\"$page\">
<input type=\"hidden\" name=\"word\" value=\"$word\">

それと、$pageが、ボタンを押したら変化する(=数字が増えたり減ったり)
ようになってますか?
(FORMのほうの数字が固定だったら、最初のページしか動かない。)

575:572
05/01/24 01:12:24
>573
掲示板スクリプト眺めてるんですが
一向にらちがあかないのです;;

>574
ありがとうございます
試してみましたが、結果はやっぱり同じでした
「次へ」を表示するとこまではいいんですが
押しても、検索フォームだけ出て結果は出ないのです

ソースも晒したほうがいいでしょうか?

576:572
05/01/24 01:16:02
>574
うっかりしてました
この文の直前に

$nextpage = $FORM{'page'} + 1;

をしています

print "<input type=\"hidden\" name=\"page\" value=\"$nextpage\">\n";

にしても結果変わらずです

577:nobodyさん
05/01/24 01:33:30
そんな送信する側の記述を書かれたってわかるわけない。
page=$pageとword=$wordという値を受け取ってどういう処理をさせてる?

578:572
05/01/24 09:52:41
>577
sub readform {
 if ($ENV{'REQUEST_METHOD'} eq "POST") {
  read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
 } else {
  $query_string = $ENV{'QUERY_STRING'};
 }
 @a = split(/&/, $query_string);
 foreach $x (@a) {
  ($name, $value) = split(/=/, $x);
  $value =~ tr/+/ /;
  $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
  $FORM{$name} = $value;
}
}

の後

$page = $in{'page'};
$word = $in{'word'};

を実行してます
(続く)

579:572
05/01/24 10:03:39
(続き)
 if ($word =~ /[\x80-\xff]/) {
  # 日本語が含まれているフラグ
  $jflag = 1;# 日本語が含まれている
  # 一度EUCに変換する
  &jcode'convert(*word, "euc");
  # 全角空白を半角空白に置換する(EUCの空白は#A1A1)
  $word =~ s/([\x80-\xff][\x80-\xff]|[\x00-\x7f])/($1 eq "\xa1\xa1") ? " " : $1/eg;
  # SJISモードであればSJISに変換する
  if ($kcode_file eq "sjis") {
   &jcode'convert(*word, "sjis");
  }
 }

sub search1の中から抜粋
 if (defined($FORM{'WORD'})) {
  # メタ文字を無効化する
  if (!$jflag) {
   $word =~ s/([\+\*\.\?\^\$\[\-\]\|\(\)\\])/\\$1/g;
  }
  # 検索語を分割する
  @words = split(/ +/, $word);
  # 検索する
  print "<dl>\n";
  @dirs = split(/ +/, $target_dir);
  foreach $dir (@dirs) {
   &search1($dir);
  }


580:572
05/01/24 10:07:38
$pageは>576にも書いたのですが$nextpageにしてますので
今は使ってません
最初の一回目は5件表示されるのに
「次へ」を押すと検索フォームだけ出て、結果が出ないのがはがゆくてなりません
これで参考になりますでしょうか?

581:nobodyさん
05/01/24 10:18:02 f8wXJteD
>>580
Perlってデバッガ無いの?
PHPだとZend入れてればIEの右くりメニューからデバッガ起動するよ。

582:572
05/01/24 10:28:28
一番重要なトコ忘れてました
sub search2の中から抜粋
 $bigin = $FORM{'page'} * $hyouji;
 $end = $bigin + $hyouji;
 if($end > @filelist) {
  $end = @filelist;
 }
中略
if ($bigin <= $a) {
 if ($a < $end) {
  $h_k++;
  print "<dt>■ <a href=\"$target\" target=\"out\">";
  $title =~ s/<[^>]*(>|$)//g;
  $title =~ s/[\r\n]+//g;
  &jcode'convert(*title, $kcode_cgi);
  if ($title eq "") {
   $title = $target;
  }
  print "$title</a>\n";
  if ($print_filename) {
   print "( <a href=\"$target\" target=out>";
   $target =~ s/$tdir\/?//;
   print "$target</a> )\n";
  }
  print "<dd>";
  $imin = $i - $how_many_lines;
  if ($imin < 0) { $imin = 0; }
  $imax = $i + $how_many_lines;
  if ($imax > $#lines) { $imax = $#lines; }


583:nobodyさん
05/01/24 10:29:17 CX5KANJQ
  for ($j = $imin; $j <= $imax; $j++) {
   $line = $lines[$j];
   &jcode'convert(*line, "euc");
   line =~ s/<[^>]*(>|$)//g;
   $tmp = $word;
   &jcode'convert(*tmp, "euc");
   if ($jflag) {
    $tmp =~ s/([\+\*\.\?\^\$\[\-\]\|\(\)\\])/\\$1/g;
   }
   foreach $w (@words) {
    $w2 = $w;
    &jcode'convert(*w2, "euc");
    $line =~ s/($w2)/<b>$1<\/b>/ig;
   }
   &jcode'convert(*line, $kcode_cgi, "euc");
   print "$line ";
   if ($end >= @filelist) {
    exit;
   }
  }
  if ($h_k == $hyouji) {
  $nextpage = $FORM{'page'} + 1;
  print "<form method=\"POST\" action=\"$script\">\n";
  print "<input type=\"hidden\" name=\"page\" value=\"$nextpage\">\n";
  print "<input type=\"hidden\" name=\"word\" value=\"$word\">\n";
  print "<input type=\"submit\" value=\"次へ\">";
  print "</form>";
  }

 }
}


584:nobodyさん
05/01/24 12:14:55
部分だけじゃなくてどっかに全部うpしろや。

585:nobodyさん
05/01/24 12:35:13
>>567
✓ # アクセスチェック
if ($mode eq ''){ &admin; }
if ($FORM{'pass'} ne "$pass") {&error("パスワードが違います");}
if ($mode eq 'regist'){ ®ist; }
&bbs;
exit;
sub check { # アクセス制限
$host = gethostbyaddr(pack("C4", split(/\./, $ENV{'REMOTE_ADDR'})), 2) || $ENV{'REMOTE_ADDR'};
 foreach $i (@allow) {
  if ($host =~ /$i/) { return; }
 }
 &error("アクセスが許可されていません");
 exit;
}
sub admin { #認証
 &header;
print << "_ID";
<form action="$script" method="POST">
<input type=hidden mode=bbs size="8">
<input type=text name=pass size="8">
<input type=submit value="認証">
</form>
_ID
 &footer;
 exit;
}

全体がわからんけどこんなところか。
ただしこれだけじゃなくて全体にも手を入れないと動かんよ。


586:572
05/01/24 18:07:17
>584
うpしました
URLリンク(www.uploda.org)
受信パスは「cgi」です
よろしくお願いします

587:567
05/01/24 22:09:17
>>568解決しました。jcode.plのパスが違ってました。
わかってみれば、にんともかんとも(滅)
お騒がせしました。

>>566についてはまだです。
パス認証だけどうしてもうまくいきません(TT)

588:nobodyさん
05/01/25 04:15:56
URLリンク(www.net-easy.com)
のパスワード認証&自動発行スクリプト
URLリンク(cat.zero.ad.jp)

まず、115行のメールアドレス入力欄
<INPUT name="mail_add" size="30"><BR>
 を
<INPUT name="mail_add_a" size="30"><BR>
<select name="mail_add_b">
<option value="\@docomo.ne.jp">\@docomo.ne.jp</option>
<option value="\@ezweb.ne.jp">\@ezweb.ne.jp</option>
<option value="\@c3.ezweb.ne.jp">\@c3.ezweb.ne.jp</option>
</select>
のように2段階入力にして、
("mail_add_a"はメアドの@までのアカウント、
"mail_add_b"は@以降のドメイン名として代入)

147行 $mail_add = $in{'mail_add'}; の部分で
上記フォームから受け渡される"mail_add_a"と"mail_add_b"を連結して
変数 $mail_add に代入されるようにしたいのですが、
$in{'mail_add'}; の部分をどのように書き換えれば2つの文字列を連結させられるでしょうか?


589:588
05/01/25 04:31:03
付け足し
147行はメアドの書式をチェックする部分です。

590:nobodyさん
05/01/25 11:35:50
>>588
$mail_add = $in{'mail_add_a'} . $in{'mail_add_b'};

591:nobodyさん
05/01/25 21:21:27
>>590
解決しました。
vrytnx

592:572
05/01/27 21:43:23
忘れてました

# このスクリプトの名前
$script = "kensaku2.cgi";

(78~79行目辺り)の部分をスクリプトの名前に変えてください
よろしくお願いします

593:572=586
05/01/28 22:52:33 wG0bpuZu
うpしなおしました
URLリンク(www.uploda.org)

デバッグしてみると
「次へ」ボタンが押された時、検索語が受け渡されていないようです
どこをいじればいいかわからなくなってきました
アドバイスお願いします

594:nobodyさん
05/01/29 16:02:16 BgaXde9b
【.  CGI名  .】 Design BBS 1.80 【配布先URL】 URLリンク(prism-web.com)
【ヘルプ内容】 
このCGIについている、特定のIPからのアクセスを拒否するアクセス制限を、逆に特定のIPからのアクセスだけOKにするアクセス制限に変更したい。どうすればよいか。
DLしたままのファイルで、sub axs_checkのflagを逆にしてみたらスクリプトエラーになってしまい、他にどうすればよいかわからなくなった。
ーーここからスクリプト
@deny = (
"hogehoge.com",
);

&decode;  #フォームデコード
&axs_check; #アクセス制限
#(中略):フォームの設定が数行
&html;   #BBS本体表示

# アクセス制限
sub axs_check {
 &get_host;

 if ($deny[0]) {
  local($flag)=0;#ここを1にして・・・その下の$flag=1を0にするとスクリプトエラー。
  foreach (@deny) {
  #↓これは、@denyにないIPならループ抜けの意味ですよね?違う?(・・、
   if ($_ eq '') { last; }
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
  }
  if ($flag) { &error("許可されていないアクセスです!") }
 }
}


595:594
05/01/29 16:03:22
# ホスト名取得
sub get_host {
 $host = $ENV{'REMOTE_HOST'};
 $addr = $ENV{'REMOTE_ADDR'};

 # ホスト名取得に gethostbyaddr関数を使用する場合は$gethostbyaddr = 1;にします。
 $gethostbyaddr = 1;

 if ($gethostbyaddr) {
  if ($host eq "" || $host eq "$addr") {
   $host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
  }
 }
 if ($host eq "") { $host = $addr; }
}

596:nobodyさん
05/01/29 16:57:47
>594-595
俺もperlをちょこっといじって遊んでるくらいの人間なんで、あんま自信ないけど・・・

 if ($deny[0]) {
  local($flag)=0;
  foreach (@deny) {
  #↓これは、@denyから取り出した内容($_)が空('')だったらループ抜け、だと思
   if ($_ eq '') { last; }
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
   #↑アクセスした人のホスト($host)に@denyから取り出した内容($_)が
   #↑含まれていたら$flagの値を1にしてループを抜ける
   #↑つまり「$flag==1なら拒否」
   # これを「$flag==1なら許可」に変えたい → 言い換えると「$flag=!1なら拒否」
  }
  if ($flag=!1) { &error("許可されていないアクセスです!") }
  #↑ということでここをこう変更すればいけるんでは?
 }

ただ「特定のIPからの制限」なら、$hostじゃなくて$addrにするべきなんじゃ?って気がするけど



597:594
05/01/29 21:54:11
>>596
if ($flag=!1) { &error("許可されていないアクセスです!") }
これだと500エラーになってしまいましたです。

if ($flag ne "1") にしてみましたが、こっちも500エラー。
if ($flag = "0")も500エラーでした。
>>594だったらちゃんと動作するんですけど・・・(><)

598:594
05/01/29 22:21:41
フラグを使わない方法を考えてみましたが・・・
sub axs_check {
 # ホスト名を取得
 &get_host;
 if ($deny[0]) {
  foreach (@deny) {
   if ($_ eq '') { &error("許可されていないアクセスです"); last;}
   $_ =~ s/\*/\.\*/g;
   if ($host eq~ /$_/) { last;}
   #こうしたら、@denyのIPでのアクセスがエラーになる。
   #$host ne にするとスクリプトエラーに。
  }
 }
}
お手上げです(TT)

599:594
05/01/30 01:16:06
たぶんできました。
sub axs_check {
 # ホスト名を取得
 &get_host;
 if ($deny[0]) {
  local($flag)=0;
  foreach (@deny) {
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
  }
  if (!$flag) { &error("許可されていないアクセスです!") ; exit;}
 }
}
これで何とか動作しました。
>>596さん、いろいろヒントありがとうでした。
>>595
>if ($_ eq '') { last; }
これ、@denyが空の設定がありうる、ということを失念しておりました(^-^;
#だってデフォルトからして空ではなかったので、なんて言い訳してみるテスト(ぉぉ

600:nobodyさん
05/01/30 05:18:46
つか、500エラーに対処できないのかね?
多分こいつは共有サーバでテストしながら改造している希ガス

601:594
05/01/30 11:57:38
なんかエラった(汗)

>>600
文法チェックの結果エラーがなく、
InternalServerErrorになる理由がわからないというだけの話です。
IPの判断に関してはローカルではテストできないので
確かに共有鯖にしましたけど、
ローカルでテストする方法あります?

602:nobodyさん
05/01/30 12:02:58
>>601
500エラーについて
CGI設置について質問 【Part2】
スレリンク(php板:2番)


603:nobodyさん
05/01/30 17:01:23
>>601
&get_host; をコメントアウトして代わりに
$host = 'ダミーのアドレス';を書けばいいだろ

604:nobodyさん
05/01/31 23:38:23
質問にあったスレが見当たらないのでお邪魔します
CGI配布場所  URLリンク(sugachan.dip.jp)
サンプル  URLリンク(sugachan.dip.jp)
特定IP・串からのアクセス・DLを弾きたいのですが
特定IPの場合
$set{'deny_host'} = ' ';に何を入れればいいのでしょうか?
そして上にIPを入れた場合は直リンからのDLも防げるのでしょうか
検索してみたのですがわけがわからず途方にくれています

605:nobodyさん
05/01/31 23:52:38
>>604
ここは改造スレなのでスレ違い。

CGI設置について質問 【Part2】
スレリンク(php板)

606:nobodyさん
05/02/03 10:49:14
丸投げスレッドから来ました。
期限が近いのでどうぞよろしくお願いします
【.  CGI名  .】 検索専用データベース Ver2.04
【配布先URL】 URLリンク(cgiroom.nu)
【. 置き場所 .】 URLリンク(hpcgi2.nifty.com)
【 依頼期限 】 出来れば1週間ほどで。
【. 依頼内容 】検索結果に画像を表示、新着情報等がわかるように。
の2点をしたいのですが、よくわかりません。
理想としては
URLリンク(rikunabi-next.yahoo.co.jp)
のような感じにしたいです。
どうぞよろしくお願いします。

607:nobodyさん
05/02/03 15:09:30
>>606
>丸投げスレッドから来ました。
>期限が近いのでどうぞよろしくお願いします

(゚Д゚)ハァ? スレ違いは帰れ

608:nobodyさん
05/02/04 00:30:42
>605
改造だと思っていたのですが、違っていたのですね
お礼が遅れてすいませんでした
ありがとうございます

609:606
05/02/04 10:07:39 x2xOcYLj
すみません、書き方がおかしかったです。
丸投ではなく、出来るだけ自分でどうにかしたいので
改造の方に来ました。という意味です。
>607様わかってもらえたでしょうか?

610:nobodyさん
05/02/04 11:25:07
>>609
要するにマルチって事だろ?
期限って何よ?

611:nobodyさん
05/02/04 13:47:30
>>610
期限は前スレッドで記入するところがあったので
そのまま流用してみました。
期限を決め、大体そのくらいで出来ればいいな。
という希望的観測も含まれています。
前スレッドに移動しますと言う旨を書いてるので
マルチではないかと思いますがどうでしょうか?
分かりにくくてすみません。


612:nobodyさん
05/02/05 09:23:59
omae no taido ga kiniiran

613:nobodyさん
05/02/05 18:32:34
態度が悪く申し訳ありません。
悪かった点がありましたら、謝りますので
どうにかしていただけないでしょうか?


614:nobodyさん
05/02/06 05:14:40
やっぱ人に依存しっぱなしのヤツってどっか抜けてるんだな。


漏れもperlの文法とかはさっぱりだけど、
最低限自分のしたいようにするためにhtmlの出力部分をいじったり
どの変数がどういう処理に回されてるかを必死ににらめっこして自分なりに判断して、
その上で具体的にどの部分をどうしたいかを明記するもんだと思うんだけどね。

質問があまりにも抽象的だったり漠然としすぎているから
正直誰も答えようがないし、答える気もしないんじゃないかな。

2chでは社交辞令的な事には誰も関心なくて、
用件をはっきり伝えて手短に済ませるってなスタイルが定着してると思うしね。

615:nobodyさん
05/02/07 02:06:50
「俺パソコンとかよくわかんねーからさぁ」って、開き直ってる人が多いッす。
大抵は少し経てばそういう気分は抜けて「そろそろ俺も中級者って感じィ♪」と思うんだけど、新しい分野に取り組むと
またお手上げ状態…みたいな。
身近にそういう人が何人かいるのでよくわかるッす。
まあ、なんでもかんでもそうですけど、わからなくてもとりあえずチャレンジすることって大切ッす。
いや勿論、責任の取れる範囲でのハナシッす。

>>14みたいな文は誘導のテンプレにしたいッす。

616:nobodyさん
05/02/07 12:32:17
社交辞令っつーかさ「ひとまず謝ってみた」って姿勢がな。
あと「ドーユーアンダスタン?」な返答って「アンタ馬鹿?」って言ってんのに等しいぞ。
教えを請う態度じゃないよね。やる気の問題。

丸投げスレじゃなくてさ、改造スレなんだから。
まずおまぃさんのスキルが不明、prog理解度が不明。
何をやってみてどうダメだったのかのかが不明。

ソース丸ごと表示して「○○行目に以下を追加して~」
「□□を△△に書き直して~」とか言って欲しいのか?
それは丸投げっていうんだぞ。

お前宿題って先生に答え聞いてノートに丸写しする事だと思ってなぃ?


617:nobodyさん
05/02/07 12:35:44
どっちにしろここでも丸投げでももう相手にされないから諦めるだろ

618:nobodyさん
05/02/07 18:10:45
どこがどう解らないかを提示できないってのは、
理解しようという意識が薄い顕れだからね。
1つ問題が解決できても、また同じような事で質問してくる確変パターンに繋がるのが
オチだし

619:nobodyさん
05/02/07 18:52:22
omae no taido ga kiniiran

620:nobodyさん
05/02/10 20:59:03
BBQ あらしお断りシステム
URLリンク(bbq.uso800.net)
URLリンク(bbq.uso800.net)
を掲示板に組み込みたいのですが、ソースをそのままコピペしてもできません。
どこを変えればいいか教えて頂けないでしょうか?

621:nobodyさん
05/02/11 01:05:32
>>620
エスパーキボンヌですか?

622:nobodyさん
05/02/11 03:01:13
既存のcgiに下のような環境変数のアクセスをはじく機能をつけたいのですが
どんな風に追加したらいいのでしょう?

'HTTP_VIA',
'HTTP_X_FORWARDED_FOR',
'VIA',
'HTTP_FORWARDED',
'FORWARDED',
'HTTP_X_BLUECOAT_VIA',
'HTTP_PROXY____',
'HTTP_PROXY___________',
'HTTP_PROXY_CONNECTION',
'HTTP_X_HOST',
'HTTP_X_REFERER',
'HTTP_X_SERVER_HOSTNAME',
'PROXY_HOST',
'PROXY_PORT',
'PROXY_REQUEST',
'HTTP_CLIENT_IP',
'HTTP_PRAGMA'

623:nobodyさん
05/02/11 04:27:14
「既存のcgi」って言われても、千差万別。何につけたいんだ?

624:622
05/02/11 11:59:46
bbsのcgiです。
例えばkentのとか。
URLリンク(www.kent-web.com)


625:nobodyさん
05/02/11 14:26:33 5gSqwCgm
はじめまして。自分の手ではどうしても改造しきれなかったのでここで質問させていただきます。
配布元:URLリンク(dream.lib.net)
スクリプト名:Power Search
登録式のサーチエンジンです。
マークサイトというものを複数登録する事ができるのですが、仕様では8個までしか登録できません。
これを22個登録できるように改造したいのですがうまくいきません。
ps_user.cgiの313~324行目あたりの
☆マーク<br>
EOD
for (0 .. 7){
next if $marks[$_][1] eq "";
if ($data =~ /^\d*$_\d*</){
$buffer2.="<input type=\"checkbox\" name=\"sitemark\" value=$_ checked>$marks[$_][0]<br>\n";
}else{
$buffer2.="<input type=\"checkbox\" name=\"sitemark\" value=$_>$marks[$_][0]<br>\n";
}
}
$buffer2.="<br>";
$buffer3 = <<EOD;
を改造し、22個のマークが表示されるようにはなったのですが
チェックしていないチェックボックスにチェックが入ってしまうという不具合が起こりました。
よろしければ問題点を教えてください。


626:nobodyさん
05/02/11 17:27:38
W3C形式の日時を YYYY年 MM月 DD日 hh時 mm分 に変換したいです。

参考
Perlメモ/W3C形式の日時の解析
URLリンク(digit.que.ne.jp)

2005-02-10T14:54:18+09:00 を変換する場合、どう書けばいいのでしょうか?

627:nobodyさん
05/02/11 19:56:25
>>626
マッチや split

628:nobodyさん
05/02/12 05:57:07
>626
マルチすんな、ヴォケ。

スレリンク(php板:331番)

629:nobodyさん
05/02/12 14:58:20
cgiにこういうのを入れて、リストにあるIPを弾いています。
これを逆にリストにあるIPだけ許可できるように改造できないでしょうか?
お願いします。

&hostcheck;
sub hostcheck{
local($host_file,$remote_host,$line);
local(@lines);
$host_file = './host.dat';
$host=$ENV{'REMOTE_HOST'};
open(DB,"$host_file") || die "Cannot Open Log File $host_file: $!";
@lines = <DB>;
close(DB);
foreach $line (@lines) {
next if(length($line)<4);
chop $line;
if( $host=~/$line/ ){print "Status: 204\n\n";exit;}
}
}#hostcheck END

630:nobodyさん
05/02/12 15:56:04
>629
if( $host=~/$line/ ){print "Status: 204\n\n";exit;}
この{ }の中を許可したIP用の対応に書き換える↑

631:nobodyさん
05/02/12 16:22:03
>>629
$ENV{'REMOTE_HOST'};でホスト名を返さないサーバが多数。
ドツボにはまる予感がするぞ。

632:625
05/02/12 18:19:25
丸投げスレへ行きます。ありがとうございました

633:629
05/02/14 19:08:26
&hostcheck;
sub hostcheck{
local($host_file,$remote_host,$line);
local(@lines);
$host_file = './host.dat';
$jump = "./abc.html";
$host=$ENV{'REMOTE_HOST'};
open(DB,"$host_file") || die "Cannot Open Log File $host_file: $!";
@lines = <DB>;
close(DB);
foreach $line (@lines) {
next if(length($line)<4);
chop $line;
if( $host=~/$line/ ){print "Location: $jump\n\n";exit;}}
}#hostcheck END

こういう感じで特定のファイルにアクセスさせればいいのでしょうか・・

634:nobodyさん
05/02/14 23:47:48
■ 自分で改造する時にアドバイスが欲しい場合には
★三 【 スクリプト改造工房 PART 8 】 ★三
スレリンク(php板:79番)(テンプレ)

635:nobodyさん
05/02/15 12:28:07
はじめまして、少し質問させてください。
URLリンク(www.hot-dining.com) 
で配布されています 「256palette」というカラーパレットのCGI(PHP)を、
URLリンク(useyan.pupu.jp)に組み込みたいのですが、
上手く動かず分からなくなったので伺ってみました。

上記「Twin」チャットの動作サンプルがコチラで、
URLリンク(useyan.pupu.jp) 

コチラの「じぶんいろ」という文字にリンクを貼り、となりのテキストボックスで動作するように
256paletteを組み込みたいのですが、twin.cgiのheadタグ内に設置手順①を貼り付け、

446行目を
<form action="$script" method="get" target="_self">

<form name="mae" action="$script" method="get" target="_self">

469・470行目を
<input type="text" name="irom" size=10 value="$cirom" class="text">
<font $fontm><b>じぶんいろ</b></font></font>

<input type="text" name="iroa" size=10 value="$cirom" class="text">
<font $fontm><b>【<a href="javascript:wopen('256palette/palette.php?form=mae&name=iroa')">じぶんいろ</a.>】</b></font></font>

としましたが、スクリプトのエラーとウィンドウの下に出て動きません。
このCGI自体は説明どおりの階層に設置して動作を確認しております。
iromをiroaと変えたのは入室後も同じ名前のテキストボックスもあったからで、
この追加機能を入室後もつかえるようにしたいのですが。

宜しければお教えください、お願いします。M(_)m

636:nobodyさん
05/02/15 17:26:48
256paletteは捨てて他のを探したほうがいいと思う

637:zoooe
05/02/18 07:05:00
スレリンク(php板)l50 から来ました。
【  CGI名  】カラーBBS Ver.2.02
【配布先URL】URLリンク(www.cgi-down.com)
【設置サーバ】lolopop
【 質問内容 】“投稿者:[ あああ ]  投稿日:[ 2005年02月12日(土) 13時18分26秒 ]”
の部分を、例えば“wrote by: あああ 02/17/2005(thu) 13:18:26 ”
と英語に変えたいのですが、何度やっても500エラーになってしまします。
投稿者→wrote by だけでもエラーです。
どなたか解決法をご存知でしたらご指導いただけないでしょうか?

# 曜日を日本語化
@week = ('日','月','火','水','木','金','土');
$wday = $week[$wday];
local($date) = "$year年$mon月$mday日($wday) $hour時$min分$sec秒";
return ($date);
の部分を変えてもダメなのでしょうか?それともjcode.plの方をいじるんですか?

638:zoooe
05/02/18 07:06:08
続き
# 記事の表示
print "<hr size=0 color=$hr_color><BR><CENTER>\n";
for ($i = $end_page;$i<$end_list;$i++) {
local($main,$re) = split(/★/,$DATE[$i]);
chop($re);
local($number,$date,$name,$title,$mail,$hpurl,$com,$tc,$kc) = split(/☆/,$main);
$name =~ s/\0/☆/g;
$title =~ s/\0/☆/g;
$com =~ s/\0/☆/g;
print "<FORM ACTION=\"$cgifile\" METHOD=\"post\">\n";
print "<TABLE WIDTH=$kizi_wid BORDER=0 bgcolor=$main_tccolor cellpadding=0 cellspacing=0><TR><TD>\n";
print "<TABLE WIDTH=100% BORDER=0>\n";
print "<TR><TD BGCOLOR=$title_bgcolor WIDTH=95%>\n";
print "<FONT COLOR=$tc[$tc] SIZE=4><B>$title</B></FONT> [$number]</TD>\n";
print "<TD BGCOLOR=$title_bgcolor WIDTH=5%><INPUT TYPE=\"submit\" VALUE=\"RES\"></TD></TR>\n";
print "<TR><TD WIDTH=100%>投稿者:[ <B>$name</B> ]\n";
if ($mail ne '') { print "<A HREF=\"mailto:$mail\"><IMG SRC=\"$mail_gif\" WIDTH=40 HEIGHT=15 ALT=\"$name\" BORDER=0></A>\n"; }
if ($hpurl ne '') { print "<A HREF=\"$hpurl\"><IMG SRC=\"$home_gif\" WIDTH=40 HEIGHT=15 ALT=\"ホームページ\" BORDER=0></A>\n"; }
print " 投稿日:[ $date ]</TD></TR>\n";
print "<INPUT TYPE=\"hidden\" NAME=\"ac\" VALUE=\"return\">\n";
print "<INPUT TYPE=\"hidden\" NAME=\"res\" VALUE=\"$number\">\n";
print "<INPUT TYPE=\"hidden\" NAME=\"title\" VALUE=\"$title\">\n";
print "<TR><TD><BLOCKQUOTE>\n";
print "<P><FONT COLOR=$kc[$kc]>$com</FONT></P>\n";
print "</BLOCKQUOTE></TD></TR>\n\n";
ここを英語に変えたらエラーになります。よろしくお願い致します。

639:nobodyさん
05/02/18 09:03:36
そこ変えただけでエラーになるのは有り得ない気がする。
perl -c のチェックは通る?
それか、修正してセーブしたときに日本語文字コードがEUCからSJISに変わってるとかありそう。


640:nobodyさん
05/02/19 02:37:51 JY0g4Gmr
すいません、教えて下さい。
メールフォームで特定アドレスの受信拒否を行えるスクリプトを見つけたのですが、スクリプトを編集して禁止アドレスを登録しなければいけない為、随時更新する手間が大きく、
できれば別ファイルでそれの管理ができないものか、と悩んでおります。

元スクリプトは、KentWebさんのPostMail v2.41の改造バージョン、PostMail RDです。
URLリンク(planet.cside5.com)

@errmail = ('nomail@xxx.com','xxx@nomail.com');
 (入力エラーとするメールアドレスです。シングルクォーテーションで囲みながらいくつでも指定することができます)

この部分なのですが、別ファイル(csvやtxt等)で管理する方法ありませんでしょうか?
タブや<>区切りでは、編集しにくいのでできればcsvがいいのですが・・・

641:zoooe
05/02/19 03:43:57
>>639 さん
大変ありがとうございました。
『そこ変えただけでエラーになるのは有り得ない気がする。』
と言うのを参考に、普通にメモ帳で編集してUPしたら、できました。
お礼が遅くなってしまってごめんなさい。

642:nobodyさん
05/02/21 14:41:10 xjZaU2mS
【.  CGI名  .】 shiory diary Ver2.0
【配布先URL】 URLリンク(www.area-s.com)
【. 置き場所 .】 URLリンク(www.area-s.com)
【 依頼期限 】 今週中
【. 依頼内容 】
デフォルトの表示幅が400pxになっているのですが、これを344pxの画像枠に縮めたいです。
tableで400となった箇所を344に変えてみましたが、どうしても日記の記事がはみ出てしまいます。
どうかよろしくお願いします。

643:nobodyさん
05/02/21 15:20:55
>>642
別に記事はみ出なかったけど?
使ってるブラウザが悪いんじゃないの?

644:nobodyさん
05/02/21 15:22:29
CGIの改造じゃなくてHTML(CSS?)の問題ってことで
板違いだな

645:642
05/02/21 17:09:59
何度か再アップロードしたらちゃんと表示されました
なんだったんだ・・・

スレ汚しすみませんでした

646:nobodyさん
05/02/24 10:56:33 QVcBOm5y
はじめまして。宜しくお願いします。
自分で色々といじってたのですが、どうしても解決できないのでここで質問させてください。
(板違いでしたら指摘してください。)

【.  CGI名  .】 SiteHistory ver1.01+3.00
【配布先URL】 URLリンク(www.lira.co.jp)
【改造中データ】 URLリンク(cgi.2chan.net)
【 依頼期限 】 2/25 (急ぎですみません)
【依頼内容】  
項目を幾つか増やしてみました。
なぜか画像($image)を登録すると開催日($eventday)のデータがロストしてしまいます。
「sub edit1」「sub edit2」あたりを間違ってしまっていると思うのですが、原因を特定できません。
何か記述し忘れているのでしょうか?
お願いします。

647:646
05/02/25 14:21:12 tjf4sPQL
>>646です。

あぷろだに載せていたデータがなくなってしまったので、再度アップしました。
URLリンク(up.isp.2ch.net)

宜しくお願いします。

648:nobodyさん
05/02/25 15:41:05 QBQJZtMZ
KENTのe-PAD掲示板に荒らし対策としてなりすまし禁止ののトリップ機能か
携帯情報取得のBBQ機能追加って無理ですか?
それか管理人のみのアイコン表示とか・・・


649:nobodyさん
05/03/01 21:42:51 mUN1SLsJ
SPGM というアルバム用スクリプトなんですが、トップページ
URLリンク(spgm.sourceforge.net)
から各アルバムへ入って

サムネイルをクリックして表示された時に↓
URLリンク(spgm.sourceforge.net)
上のサムネイル一覧は消して、大きい画像だけを表示したいんです。
そんな改造をしてほしいです。

ソースはここにあります。よろしくお願いします。
URLリンク(earth.prohosting.com)

650:nobodyさん
05/03/01 22:04:31
>649
【 スクリプト改造依頼スレ 】(丸投げ) part3
スレリンク(php板)l50

651:nobodyさん
05/03/01 22:07:45
>>650
すみません、移動します。

652:nobodyさん
05/03/08 18:36:41
【.  CGI名  .】 Joyful Note + YY-BOARD + alpha ver.1.0 Beta
【配布先URL】 URLリンク(webmin.bbzone.net)
【依頼内容】
このCGIを動かす鯖がwin2000の自宅鯖なのでsymlink関数が使えません
管理モードで設定を変更しようとするとadmin.cgiの979行目でエラーが起きます

979行目
while (!symlink(".", $lockfile)) {

同様に画像を投稿しようとするとjoiful.cgiの1485行目がエラーを起こします

1485行目
while (!symlink(".", $lockfile)) {


できればmkdir関数でファイルロックをしたいのですが
自分なりにやってみましたがうまくできません
日本語が少し変だと思いますが許してください
よろしくお願いします

653:nobodyさん
05/03/08 22:11:41
>>652
NetBSDに汁!

654:チョップ5/5
05/03/08 22:40:57
>>652
使い方は他で聞いてね~☆

655:nobodyさん
05/03/10 13:47:16
>>652 ロックはinit.cgiで変えられるよ。あとロック用のフォルダを作っておかないといけないかも。

656:nobodyさん
05/03/11 12:34:38
【.  CGI名  .】 Simple Olive Diary2 var2.0
【配布先URL】 URLリンク(www.olive-design.com)
【 依頼期限 】 3/14
【依頼内容】
現状では新しく書き込んだデータが一番上に来ます。
これを逆(先に書き込んだものが上に来る)としたいです。
イメージとしては、イベント開催情報のようなものでしょうか?
イベントが決まったら書き込みしますが、それはあとの方なので
先に書き込んだ今からあるものをトップに表示したいって感じですね。

ログを書き込むときに一番下に書き込むって事は出来るのでしょうか?
その場合、どうしたら良いですか?
もしくは別の方法をとったほうが良いのでしょうか?
お願いします。

657:nobodyさん
05/03/11 13:38:37
>>656
unshift (@log,"$newdata");

push (@log,"$newdata");
にすれば逆になる。
ただ2重投稿のチェックも変更が必要

658:656
05/03/11 19:02:16
>>657
すばやい返答ありがとうございます。

>2重投稿のチェックも変更が必要
と言うのは、以下の部分ですよね。

$top = $log[0];
($top_no,$jpg,$Wid,$Hei,$t_subject,$t_iday,$t_itime,$t_iplace,$top_comment,$top_time)= split(/<>/,$top);
if ($top_comment eq $comment ){ &error('エラー','二重投稿禁止')}
------------
$top = $log[0];ってのがログの一番上(0行目)を見るって事でOKですか?で、コメントが一緒じゃないかを
チェックするんですよね。
では、最終行をチェックってどうしたら?数値じゃ無理ですよね。

どうしたら良いんですか?お願いします。


659:nobodyさん
05/03/12 07:11:46 u7n1go0F
【.  CGI名  .】updir.php[ver1.83]
【 配布先URL 】URLリンク(updir.net) → URLリンク(updir.net)
【 ソース  】URLリンク(tool-ya.ddo.jp)
【 依頼期限 】 3/19まで
【 依頼内容 】
フォームで画像を投稿する際に2つ程項目(出身地/好きな動物)を増やし表示させたいです。

【自分で試した事】
(1)583行目辺りに追加予定項目を追加(<input type=text name=inaka>と<input type=text name=animal>)
(2)2255行目辺りの「if($comi == 0){$html_text = "$comnum${tname2}${tcom} ${ttime}<br>";」に項目追加
→if($comi == 0){$html_text = "$comnum${tname2}${tcom}$inaka<br>$animal ${ttime}<br>";

この状態だとログに組み入れられない為、書き込むたびに全ての変数が変わってしまいます。
管理画面での操作等は必要としませんので、
追加項目に書き込み→一覧画面で表示の実現の助言をどうかお願い致します。

助けてください。切にお願いしますm(_ _)m

660:659
05/03/13 08:36:11
ウワァーン。どなたか助けてください。

661:nobodyさん
05/03/13 09:53:52
改造で金取るために無料で配布してるもんを勝手に改造したらまずいだろーよ

662:659
05/03/13 12:41:43
>>661
その辺の事が一切かかれていなかったので依頼しちゃいましたorz

それと>>659については自力でできちゃますた。
ご迷惑おかけしました。

663:nobodyさん
05/03/17 01:22:38
【.  CGI名  .】 Joyful2ch-Me(MobileEdition)
【配布先URL】 URLリンク(www.supra.cx)
【. 置き場所 .】 URLリンク(www.supra.cx)
【. 依頼内容 】 
当スクリプトはJoyful2chの携帯メール投稿可能版なのですが、
そのメールを処理するpost.cgiが付属していないので、
自分で何とかしたいんですが、ヒントくれませんか?

664:nobodyさん
05/03/17 04:50:35
【.CGI名.】TOWN  ver.1.40
【配布先URL】URLリンク(brassiere.jp)
【依頼期限】3月末日
【ヘルプ内容】CGIゲームの買い物で、クレジットを使用する時に
       普通口座にお金がなければ買えないようにしたい。

command.plの1008行くらい
####購入処理
sub buy_syouhin {
#ver.1.30ここから
if ($kaenai_seigen == 1){#ver.1.40
if ($k_id eq "$in{'ori_ie_id'}" || $house_type eq "$in{'ori_ie_id'}" && $in{'ori_ie_id'} ne ""){&error("自分や配偶者のお店では商品を買うことができません。");}
}
($katta_syouhin,$katta_taikyuu,$katta_nedan) = split(/,&,/,$in{'syo_hinmoku'});
if ($in{'siharaihouhou'} eq "現金"){
if ($katta_nedan > $money){&error("お金が足りません");}
}

ここ迄の中に
if ($in{'siharaihouhou'} eq "クレジット"){
if ($katta_nedan > $bank){&error("普通口座にお金が足りません");}

これを組み込めばいいのだとわかっているのですが、
初心者なので上手くいきません。どうか宜しくお願いします。

665:nobodyさん
05/03/17 07:33:00
>664
マルチ

666:644
05/03/17 07:58:46
いえ、向こうには窓を間違えて書き込んでしまったのです(汗)

667:nobodyさん
05/03/17 22:37:47 lZ4EUQO4
あげんな!!

668:nobodyさん
05/03/21 18:42:25
THE ROOM(URLリンク(dream.lib.net))さんの、Rankling Linkを
を使って、携帯用のランキングサイトを公開しているのですが、
投票(voteform)ページを、携帯端末からのアクセスの時のみ表示して、
その他PC等からのアクセス時には非表示
(そのままランキングページを表示)
になるようにしたいのですが、何か良い方法は無いでしょうか。。。
HOST名取得で表示選別、等が出来ればベストなんですけど。。。
自分なりに色々試してみたのですが、ranklink.cgiの100行目あたり

if ($a1){
&fileunlock;
&changehtml("voteform","id","ssd");
}
}

このあたりの、"voteform"の部分を"index"等に変えると、投票ページ
として読み出すページが変えれるところまでは分かったのですが。。。

お詳しい方、アドバイス下さい。よろしくお願いします。

669:nobodyさん
05/04/10 00:50:50
9tst4さんのX-counter:URLリンク(paxs.hp.infoseek.co.jp)
1回のアクセスで2つカウントするようにしたいんだけどどれを弄ったらいいかわからない
別途設置しているアクセス解析のトップページのカウント数と、設置してるカウンタのカウント数が2倍くらいずれてるから
これて実際のページ表示回数に追いつかせたいんですが・・・

よろしくお願いします

670:nobodyさん
05/04/10 03:33:21
>>669
カウンタのログファイルを書き換えればいいといってみるテスツ

671:nobodyさん
05/04/16 02:03:53
>669
135行目から146行目までがカウントアップ処理だと思われるので、ここで2ずつ増やすように書き換えればいいと思う。
俺もデータファイルを直接編集するのを薦めるけどな。

672:nobodyさん
05/04/16 02:24:09
>668
そこか、あるいはサブルーチンchangehtml(rl_prf.cgi L.358-)だろうね。
携帯端末を判別するルーチンをそこに組み込めばいい。
適当にやるならそのCGI内にもあるようにHTTP_USER_AGENTで振り分け。
厳密にやりたいなら携帯電話各社の使用するホスト名やIPアドレス範囲を調べる。

ところで、標準でPCからの投票を拒否する機能がついているようだけど、それでは駄目なの?

673:nobodyさん
05/04/16 03:26:34
誘導されてきました。

URLリンク(www.kent-web.com)
のフォームの確認画面で
パスワードを表示されないようにしたい(現在は表示される)んですけど、

改造できませんか?

フォーム画面では表示されないのですが、確認画面では表示されてしまいます。
それを隠す方法はありますでしょうか?

よろしくお願いします。

674:nobodyさん
05/04/17 12:45:44
>673
もし、パスワード入力部のhtmlが
<input type=password name="text2">
なら、

252行目
if ($key eq "need" || $key eq "cc" || $key eq "match" || $key eq "subject" || ($in{'match'} && $key eq $match2)) {

if ($key eq "need" || $key eq "cc" || $key eq "match" || $key eq "subject" || $key eq "text2" || ($in{'match'} && $key eq $match2)) {
とでもすればいいのかな。
HTMLソースを見ると分かっちゃうけど、画面に表示はされない…という状態になる、はず。

675:nobodyさん
05/04/17 23:16:56 YWLnSC6R
>>674
どうも、ありがとうございます。
上のようにしたところ、プレビュー画面でも消えませんでした。

プレビュー画面を外させてもらいました。

しかしながら、エラー画面(入力もれ)が出るときに、
パスワードを入力して他の項目をエラーにすると、
エラー画面でパスワードがそのまま表示されてしまうみたいです。

もし、表示されない方法がありましたら、よろしくお願いします。

676:nobodyさん
05/04/17 23:25:37 YWLnSC6R
できました!

あなたは天才だ。同じような項目を3ヶ所全部変えてみたらできました。
エラー画面も修正されました。
どうもありがとうございます。


677:nobodyさん
05/04/18 19:49:09 QI6M91tZ
【. CGI .】 URLリンク(ookuwagata2005.hp.infoseek.co.jp)
【配布先URL】 URLリンク(specters.net)
【 依頼内容 】 トリップ機能を付けたいんですが、初心者でわかりません。
        ご教授のほど、宜しくお願い致します。

678:nobodyさん
05/04/19 00:55:09
【.CGI名.】簡易データベースII
【配布先URL】URLリンク(www.rescue.ne.jp)
【依頼期限】4月末日
【ヘルプ内容】
 1. 検索結果の件数を表示したい。
 2. 検索結果を「名前」でソートをかけたい。

よろしくお願いいたします。




679:nobodyさん
05/04/21 16:42:21 Xy2T8jBX
フォームメーラー
URLリンク(www.ahref.org)

で、>>674 のようにパスワードを確認画面で隠す方法はありますでしょうか?

ソースは>>674 と全然違っていて苦戦しています。
よろしくお願いします。


680:nobodyさん
05/04/29 18:38:44
【.  CGI名  .】もっと書き込み隊 Ver0.94
【配布先URL】URLリンク(tackysroom.com)        
【. 置き場所 .】URLリンク(aoblue.s101.xrea.com)
【 依頼期限 】4月30日まででお願いします     
【. 依頼内容 】2ch系の掲示板でよくある、スレッドリストを作って、
そこから各記事へ飛ぶようにしたいのですが、改造に失敗するので、
ヒントをお教えしていただけないでしょうか?

681: ◆GrsqjXpGxE
05/04/30 16:52:26
【CGI名】智猫フォームメールCGI
【配布元】URLリンク(tomo-net.org)
【CGIソース】URLリンク(majix.dip.jp) (txtファイルに自動変換されます)

[依頼内容]
・添付ファイル機能をお願いします(添付ファイルサイズ上限を指定できる事・添付ファイル個数は最大5個まで)

【改造したら・・・】
こちらの、アップローダにアップお願いします(自動でテキストファイルに変換されます)
URLリンク(majix.dip.jp)


よろしくです、お願いします。

682:nobodyさん
05/04/30 18:24:28
>>681
マルチ乙。

683:nobodyさん
05/04/30 23:23:20
こんにちは。
【CGI名】KENT WEBさんのYY-BOARD
【配布元】URLリンク(www.kent-web.com)
【依頼内容】禁止ワード(投稿者名、投稿内容の部分)の設定と、
管理モードから管理人が記事の修正を可能にしたいのです。

どうかよろしくお願いします。

684:nobodyさん
05/05/01 03:54:49
>>683
さようなら

685:nobodyさん
05/05/01 15:42:15
>>683
ここは自分で改造するためのヒントをもらうスレだよ。
丸投げは丸投げスレへどうぞ。

>>684
簡潔すぎて>>683もどうしていいのかわからなくなっちゃうYO

686:nobodyさん
05/05/07 08:09:26
【.  CGI名  .】Banner Search 1.12
【配布先URL】URLリンク(www.webpower.jp)
【ヘルプ内容】
同一URLの、複数カテゴリへの登録を可能にしたい。
デフォでは、同一URLの複数個登録は出来ない仕様にしてある、と明記してあります。
登録時のカテゴリ選択をプルダウンからチェックボックスに変更してみましたが
navi.cgi478行目あたりから
登録サイトのチェック項目があります
foreach (@Record) {
if (!$i) { $i++; next; }
%Field = stdio'ReadData(split "\t");
if ($Field{'Code'} == $Form{'Code'} && $Form{'mode'} ne 'regist') {
$find = 1;
last;
} elsif ($Field{'Url'} eq $Form{'Url'} && $Form{'mode'} eq 'regist') {
$find = 1;
last;
}
$i ++;
%Field = ();
}

if ($find && $Form{'mode'} eq 'regist') {
Errors('フォーム入力ミス','入力されたURLは既に登録されています。');
} elsif (!$find && $Form{'mode'} ne 'regist') {
Errors('フォーム入力ミス','入力されたURLは登録されていません。');

ここが肝だと思うんですが、どう書き換えたら上手くいくのか
自信がありません。御伝授お願いします。

687:nobodyさん
05/05/09 23:07:48
>>686
元のスクリプトを全く見ずに答えるので間違っていたらすまん。

if ($find && $Form{'mode'} eq 'regist') {
Errors('フォーム入力ミス','入力されたURLは既に登録されています。');
} elsif (!$find && $Form{'mode'} ne 'regist') {
Errors('フォーム入力ミス','入力されたURLは登録されていません。');
}

この部分、上のif文で重複チェックしてみるみたいだから、ここを
if (!$find && $Form{'mode'} ne 'regist') {
Errors('フォーム入力ミス','入力されたURLは登録されていません。');
}
に書き換えれば同一URLがいくらでも登録できるようになるはず。

ただし同一カテゴリにも同じURLを何度でも登録できるようになってしまうと思われるので、
しっかり処理するならば同一カテゴリ内で重複がないかチェックしなきゃだめ。

ソースをしっかり見る時間がないのでこれ以上は自分で頑張って下さいな。

688:nobodyさん
05/05/11 03:24:51
>687さん
if以下の削除で試していたところです。
重複可、不可とするのよりも、
カテゴリ内の重複不可、とする方が
逆に難しいかもしれませんね。もう少しいじってみます。
ありがとうございました。


689:nobodyさん
05/05/18 09:43:52
一度丸投げで依頼したものですが
自分なりにやってみたのでこっちに来ました。

【CGI名】HoneyBoard
配布先など依頼テンプレは↓アプロダに一緒に書いてあります。
URLリンク(s3p.net)
【依頼内容】
 ふきだし型BBS+アイコン+画像投稿・・のできるBBS。
 イメージとしてはHoneyBoardに
 同KENT-WEB内のJoyfulNoteの画像アップ機能を
 プラスしたような感じです。


690:まるなげどんの人
05/05/19 11:44:31 wVMVs5Vc
>>689
perlも全くわからず、HTML知識と勘でやっただけですがこんな感じ?
URLリンク(s3p.net)
表示の設定とか変えたらなんかおかしくなるけど取り敢えず動くくらいです。
参考になれば幸いです。

691:689
05/05/20 01:12:48
>>690
両方にお返事くださってどうもありがとうございます!
さっそく今調整中です。

ただ、記事の横幅がとても大きいので
アイコン込みで600か500pxほどにしたいのですが・・
print $OUT "<!-- 記事外テーブル --><TABLE cellSpacing=0 cellPadding=0 width=\"100%\" border=0><TR>\n";#改造2
・・↑の100%を500に変えても、
border=1にして確認してもイマイチ500ぽくないんです。
もしやいじるのはここではないのでしょうか?



692:まるなげどんの人
05/05/20 16:26:21 VbM05pau
>>691 
joyful.cgiを「700」で検索したらテーブル幅の設定のところになると思いますので
をこを変更してみてください。

693:nobodyさん
05/05/20 17:47:42 rt8UrqYq
URLリンク(21)<)?-105-89-33.adachi.?e.jpうへへ。

694:689
05/05/21 10:48:45
>>692
向こうで質問続けさせてもらいました。
よろしくお願いします。


695:nobodyさん
05/05/21 13:30:56 Qzr9ON+U
質問です。web patioのアクセス制限機能を拡張して自動登録機能をつけたいのです。
仮登録をおこなわせて、メールに送られた承認用URLをクリックすると本登録ができるようになるという一般的な承認方法にしたいのですが
そんなもの作ったことがないのでわかりません。仮登録から本登録への処理が入ってるCGIはありませんでしょうか?
処理をぱくる・・・というか参考にしたいのです。ホントはKENTさんのMagMag Board v2の処理をまるまる参考にしようと思ったのですが
書庫付録のようで、買おうと思っても在庫があるところが見つからない上に時間がないのでこちらに書かせてもらいました。
よろしくお願いします。

696:nobodyさん
05/05/21 17:15:51
三国志NETにその機能あったな。

697:nobodyさん
05/05/30 20:27:12 AlkdVV9S
うむ

698:nobodyさん
05/05/31 02:20:00 VGaCh60h
こんなCGI探してますスレから来ました。
----
【種別】一言掲示板 ゲストブック
【条件】URLリンク(hp.bird.to)
こういう一行タイプで、住所、HP、メールが表示できて、
ソースを見ると、管理人以外にも書き込み者のIPが見られるもの。

【言語】perl , php
【備考】サイトの信頼性を高めたいので、足跡を残してくれる人のIPが見れた方がいいかなと思いました。
----

>IPアドレスを保存すればいんだよ。
>そんでもって読み込む時にソースに加えりゃいいんだよ。

と言われたのですが、何のことかよくわかりませんでした。

メモ帳でcgi開いてコピペするくらいならできるかもしれません。
アドバイスをお願いします。m(_ _)m

699:nobodyさん
05/05/31 03:16:23
ここはスキル0の来るスレではありません
丸投げスレに行ってください

700:nobodyさん
05/06/05 21:27:05 4YiV/lXp
画像掲示板- Joyful Note - php resize -を使ってます。
↓のgdバージョンです。
URLリンク(script.s16.xrea.com)

投稿の際の必須項目を変更したいのです。
とりあえず、自力で名前とコメントの必須をなくすことはできました。
添付ファイルを必須にしたいのですが、どこにどのような記述が必要でしょうか?
(つまり添付ファイルがないと、エラー報告がでるようにする)

よろしくお願いいたします<(_ _)>

701:nobodyさん
05/06/05 22:39:27
>>700
それが出来たなら
消した部分の下あたりに
if ($upfile == "") { error("添付ファイルが有りません"); }

でいいと思う
まぁ実験してないから何とも言えんが(´・ω・`)

702:700
05/06/06 00:15:13
>>701
できました~!!!
マジ完璧っす。ありがとうございます<(_ _)>

今までCGI・PHPはHTML表示部分はそれなりにイジってたのですが、
スクリプト部分はサパーリでした。

もっともっと自分好みなのが作れそうな感じがしてきますた。
PHPはそんなに難しくないような気もしますので、ちょっくら勉強いたします。

703:700
05/06/06 02:47:26 NHKXaD0z
そんなに難しくないような気がしますと言ったはいいが、
やはり難しい・・・orz

も一つやりたいことがあるので、再度ご教授お願いしまする<(_ _)>
先ほどと同じ画像掲示板なのですが、画像ファイル名が、
1、2、3・・・10・・・といった連番なのですが、これを桁数を揃えて、
000123.jpgのようにしたいのです。>>172さんが行なったようなやつです。
(試行錯誤しても分からなかったorz・・・1からちゃんと学ばないとダメですよね)

よろしくおねがいいたします。

704:700
05/06/07 09:10:10 1/UWqdkb
またちょいと問題が・・・
>>701さんに教えて頂いた方法で、添付ファイルを必須にはできたのですが、
返信時まで必須になってしまいました。
返信時には必須にしたくないので、>>703の桁数の件も含めて
またご教授頂ければと思います。
(丸投げいったほうがいいのかなぁ・・・)

705:nobodyさん
05/06/08 06:39:06
NICOLE氏のWWW Forum 3.7c に age sage 機能を追加したくて
色々参考になりそうなものを探しています。

で、前スレを 2ch ブラウザで辿ろうと思ったらなんか見つからない……
どなたか過去のスレッドの URL を保存されてる方いませんか?

706:nobodyさん
05/06/08 14:55:12
>>705

>>1

707:nobodyさん
05/06/14 15:15:26 RSJ0zxh1
2chの指定したスレに定期的に自動に書き込みしてくれるスクリプトって作れますか?




708:nobodyさん
05/06/14 15:20:20
>>707
cronで書き込みスクリプトを動かせばできる

709:705
05/06/16 02:19:01
>706
いや >1 に書いてある URL が間違ってるのか
過去ログたどれないんですよ

なのでさらに昔の URL 知ってる人いないかなと

710:nobodyさん
05/07/01 03:26:56
>>700
桁数を6桁にして、足りない分は0で補う場合
$ファイル名 = str_pad($ファイル名, 0, 6, STR_PAD_LEFT);


711:nobodyさん
05/07/01 14:31:49
丸投げスレより舞い戻って?着ました
内容は以下の通り
【.  CGI名  .】 Web Cart System PRO ver.5
【 依頼期限 】 毎日見てます
【配布先URL】 URLリンク(webcartsystem.com)
【ヘルプ内容】 登録した商品が真っ先に上に来るように設置したい(新着商品を上に出したいだけです)のですが
        商品登録Noを変えても動かず、結局、CGIが吐き出すdb.txtを
        全部入れ替えてやっと反映される状態です


CGIのTXTは全部ココに収納されています
URLリンク(ww4.enjoy.ne.jp)


で、write.txtに格納されている
open WRITE,"<db/$open_file" || die "Could not open the file";
@templine = <WRITE>;
foreach (@templine) {
if (/(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) {
$page_num = $1;
}
}
close WRITE;


以上の項目ですが、ここにdb.txtへ吐き出す構文が居るのですが
コイツをソートする構文を入れてみたのですが(write.txt(149): @templine = sort @templine;)
上手く作動せず、途中で+1と記述されている部分を-1にしても吐き出しされません

ここまでは解ったのですが…的外れかも、しれません。
アドバイスをお願いします

712:nobodyさん
05/07/03 18:16:25
>if (/(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) {
キモス

713:nobodyさん
05/07/04 01:01:53
この構文が、商品名、品番、種類、値段、等々に分けてあるんです
db.txtにはそういう風な記述で分類されています
多分、ここはいじらなくてもいいと思います
ただ、確かにキモチ悪いのですが……

714:nobodyさん
05/07/04 02:50:34
>>712
ケツの穴並びすぎ

715:nobodyさん
05/07/04 23:53:33
文句だけ言う奴は大抵技術も無いので(゚ε゚)キニシナイ!!

716:nobodyさん
05/07/06 00:25:36
>715さん
そうだったんですか…
ぱっと見、確かに気持ち悪いと思ってたのですが、私も(^^;

ちなみにその構文は実際にカート搭載されると
4:=:D2:=:詳解HTML&JavaScript辞典:=:2400:=:秀和システム:=:8.jpg:=::=::=:30:=:HTML3.2とNetscapeNavigator4.0、lnternetExplorer4.0の最新・拡張タグ、オプションを解説。詳細な解説と豊富なイメージ:=:D1:=:
となります(公式サイト情報抜粋より)
分類:=:商品No:=:以下解説・価格等々です
この商品NoをエクセルでソートしてからUPすると逆になります
Noを少なくして(たとえば5000代だったら4999)UPしても反映されません
私も現在試行錯誤しているのですが、500エラーばかり喰らってます

他に見られている方も今後ともよろしくお願い致しますm(_ _)m



717:nobodyさん
05/07/06 23:32:23
修正前
if (/(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*):=:(.*)/) {

修正後
if (/モル━━(゚∀(  *  )━━!!!モル━━(゚∀(  *  )━━!!!/) {

718:nobodyさん
05/07/08 00:55:54
正規表現つかわんでもええやん

719:807@丸投げスレ
05/07/19 00:32:55 VFC/oNKm
一度はあきらめて丸投げスレに依頼出したが、回答を待ちつつ自分でも改造?しています。
しかし、サッパリわかりません(;;)
スクリプトはPrism-WebのDesignBBS1.71(URLリンク(www.pris.jp)

この掲示板は、投稿者による記事削除がパスワード認証で可能。
これを以下のように変更したい。
1.投稿者による削除ではなく、投稿者による編集に変更したい。
2.掲示板末尾で記事No&パスワード記入を行う形(YYボードと同じ)から、
  記事横のリンクから編集を行えるようにしたい。

2.に関しては、フォームボタンを使えば簡単だろうが、
デザインの関係があるのでリンクでやりたい。
そこで掲示板表示テンプレに、フォームなら
~<input type=hidden name=mode value="userdel">~とするところを、
<a href="bbs.cgi?mode=userdel&$no">~と書いた。
しかしこのリンクをクリックしても、サブルーチンuserdelへ飛ばない。
アドレスバーに表示されるURLが「~bbs.cgi?mode=userdel&記事no」になるだけ。
どうしたら飛ぶようになるだろうか。
#userdelはユーザーによる削除のサブルーチンを指す。
#これを投稿者編集に変えてやるつもりだから。
#$noは記事noが入る。

userdelサブルーチンは次へ。


720:807@丸投げスレ
05/07/19 00:34:13
#選んだ記事を一旦削除して編集投稿フォーム表示、※
#投稿するときにパスワードがあえばログをそのデータで書き換えて終了。
#パスワードが合わなければ、一旦削除した記事をログに追加して終了。
#・・・という処理を考えた。この処理が問題であれば突っ込んでください。
#苦し紛れに考えた処理なのでサーバー負荷とかわかりません。
#なお、今作っているルーチンは※だけ、しかも途中。
#========================
# 記事削除
#========================
sub userdel {
 # ロック処理
 if ($lockkey == 1) { &lock1; }
 elsif ($lockkey == 2) { &lock2; }
 open(IN,"$logfile") || &error("$logfileが開けません。");
 @lines = <IN>;
 close(IN);
 $top = shift(@lines);

<つづく>

721:807@丸投げスレ
05/07/19 00:34:55
############################
ここから
###########################
 $flag=0;
 foreach (@lines) {
  ($no,$reno,$date,$name,$mail,$subject,$icon,$icon2,$message,$color,$url,$host,$pw) = split(/<>/, $_);
  if ($flag == 0 && $eno eq "$no") {
   $PW = $pw;
   if ($reno eq "") { $flag=2; }
   else { $flag=1; }
  }
  elsif ($flag == 2 && $FORM{'no'} eq "$reno") { next; }
  else { push(@new,$_); }
 }
 if ($FORM{'pwd'} eq '') { &error("パスワードが入力されていません。","lock");}
 if ($flag == 0) { &error("該当記事が見当たりません。","lock"); }
 if ($PW eq '') { &error("パスワードが設定されていません。","lock"); }
#####################
ここまで、どうすればよいかわからないのでデフォルトのまま。
#####################
<つづく>

722:807@丸投げスレ
05/07/19 00:35:41
  # 更新
  unshift(@new,$top);
  open(OUT,">$logfile") || &error("$logfileが開けません。","lock");
  print OUT @new;
  close(OUT);
  # ロック解除
  if (-e $lockfile) { unlink($lockfile); }
#投稿フォーム表示
 &header;
 $get = $_[0];
 # クッキー情報を取得
 &get_cookie;
 # 書きこみ部デザインシートを読みこむ
 &read_file("$input_sheet2");
 &read_file("$foot_sheet");
 print "</body></html>\n";
 exit;
}
以上

723:711
05/07/19 01:20:43
どうやら、色々調べたのですが。write.cgiから直接DBに対して
ソートを仕掛けるのが無理そうなので
write.cgiに
open DATA,"<db/$open_file" || die "Could not open the file";
@templine = <DATA>;
@templine = sort @templine;
close DATA;
$line=@templine;

という構文を入れたら、whiteは理想通り更新順に並び替えできましたが
問題のディスプレイ部分に反映されません…
以下、本体のCGIより抜粋

if ($disp eq "on") {

&top("$page_title");
open DB, "<db/db$page_id.txt" || die "Could not open the file";
{
($page,$goods_id,$name,$price,$com,$picture,$picture2,$picture3,$limit,$comment) = split (/:=:/, $_);
多分、ここも
@templine = <DB>;
foreach (@templine)
あたりに、同じ構文を入れたら…80エラーが出ます
何か、解決策はありませんでしょうか…writeは完了しました
お騒がせしてすみませんでした。

724:nobodyさん
05/07/19 09:30:42
【.  CGI名  .】Power Search 1.11
【配布先URL】URLリンク(dream.lib.net)
【ヘルプ内容】
「鎧」をキーワード検索した時、なぜか「額」を含むデータがヒットしてしまいます。
文字コードの処理に何かあるのかな? と、素人考えで思ったりするのですが、
こちらでヒントを頂ければ幸いです。

725:807@丸投げスレ
05/07/19 11:21:19
度々すいません。
もう一回粘って書き直しましたが、思い切りエラってます。
500エラーではなく、スクリプトで設定しているエラーが。
改造したファイルを添付の上、状況を「◆CGI製作・改造依頼 Joyful Note◆ (避難用) 」
へ記述しました。
URLリンク(s3p.net)
DesightBBSのスレです。

なんか・・・どこかわかりかけたようなわけがわからないような・・・。

726:nobodyさん
05/07/19 21:33:38
「改造工房スレ住人の皆様へお願いします」

 スクリプトを改造してください。とお願いしません。

 その代わり、電子私書箱の仕組み、チョッとだけ
 教えてください。

 特に、自分宛のメッセから、相手の私書箱へ送信する
 仕組みがわかりません。
 「お相手に送信」ボタンを押すと、相手の私書箱に
 受信先の名前とか、メッセがわかる。

 ?ID=12345;PW=POIUEWS のような感じでURI?が作成
 されて、「お相手に送信」ボタンに埋め込んである。
 この?以降の設定とか、ググってもわかりません。

 スーパーエロい人、教えてください。
 よろしくお願いします。


727:nobodyさん
05/07/23 11:09:37
>>726
意味がわからん上にスレ違いもいいとこなんだが。

> ?ID=12345;PW=POIUEWS

これはないだろう。
?ID=12345&PW=POIUEWS
ならわかるが。
変数をGETで受け取ってるだけだ。
それにしても、パスワードをGETで受け取るのはどうかと思うが。


728:711
05/07/27 14:25:21
【配布先URL】 URLリンク(webcartsystem.com) (再配布・代行設置・有料のカスタマイズ・コピーライト非表示・レンタル目的等々何でも可。
CGIのTXTは全部ココに収納されています
URLリンク(ww4.enjoy.ne.jp)
以前ののヘルプ内容は自己解決しました。

……で、まだ今回。同じCGIで依頼があるのですが。cart_pro.cgiのカートの内容を表示する部分

#
# 商品ディスプレイ
#
sub disptop {

以下、稼動する部分を表示させるフォームボタンをCGIの中に「カートの中身」と作りたいのですが、上手く稼動しません。
このCGI自体に致命的な欠陥があり、サンプルでは動くSET.htmlが実稼動させると商品数の為か稼動しないのです
なので、今はダミーファイルを作って、そちらでカテゴリが動くようにしているのですが…

ダミーファイルにそのサンプルで品物を入れたら出てくるHTMLタグは
<FORM METHOD=POST ACTION="cart_pro.cgi">
<INPUT TYPE="SUBMIT"NAME="cart"VALUE="お支払い">
<INPUT TYPE="SUBMIT"NAME="cart"VALUE="内容確認">
<INPUT TYPE="SUBMIT"NAME="cart"VALUE="カートを空にする">
<INPUT TYPE="hidden"NAME="id" VALUE="利用者のIPアドレス">
<INPUT TYPE="hidden"NAME="page_id" VALUE="1">
</FORM>
ですが、これをダミーファイルに入れてもやはり稼動しません。IPアドレスの取得とその反映がダミーHTMLにはされないので…
なので、なんとかして、CGIの商品表示の中に内容確認ボタンを作りたいのですが
解る方ご教授お願いします

729:nobodyさん
05/07/27 21:12:37
>>727
>> ?ID=12345;PW=POIUEWS
>
>これはないだろう。
>?ID=12345&PW=POIUEWS
>ならわかるが。

冗談で言ってるのか?

URLリンク(www.w3.org)

でも嫁

730:nobodyさん
05/08/17 12:18:42
最近CGIやってないから忘れたけど、
「;」でも確かいけたような記憶が・・・

731:nobodyさん
05/08/20 22:32:26
URLリンク(www.w-frontier.com)を使っているのですが、
記事作成フォームを記事削除フォームの上に移動できないでしょうか。
これを URLリンク(hoge.myfws.com)

こう   URLリンク(hoge.myfws.com)

URLリンク(hoge.myfws.com)
一応何もいじってない状態のものです。

732:nobodyさん
05/08/21 11:38:55
>>731
該当する
print <<EOF;
~省略~
EOF
を移動させるだけじゃない?

733:nobodyさん
05/08/22 15:14:06
>732
そうしたのにできなかった……
と思ったらprintのとこだけ移してなかったorz
ありがとう。

734:nobodyさん
05/08/26 09:43:20 3vgShx+F
【.  CGI名  .】フォームメール
【配布先URL】URLリンク(www.kent-web.com)
【ヘルプ内容】
入力チェック時、例えば「あほ」と入っていると送信できないようにしたいのですが、うまくいきません。
「あほ」のみ送信できず、「あほやろう」なら送信可能という風にしたいのですが…
231行目あたりに
if ($in{'ngword'} = "あほ") {
&error("これは送信できません");
}
としたり、=の代わりにeq、正規表現なども試しましたが思うように動きません。
(「あほやろう」でも送信できないエラーになったりする)
indexなどを使わなければいけないのでしょうか?

また、コマンドタグで制御しているためか、
送信確認画面で送信したいメッセージの他にも、上のngwordというのが一緒に表示されてしまいます。
496行目からの入力チェックをいじればいいような気がしますが、
ngwordだけ表示させない方法がわかりませんでした。
よろしくお願いします。

735:nobodyさん
05/08/27 01:36:51
>>734
前後の処理がわからないのでなんともだけど、文字の比較ならeq
$in{'ngword'} eq 'あほ';
$in{'ngword'}に改行とか余計な文字が入ってないか確認してみて。

736:nobodyさん
05/08/31 09:52:33
URLリンク(oranger.happy.nu)
NovelListMaker(PHP版)

こちらのものを携帯から書き込めるようにしてもらえませんか?
クッキーを使ってるので携帯から管理画面へ入れません。

737:736
05/08/31 09:56:57
そもそもクッキー関係ないのでしょうか。。

738:nobodyさん
05/08/31 10:49:33
クッキー切って試そうとしないのか・・

739:736
05/08/31 11:39:00 kRQLgiYG
あ・・いやそういう意味ではなく」て・・・クッキーだけの問題なのでしょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch