新規アンケートを登録した場合に新規の物がdata内に『num=0』で保存され以前にアンケートをしたものが『num=1』に上書きされてしまいますがこれを、
以前にアンケートしたものを『num=0』で保存し新規でアンケートを登録した場合に『num=1』となるようにしたいのですが可能でしょうか?
########## アンケート個別表示 ########################################
my ($num) = @_;
if ($num eq '') { $num = 0; }
@THIS = split ('<>', $DATA[$num]);
$anc_cnt = $THIS[1] + $THIS[2];
if ($THIS[1] == 0) {
$p_yes = 0;
$w_yes = 0;
} else {
$p_yes = int (($THIS[1] / $anc_cnt) * 10000) / 100;
$w_yes = int $p_yes;
if ($w_yes == 0) {
$w_yes = 1;
}
}
if ($THIS[2] == 0) {
$p_no = 0;
$w_no = 0;
} else {
$p_no = int (($THIS[2] / $anc_cnt) * 10000) / 100;
$w_no = int $p_no;
if ($w_no == 0) {
$w_no = 1;
}
}
if ($THIS[1] == $THIS[2]) {
$w_yes = 49;
$w_no = 49;
}
if ($num == 0 and $look_mode == 1) {
$form_hed = "<form name=\"input\" method=\"post\"
action=\"$myname\" onsubmit=\"return check_input
();\">\n<input type=\"hidden\" name=\"mode\"
value=\"answer\" />";
$form_yes = '<input type="radio" name="answer"
value="yes" />';
$form_no = '<input type="radio" name="answer"
value="no" />';
$form_answer = "<br clear=all />\n<font size=\"-2\">
感想(絵文字は使用不可\能\で\す)</font><br><input
type=\"text\" name=\"com\" size=\"30\" maxlength=\"150\"
/><br>
<font size=\"-2\" color=\"#555555\">実際にサイトを利用した方
のみ、ご投稿下さい。<br>
同ユーザーによる複数投稿、誹謗中傷を含む発言は\予\告なく削除
いたします。</font><br>
<input type=\"submit\" value=\"同意して投稿する\"
/></form>";
} else {
$form_hed = '';
$form_yes = '';
$form_no = '';
$form_answer = '';
}
if ($form{'type'} eq 'i') {
print <<"EOF";
<div id="anc" align="left">
<font color="red">■</font>$THIS[0] [<a
href="$myname?type=i&mode=com&num=$num">コメント</a>]<hr />
$form_hed
<font size="-2">$form_yes Yes : $THIS[1] ($p_yes%)
</font>
<hr size="$hr_w" color="$yes_color" width="$w_yes%"
/>
<font size="-2">$form_no No : $THIS[2] ($p_no%)
</font>
<hr size="$hr_w" color="$no_color" width="$w_no%" />
$form_answer
</div>
<hr />
EOF
} else {
my$w = $hr_w . 'px';
print <<"EOF";
<div class="anc">
<h2><font size="-2">「$THIS[0]」の感想レビュー投稿
</font></h2>
<a href="$myname?mode=com&num=$num" target="anc_win"
onclick="return win_open('$myname?mode=com&num=$num');"></a>
$form_hed
<div align="left">
$form_yes <em><font size="-1"><img src="/img/au1.gif"
width="15" height="14" border="0">良い…</em>$THIS[1]票
($p_yes%)</font><br>
$form_no <em><font size="-1"><img src="/img/au2.gif"
width="15" height="14" border="0">悪い…</em>$THIS[2]票
($p_no%)</font><br>
</div>
$form_answer
<br>
<a href="$myname?mode=com&num=$num" target="anc_win"
onclick="return win_open('$myname?
mode=com&num=$num');"><font size="-1">投稿一覧</font></a>
</div>
EOF
}
}
また、このようになっている場合にどのようにすればよいのでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> コチラのサイトさまよりダウンロードをさせていただきましたアンケートCGIです。
# 最初からそのように仰って頂けたら、とても良かったのではないかと思います。
本来の動作の確認に配布されている「アンケート CGI」の設置をしてみました。
管理者がアンケートを開設すると、Yes/No の投票と一行程度のコメントが残せる
もので、アンケートひとつについてしか投票は行えず、更に新しいアンケートを
追加すると今までのアンケートには投票もコメントも出来なくなるものでした。
これが元の動作で間違いないでしょうか?
そして、あなたが改造なされたのが表示処理の箇所だけのみであればデータが上書きされ
てしまうことはないと思われます。
# と、ここまで調べてやっとなんとなくわかりました。
結局、あなたがなさりたいことは「表示する時の番号の振り方が古いものと新しいものが
逆になってしまい気持ちが悪いから順序を変えたい」と仰っておられるのでしょうか?
# スクリプトのコードの全てを確認していないので絶対とは言えませんけれど……。
POST メソッドの URL の部分に使っている $num 等は一切変えずに HTML の表示部分に
別の変数を使って投票や管理等の処理に影響が出ないようにすれば、可能ではないかと思わ
れます。また、保存や読み出している箇所に一工夫するのも方法のひとつでしょう。
できれば、次回からは改造された部分を差分として提示されて、例えば「 682 行目の
□□部分を○○に変更しました」というような感じにお書きになって頂けないでしょうか?
# さすがに回答に CGI の設置と、ここに貼られたコードの差分まで調べて動作の確認
# は荷が重い……、という理由で他の方々からの回答は得られてないのかと思います。
# こんな余計な意見ばかり申し上げて申し訳ないのですが……。
# では、がんばってみてください。
No.1
- 回答日時:
※ 回答ではありませんが。
> 新規アンケートを登録した場合に新規の物がdata内に『num=0』で保存され
> 以前にアンケートをしたものが『num=1』に上書きされてしまいますがこれを、
> 以前にアンケートしたものを『num=0』で保存し新規でアンケートを登録した
> 場合に『num=1』となるようにしたいのですが可能でしょうか?
それは前回までのデータをどのように保存して管理しているかだと思われます。
二回目以降の投稿があった場合に、その投稿が「初回から起算して何回目となるか
というを管理をしている部分」になんらかの問題があるのではないでしょうか?
また、表示部分だけのコードをご提示なされても意味がわかりません。
このコードを見る限り次のようなことしかわかりません。
(私の読解力とスキルが低過ぎるのかもしれませんが)
> my ($num) = @_;
この前の行に sub functionX となっている箇所があると思われます。
(名前が不明ですので仮に sub functionX とさせて頂きます)
そして、呼び出している部分[&funtionX(args) 等と記述している箇所]で引数として
args(仮称) があると思われます。
> if ($num eq '') { $num = 0; }
functionX の引数が空の文字列('')の場合には $num = 0 となるのは動作
としては当然なのではないでしょうか?
> $DATA[$num]
$DATA にもどのような値が入っているのかも不明です。
もしかすると HTML 部分の POST メソッドの部分で URL の QUERY_STRING に
格納される num の指定から投稿データの $num が決定されるということなら
悪戯が容易に出来てしまえる脆弱な実装かと思われます。(あくまで憶測です)
というように、これだけの情報(コードの行だけは多いのですが)では「仮定」や
「憶測」でしか言えないのです。
ご自身でお書きになられているコードであれば、各部の動作とかを整理して
ご質問して頂けると助かります。
余計なことばかり申し上げましたが、よろしくお願い申し上げます。
# これは、どこかでダウンロードされたスクリプトの改造をなさっておられるのでしょうか?
# それの出所の URL と改造部分だけを提示されるほうが問題の解決に繋がると思われます。
この回答への補足
x415f484fさま、お返事ありがとうございます。
また、解り難い質問をしてしまいましてすみませんでした。
># これは、どこかでダウンロードされたスクリプトの改造をなさっておられるのでしょうか?
># それの出所の URL と改造部分だけを提示されるほうが問題の解決に繋がると思われます。
コチラのサイトさまよりダウンロードをさせていただきましたアンケートCGIです。
http://hary.cocolog-nifty.com/text/cat8172918/in …
すみませんが宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
value="<%=date25(25は変数です...
-
javascriptで結果表示テキスト...
-
HTMLの値の渡し方について質問...
-
aspxでIFみたいなことがしたい
-
<asp>タグの属性情報が取得でき...
-
textareaで改行させたい
-
ACCESSのレポートの表示...
-
C#のRichTextBoxで表示行数を取...
-
シリアル通信プログラミングで...
-
<br>が文字列で出力されてしま...
-
<TEXTAREA> 1行目の改行・・・。
-
リストボックスから選んだ項目...
-
遷移先のURLにパラメータを表示...
-
LINEの打ち込みに改行が表示さ...
-
リストボックスのselectedindex...
-
フォームのtextareaにnl2brを使...
-
スペースの取り方について
-
最大値と最小値の間を循環する変数
-
onBlur→検索→結果の表示
-
<!DOCTYPE HTML PUBLIC "-//W3C...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アンケート個別表示について教...
-
ページング値渡しについて
-
javascriptで結果表示テキスト...
-
"<%=date変数%>" を "<%=date1...
-
HTMLの値の渡し方について質問...
-
ACCESSのレポートの表示...
-
フォームのtextareaにnl2brを使...
-
SELECTボックスの内容を動的に...
-
奇数・偶数の区別をプログラミング
-
遷移先のURLにパラメータを表示...
-
aspxでIFみたいなことがしたい
-
ASP.netで、CheckBoxListのSele...
-
phpの<br>\\nと\\nとエスケープ...
-
改行したいのですが
-
write downとfill outの違いを...
-
<br>が文字列で出力されてしま...
-
<asp>タグの属性情報が取得でき...
-
C#のRichTextBoxで表示行数を取...
-
ASP.NETでTimerコントロールを...
-
javascriptでlabelの値取得
おすすめ情報