タグが使用できないCGIに画像タグを記述したい。

[新着] Webテンプレートを仮オープンしました



0   名前: みき : 2003/09/04 15:08
素人ですみません。うまく説明ができないのですが、誰か教えて
ください。
自分のいろいろな写真(画像)に投票をしてもらって、どの写真
が人気があるのか投票してもらうといったHPを製作中なんです
けど・・・。
投票用CGIは見つけてきましけど、この投票フォームではタグ
使えないので写真(画像)を同時に見ることができません。
どのようにしたら、いろんな写真を同時に見て投票してもらう、
といったことができますか?
素人ですみませんが、誰か教えてくれませんか。


1   名前: : 2003/09/04 16:20
投票用CGIのスクリプトを見つけて使用ってことでしょうか?
どんなものかわからないから、なんともいえませんが、投票対象名みたいな感じで並ぶ文字は、カスタマイズできると思いますが、そこにimgタグを使えないのでしょうか?

どうしても無理なら、フレームを使って投票CGIと画像を同時に表示するとか・・・。

2   名前: みき : 2003/09/04 21:40
kさん、お返事ありがとうございまいた。
私の説明不足で、返答に困られたと思います。すみませんでした。

>投票用CGIのスクリプトを見つけて使用ってことでしょうか?
 >はい、そうです。
>どんなものかわからないから、なんともいえませんが、
 >ラジオボタン、順位、名前、投票数・・・とあって、ラジオ
  ボタンにチェックを入れて投票ボタンを押すと票が加算され
  自動的に順位も入れ替わる。といったものなんですが。名前
  (写真名)の右に写真(画像)も貼り付けたいんです。
>imgタグを使えないのでしょうか?
 >どうゆう記述になるのでしょうか?また、imgタグを使うとい
  うのはどこに使うのですか?CGIスクリプトの中の「htmlで
  printする」と書いてあるところなのでしょうか? 
>フレームを使って投票CGIと画像を同時に表示するとか・・・。
 >順位が入れ替わっても、うまく表示できますか?

教えてください。よろしくお願いいたします。

3   名前: : 2003/09/04 23:38
えーと、どんなスクリプトかわからない(というか見てもCGIに関してはわからない)ので、一般論でしかいえないんですが、管理者が事前に投票対象のリストを出しているのであれば、その名前部分は、CGIスクリプトそのままではなく、スクリプトに書き込むにしても、CGI上から作業するにしても、みきさんが書くのですよね?
そこにタグを使って文字の変わりに画像を乗せれないかと思ったのです。

http://www.tagindex.com/html_tag/img/index.html
イメージタグはここに説明があります。

フレームは
http://www.tagindex.com/html_tag/frame/index.html に。

で、画像を別フレームでというのは、並び替えは無理ですが投票対象画像一覧みたいな感じで、(選挙の看板みたいに)並べて、投票CGIのリストと共通の名前とか通し番号とかで見る人がわかるようにできないかと思いました。


一度、どのスクリプトを使うのかここに出して、CGIがわかる人に見てもらって教えてもらうといいと思います。
(それか、もしスクリプト配布先である程度サポートしているならカスタマイズ方法を聞くのが一番いいとは思います)

4   名前: みき : 2003/09/05 00:48
kさん、何度もご丁寧にすみません。

cgiは http://www.net-easy.com/cgi-bin/tohyo/eztohyo.cgi
からもらってきました。

↓サンプル画面
1 テストです * 149 26.3%
私が写真(画像)を載せたいのは「テストです」のところです。

スクリプトは次に送ります(長くなって申し訳ございません)。
どこをどのようにすればよいのやら・・・。
教えてください。

5   名前: みき : 2003/09/05 00:52
分割@

# 最初に呼び出されたときのサブルーチン
sub html{
if(!open(TXT,"$file")){&error(err_fail);}
flock(TXT,2);
@DATA = <TXT>;
flock(TXT,8);
close(TXT);

if($DATA[0] eq ''){
if(!open(TXT,"$file")){&error(err_fail);}
flock(TXT,2);
print TXT "0,$jikan\n";
flock(TXT,8);
close(TXT);
$DATA[0] = "0,$jikan\n";
}

@line1 = split(/\,/,$DATA[0]);
$total = $line1[0];
$last_time = $line1[1];

print "Content-type: text/html\n";
&SetCookie;
print "\n";
print <<EOM;
<HTML>
<HEAD>
<TITLE>$title</TITLE>
</HEAD>
<BODY bgcolor="#F7F7E0">
<H1 align="center"><FONT color="blue">$title</FONT></H1>
<H3 align="center">$kaisetsu</H3>
<P align="right"><A href="$back">戻る</A></P>
<P align="center"><FONT size="4">
<FONT color="blue">$last_time</FONT>現在、投票総数<FONT color="blue">$total</FONT>です。<BR>
下の項目1つにチェックして、投票ボタンを押してください。
EOM
if($koumoku_add eq 'yes'){
print "<BR>お探しの項目がない時は一番下のフォームで項目を追加して下さい。\n";
}

6   名前: みき : 2003/09/05 00:58
分割A

if($cook eq '1'){
print "<BR><FONT size=\"-1\">1回のご訪問で1回だけ投票(または項目の追加)ができます。</FONT>\n";
}

print <<EOM;
</P>
<CENTER>
<FORM action="eztohyo.cgi" method="POST">
<INPUT type="hidden" name="forked" value="tohyo">
<TABLE border="1">
<TR><TD colspan="5"><INPUT type="submit" value="投票する"> <INPUT type="reset" value="RESET">項目に<FONT color="#0000ff">*</FONT>印がついているものはコメントがあります</TD></TR>
<TR><TH>順位</TH><TH>項目</TH><TH>票数</TH><TH>割合</TH><TH>グラフ</TH></TR>
EOM

7   名前: みき : 2003/09/05 00:59
分割B

$count = @DATA;
$count--;
$i = 1;
$j = 0;
$juni = 1;
$gr_check = 'yes';
while($count > 0){
@line = split(/\,/,$DATA[$i]);
if($line[1] == 0){$per = 0;}
if($line[1] != 0){
$per = int(1000 * ($line[1] / $total)) / 10;
if($line[1] != $tokuten){
$juni = $i;
$tokuten = $line[1];
}else{
$tokuten = $line[1];
}
}
$rank = $juni;
if($line[1] == 0){$rank = 0;}
print "<TR><TH>$rank</TH>\n";

$convert_url = $line[2];
$convert_url =~ s/./sprintf("%%%2X",ord($&))/eg;

$koumoku = "<A HREF=\"eztohyo.cgi?forked=link&link=$convert_url\" target=\"_blank\">$line[2]</A>\n";

print "<TD><INPUT type=\"radio\" name=\"choice\" value=\"$line[2]\">$koumoku\n";
if($line[3] ne ''){
print "<FONT color=\"\#0000ff\">*</FONT>\n";
}
print "</TD>\n";
print "<TD align=\"center\">$line[1]</TD>\n";

8   名前: みき : 2003/09/05 01:00
分割C

#パーセント表示が小数点以下何位も表示されてしまう時は下の行頭の#をとって下さい
#$per = substr($per,0,4); #この場合4桁までになります
print "<TD align=\"center\">$per\%</TD>\n";
if($gr_check eq 'yes'){
if($per < 40){
$m = 15;
}elsif($per >= 40){
if($per > 60){
$m = 5;
}else{
$m = 10;
}
}
$gr_check = 'no';
}
$r = int($per * $m);
if($per != 0){
print "<TD><IMG src=\"$gif\" align=\"left\" height=\"12\" width=\"$r\" border=\"0\"></TD>\n";
}else{
print "<TD></TD>\n";
}
print "</TR>\n";
$i++;
$j--;
$count--;
}

print <<EOM;
</FORM>
</TABLE>

9   名前: みき : 2003/09/05 01:02
分割D

EOM
if($koumoku_add eq 'yes'){
print <<EOM;
<CENTER>
<TABLE border="1">
<TR>
<TD align="left">
<FORM action="eztohyo.cgi" method="POST">
<INPUT type="hidden" name="forked" value="add">
追加する項目を書いて[項目の追加]ボタンを押して下さい<BR>
<INPUT name="touroku" size="25"><BR>
追加する項目にコメントを加えたい場合はさらに下に書いてください<BR>
お名前(ハンドルネーム):<INPUT name="name" size="20"><BR>
コメント:<INPUT name="comment" size="65"><BR>
<INPUT type="submit" value="項目の追加"> <INPUT type="reset" value="RESET">
</FORM>
</TD></TR>
</TABLE>
</CENTER>
</TD></TR>
</TABLE>

10   名前: みき : 2003/09/05 01:05
分割D

</CENTER>
EOM
}
# 以下13行は削除しないで下さい。(Copyrightです)
print <<EOM;
<BR>
<TABLE width="100%">
<TR>
<TD align="left" valign="top"><FORM action="eztohyo.cgi" method="POST">
<INPUT type="hidden" name="forked" value="admin">
<INPUT type="submit" value="管理用"><INPUT type="password" name="psw" size="15">
</FORM></TD>
<TD align="right" valign="top">
<B><A href="http://www.net-easy.com/">EasyTohyo Ver2.1</A></B>
</TD></TR>
</TABLE>
</BODY>
</HTML>
EOM
}

この中のどれかを書き換えればいいんだと思うのですが・・・。
よろしくお願いします。管理人さん、長くなってしまってゴメンなさいです。

11   名前: mar : 2003/09/05 11:37
横レス失礼します。
結論から言いますと、恐らく直す必要があるのはこのcgiファイルではなさそうですね。
項目の追加(=変更)ができる時点で、リストも外部ファイルと推測されます。
「eztohyo.txt」というファイルを作ったと思います。コレが項目リストが書かれているファイルでしょう。
サーバー上にあるこのファイルを開くと何やら色々と書いてあると思いますが、
探していくと投票の項目名が順に書いてあるところがあるはずです。
その項目の後ろにイメージタグを書けばOKだと思います。
「テストです<img src="">」のように。
今の段階ではこの程度しか言えません。eztohyo.txtの中身が詳細までわからないですから。

但し、あくまでも参考意見として聞いて下さい。
cgiはコンピュータプログラムファイルですから、ヘタにいじると実行させた際に暴走したり無限ループになり
終了しなくなったりします。単にエラーが出て止まってしまうだけならまだいいですが、
前者の様になるとそのサーバーを使っている全ての人に迷惑がかかる事態となってしまいます。
これがHTMLファイルとの大きな違いです。
フリースクリプトとは言え、自分の責任で改変・使用するのですから
ある程度(最低限)の知識は準備した方が良いと思います。
cgiは通常Perlという言語で書かれることが多いです。このスクリプトもPerlです。
頑張って下さい。

一覧へ戻る