CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。
▼スレッド
│
└◇1078:日記で、書込み項目の追加 [さくら] 04/09 12:20
├◇1079:Re:日記で、書込み項目の追加 [moon] 04/09
└◇1080:改造できました〜 [さくら] 04/09
└◇1081:ついでにもうひとつお願いしたいんですが・・ [さくら] 04/09
└◇1082:Re:ついでにもうひとつお願いしたいんですが・・ [moon] 04/10
└◇1084:見事です♪ [さくら] 04/10 <
お世話さまですスレッド一覧
以前会員ページで『日記』を使用させて頂きました。
また、新たに追加で使用しようと考えて、最新バージョンをDLさせて頂きました。
nik5.01では出来たのですが、最新バージョンではなかなか出来なくって困っています。
そこで、出来ましたら教えてください。
1、書込み項目を増やす
参加者が自由に投稿できるようにしたいと考えています。
ハンドルネームを記載する欄(項目)があればと思うのですが・・・
スクリプトを見たのですが、まったく変わっていて私には難しいみたいです。
改造は可能でしょうか?
また、2,3の書込み項目が追加であれば、自由に変形が出来ますので助かりますが・・・
ご検討宜しくお願いいたします。
さくら
すべてnik.cgiの編集です。スレッド一覧
テンプレートファイルを使用することや、携帯からの閲覧は考慮に入れてません。
1、名前書き込み欄を作る。
3973行目辺り
$tmp .= qq| <tr>\n|;
$tmp .= qq| <td>\n|;
$tmp .= qq|<tt>タイトル</tt> \n|;
$tmp .= qq|<input type="text" size="60" name="tit" value="$in{'tit'}">\n|;
$tmp .= qq| </td>\n|;
$tmp .= qq| </tr>\n|;
辺りに書き込み欄を追加。
例)
$tmp .= qq| <tr>\n|;
$tmp .= qq| <td>\n|;
$tmp .= qq|<tt>名前</tt> \n|;
$tmp .= qq|<input type="text" size="60" name="hn" value="$in{hn}">\n|;
$tmp .= qq| </td>\n|;
$tmp .= qq| </tr>\n|;
2、プレビュー項目のところのHIDDENに名前の追加をする。
1342行目辺りとか、1394行目辺りとかの$in{'tit'}が書かれてあるところに追加する。
print qq|<input type="hidden" name="hn" value="$in{'hn'}">\n|;
3、修正用の場所に追加。
3503行目辺り
$in{'tit'} = $_[2];
$in{'tit'} =~ s/\"/"/g;
に追加する
$in{'tit'} = $_[2];
$in{'tit'} =~ s/\"/"/g;
$in{'hn'} = $_[17];
$in{'hn'} =~ s/\"/"/g;
4、その他修正
5184行目辺り
$in{'tit'} =~ s/"/\"/g;
に追加
$in{'tit'} =~ s/"/\"/g;
$in{'hn'} =~ s/"/\"/g;
5、記録データ追加
5217行目くらい
$kousin_data .= $in{'will'} ."\t";
$kousin_data .= $in{'willn'} ."\t";
$kousin_data .= $File_Sam ."\t";
$kousin_data .= "\n";
を
$kousin_data .= $in{'will'} ."\t";
$kousin_data .= $in{'willn'} ."\t";
$kousin_data .= $File_Sam ."\t";
$kousin_data .= $in{'hn'} ."\t";
$kousin_data .= "\n";
とする。
1325行目辺り
push(@line,"$in{'sort'}\t$in{'date'}\t$tmp_tit\t$comm\t"
."$in{'time'}\t$in{'kibun'}\t$in{'tenki'}\t$main_img\t"
."$main_W\t$main_H\t$in{'gaz'}\t"
."$File_Set\t"
."$theme_kakiko\t$in{'rank'}\t$in{'will'}\t$in{'willn'}\t$File_Sam\t\n");
を
push(@line,"$in{'sort'}\t$in{'date'}\t$tmp_tit\t$comm\t"
."$in{'time'}\t$in{'kibun'}\t$in{'tenki'}\t$main_img\t"
."$main_W\t$main_H\t$in{'gaz'}\t"
."$File_Set\t"
."$theme_kakiko\t$in{'rank'}\t$in{'will'}\t$in{'willn'}\t$File_Sam\t$in{'hn'}\t\n");
とする
6、表示する
1872行目辺り
$tmp .= qq| <th>|;
if ($kiji_top_c and $kiji_top_s) {
$kiji_top_s--;
$tmp .= qq|<font color="$kiji_top_c">$_[2]</font>|;
} else {
$tmp .= qq|<font color="$ti_c">$_[2]</font>|;
}
$tmp .= qq|</th>\n|;
この辺の好きな場所に表示するヤツをいれる
$tmp .= qq| <th>|;
if ($kiji_top_c and $kiji_top_s) {
$kiji_top_s--;
$tmp .= qq|<font color="$kiji_top_c">$_[2]</font>|;
} else {
$tmp .= qq|<font color="$ti_c">$_[2]</font>|;
}
$tmp .= qq|<br>名前:$_[17]\n|;
$tmp .= qq|</th>\n|;
以上でOK
有難うございます。m(_ _)m あるいはv(".")v♪スレッド一覧
無事、改造が出来ました。
http://webforest.net/blog/nik.cgi
前回といい、今回といい本当にお返事有難うございます。
これでスタートに間にあいました
感謝感謝
です
名前欄で、cookieを使用して再び名前を入力する手間を省くにはどの様にしたらよいのでしょうか?スレッド一覧
宜しくお願い申し上げます
m(_ _)m
> 名前欄で、cookieを使用して再び名前を入力する手間を省くにはどの様にしたらよいのでしょうか?スレッド一覧
rib.plに525行目辺り(と言うかどこでもいいけど)に以下追加
# レス名前用クッキーを読み込む
sub gmncook{
@COOKIE=split(/;/, $ENV{'HTTP_COOKIE'});
foreach (@COOKIE){
($name,$value) = split(/=/);
$name=~ s/ //g;
if($name eq "nikmn"){
($hn) = split(/\,/, $value);
if ($hn) {
$hn =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
}
last;
}
}
}
# レス名前用クッキーの発行
sub smncook {
my $ck = 31; # クッキー保存日数
$hn = shift;
($secg,$ming,$hourg,$mdayg,$mong,
$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + $res_ck*24*60*60);
$yearg += 1900;
if ($secg < 10) { $secg = "0$secg"; }
if ($ming < 10) { $ming = "0$ming"; }
if ($hourg < 10) { $hourg = "0$hourg"; }
if ($mdayg < 10) { $mdayg = "0$mdayg"; }
$month = ('Jan','Feb','Mar','Apr','May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec')[$mong];
$youbi = ('Sunday','Monday','Tuesday','Wednesday',
'Thursday','Friday','Saturday')[$wdayg];
$date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT";
if ($hn) {
$hn =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;
} else {
$hn = '';
}
print "Set-Cookie: nikmn=$hn; expires=$date_gmt\n";
# 表示する場合不都合があるから戻しておく
if ($hn) {
$hn =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
}
}
nik.cgi 454行目辺りに以下追加
if ($in{'hn'}) {
&smncook($in{'hn'});
} else {
&gmncook;
}
3985行目くらいに追加した
$tmp .= qq| <tr>\n|;
$tmp .= qq| <td>\n|;
$tmp .= qq|<tt>名前</tt> \n|;
$tmp .= qq|<input type="text" size="60" name="hn" value="$in{'hn'}">\n|;
$tmp .= qq| </td>\n|;
$tmp .= qq| </tr>\n|;
の上に以下を追加
$in{'hn'} = $hn unless $in{'hn'};
出来ました〜スレッド一覧
本当に有難うございます。
自分が納得したように改造できるのがとてもうれしいし、ありがたいです。
平に伏して崇め奉り候
へっへ