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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

411閲覧

mt_randで取得した値を別ページで使用したい。

Takumi.Sato

総合スコア6

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/03/21 09:03

三つのページからなる計算機プログラムを作成中です。

問題作成ページ・計算入力ページ・計算結果ページ

前2つのページまでは作成できたのですが、入力ページでmt_randメソッドを使用して取得した値を計算結果ページで同じ値を使いたいのですが、詰まっています。

試みたことは、requireを使って再利用しようとしましたが、不必要な部分まで読み込まれてしまう&ランダムメソッドが再実行されるため、前ページと同じ値が取得できません。

どうぞ宜しくお願いいたします。
このようなページを作りたいです

php

1<!doctype html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6<!-- Bootstrap CSS --> 7 8 9<title>範囲選択ページ</title> 10</head> 11<body> 12<header> 13<h1>どの範囲で問題を出題しますか?</h1> 14</header> 15 16<main> 17<h2>問題桁数</h2> 18 19<form action="submit.php" method="post"> 20</br> 21<input type="radio" name="number" value="0-9" checked>0-9まで 22</br> 23<input type="radio" name="number" value="0-99">0-99まで 24</br> 25<h2>演算指定(指定がないときは足し算のみ行われます。)</h2> 26</br> 27<input type="checkbox" name="operator" value="add" checked>足し算 28</br> 29<input type="checkbox" name="operator2" value="min">引き算 30</br> 31</br> 32<input type="submit" value="送信する"> 33<input type="reset" value="リセット"> 34</form> 35 36<pre> 37 38</pre> 39</main> 40</body> 41</html>

php

1<!doctype html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6<!-- Bootstrap CSS --> 7 8 9<title>計算練習ページ</title> 10</head> 11<body> 12<header> 13<h1>計算練習</h1> 14</header> 15 16<main> 17<h2>選択したのは 18 <?php 19 print(htmlspecialchars($_POST['number'], ENT_QUOTES)); 20 ?>までの問題です。 21</br>全部で5問出題します。 22<pre> 23</h2> 24</pre> 25 26<?php 27if(htmlspecialchars($_POST['number'], ENT_QUOTES) == "0-9"){ 28 $number_1 = mt_rand(1, 9); 29 $number_2 = mt_rand(1, 9); 30 $number_3 = mt_rand(1, 9); 31 $number_4 = mt_rand(1, 9); 32 $number_5 = mt_rand(1, 9); 33 $number_6 = mt_rand(1, 9); 34 $number_7 = mt_rand(1, 9); 35 $number_8 = mt_rand(1, 9); 36 $number_9 = mt_rand(1, 9); 37 $number_10 = mt_rand(1, 9); 38}else{ 39 $number_1 = mt_rand(1, 99); 40 $number_2 = mt_rand(1, 99); 41 $number_3 = mt_rand(1, 99); 42 $number_4 = mt_rand(1, 99); 43 $number_5 = mt_rand(1, 99); 44 $number_6 = mt_rand(1, 99); 45 $number_7 = mt_rand(1, 99); 46 $number_8 = mt_rand(1, 99); 47 $number_9 = mt_rand(1, 99); 48 $number_10 = mt_rand(1, 99); 49} 50 51if(htmlspecialchars($_POST['operator'], ENT_QUOTES) == "add" && htmlspecialchars($_POST['operator2'], ENT_QUOTES) == "min"){ 52 // 演算子を均等に配列に入れておく 53 $enz = array("+", "+", "+", "-", "-", "-"); 54 // ランダムに複数のキーを5つ抽出 55 $key = array_rand($enz, 5); 56} 57elseif(htmlspecialchars($_POST['operator2'], ENT_QUOTES) == "min"){ 58 $enz = ['-', '-', '-', '-', '-']; 59 $key = array_rand($enz, 5); 60} 61else{ 62 $enz = ['+', '+', '+', '+', '+']; 63 $key = array_rand($enz, 5); 64} 65 66$question_sentenses = [ 67 ["1問目". $number_1 . $enz[$key[0]] . $number_2 . "="], 68 ["2問目". $number_3 . $enz[$key[1]] . $number_4 . "="], 69 ["3問目". $number_5 . $enz[$key[2]] . $number_6 . "="], 70 ["4問目". $number_7 . $enz[$key[3]] . $number_8 . "="], 71 ["5問目". $number_9 . $enz[$key[4]] . $number_10 . "="], 72 73]; 74 75?> 76 77 78 79<form action="answer.php" method="post"> 80</br> 81 <?php echo $question_sentenses[0][0]?><input type = “text” name ="answer_1"><br/> 82</br> 83 <?php echo $question_sentenses[1][0]?><input type = “text” name ="answer_1"><br/> 84</br> 85 <?php echo $question_sentenses[2][0]?><input type = “text” name ="answer_1"><br/> 86</br> 87 <?php echo $question_sentenses[3][0]?><input type = “text” name ="answer_1"><br/> 88</br> 89 <?php echo $question_sentenses[4][0]?><input type = “text” name ="answer_1"><br/> 90</br> 91<input type="submit" value="送信する"> 92<input type="reset" value="リセット"> 93</form> 94 95</pre> 96</main> 97</body> 98</html>

php

1<!doctype html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6<!-- Bootstrap CSS --> 7 8 9<title>解答確認ページ</title> 10</head> 11<body> 12<header> 13<h1>解答確認結果</h1> 14</header> 15 16<main> 17<pre> 18</h2> 19</pre> 20<?php 21 require("submit.php") 22?> 23 24</div> 25</pre> 26</main> 27</body> 28</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

requireなりincludeはあくまでその場に読み込み対象のコードが入ってくるイメージなので、再利用とはなりません。

セッション使って生成した情報を保持し、共有すると良いと思います。

投稿2020/03/21 09:40

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問