質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

663閲覧

hiddenでかくされている数値がうまく渡せないためif文がうまく機能せず困っています

kukuru

総合スコア19

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/06/14 00:44

編集2019/06/14 01:00

下が私の書いたコードなのですがhiddenを使った値の受け渡しがうまく機能しません。どこを修正したらよろしいでしょうか?

lang

1#!/usr/bin/perl 2$| = 1; 3use CGI; 4$obj = new CGI; 5$a = $obj->param('a'); 6$b = $obj->param('b'); 7$eq = $obj->param('eq'); 8$value = $obj->param('value'); 9$answer = $obj->param('answer'); 10$btn = $obj->param('btn');A 11sub len{$len=length($eq);} 12#ブラウザので表示 13print<<EOF; 14Content-type: text/html; 15<html> 16<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 17<head> 18 <title>虫食い算</title> 19</head> 20<body> 21 <b>虫食い算</b><br> 22EOF 23 24 25$num_a=int(rand(100)); 26$num_b=int(rand(100)); 27$x=int(rand(2));#演算子決定に使う 28if($x=0){ 29 $symbol="+"; 30}else{ 31 $symbol="-"; 32} 33$eq="$num_a$symbol$num_b"; 34$value=eval($eq); 35$len=length($eq); 36$k=int(rand(&len)); 37$answer=substr($eq,$k,1); 38substr($eq,$k,1,"?"); 39$last_value = $obj->param('last_value'); 40$last_answer = $obj->param('last_answer'); 41$last_eq = $obj->param('last_eq'); 42if($b==0){$b=0;} 43if($btn=~/[0-9¥-¥+]/){ 44 $a++; 45 if($last_answer eq $btn){ 46$b++; 47 print"正解です(問題:$last_eq=$last_value,正解:$last_answer,あなたの答え:$btn)<br>"; 48 49 }else{ 50print" 不正解です (問題;$last_eq=$last_value,正解;$last_answer,あなたの答え:$btn)<br>"; 51 } 52 print"$a 問中$b 問正解<br>"; 53}else{#reset 押したときに初期化 54 $a = 0; 55 $b = 0;} 56print<<EOF; 57<table border=2><tr><td> 58<b>問題:$eq=$value</b><br><br> 59?には 0~9,+,-のいずれかが入ります。どれでしょう?<br> 60<form method="GET" action="2b.cgi"> 61<input type="hidden" name="last_eq" value"$eq"> 62<input type="hidden" name="last_value" value"$value"> 63<input type="hidden" name="last_answer"value"$answer"> 64<input type="hidden" name="a" value"$a"> 65<input type="hidden" name="b" value"$b"> 66<input type="submit" name="btn" value="0"> 67<input type="submit" name="btn" value="1"> 68<input type="submit" name="btn" value="2"> 69<input type="submit" name="btn" value="3"> 70<input type="submit" name="btn" value="4"> 71<input type="submit" name="btn" value="5"> 72<input type="submit" name="btn" value="6"> 73<input type="submit" name="btn" value="7"> 74<input type="submit" name="btn" value="8"> 75<input type="submit" name="btn" value="9"> 76<input type="submit" name="btn" value="+"> 77<input type="submit" name="btn" value="-"> 78</td></tr></table> 79<input type="submit" name="btn" value="Reset"> 80</form> 81</body> 82</html> 83EOF

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

value="値"
です。

html

1<input type="hidden" name="last_eq" value"$eq"> 2<input type="hidden" name="last_value" value"$value"> 3<input type="hidden" name="last_answer"value"$answer"> 4<input type="hidden" name="a" value"$a"> 5<input type="hidden" name="b" value"$b">

ブラウザの「ソースを表示」で見てみればわかりますが、
<input type="hidden" name="b" value"0">のようになっていて属性と属性値の関連付けが成り立っていません。

投稿2019/06/14 00:50

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kukuru

2019/06/14 01:01 編集

ありがとうございました。
m.ts10806

2019/06/14 03:52 編集

解決されたようで何よりです。 また、せめてコード部分だけでも私が指摘したマークダウンでご対応ください(質問は解決後でも編集できます)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問