※ ChatGPTを利用し、要約された質問です(原文:PHP外部の変数を保持して足し算する方法)
PHP外部の変数を保持して足し算する方法
このQ&Aのポイント
PHP初心者の質問者が、診断テストを作成している際に、外部ファイルから受け取った変数を保持して足し算する方法を知りたいとのことです。
質問文章は5つのファイルに分かれており、それぞれのファイルで外部変数を使用します。
現在、質問者は外部変数の保持方法について理解できていないため、上書きされてしまっているようです。違うファイルで受け取った変数を保存していく方法を知りたいとのことです。
PHP初心者です。
今、診断テストをPHPで作っているのですが、
外部ファイルから受けとった変数を保持している方法が分かりません。。
質問が5問あるので、それぞれ5つのshitumon1.php~shitsumon5.phpがあります。
■shitsumon1.php
------
$no = $_GET["no"];
$counts = $_GET["counts"];
$countssub = $_GET["countssub"];
$question = "質問文1";
$answer1 = "答えの選択肢1";
$answer2 = "答えの選択肢2";
$answer3 = "答えの選択肢3";
//(↓どこの選択肢を押したかによって、countssubに点数を加算していく)
if($no == 1){
$countssub = $countssub + $counts;
}else if($no == 2){
$countssub = $countssub + $counts;
}else{
$countssub = $countssub + $counts;
}
?>
<center>
<div id="main_contentsbox">
<h1>診断テスト</h1>
<div id="contents_bak">
<div class="text_catch"><? echo $question; ?></div>
<ul>
<li id="list1"><a href='shindan2.php?no=1&counts=100&countssub='><?php echo $answer1 ?></a></li>
<li id="list2"><a href='shindan2.php?no=2&counts=200&countssub='><?php echo $answer2 ?></a></li>
<li id="list3"><a href='shindan2.php?no=3&counts=300&countssub='><?php echo $answer3 ?></a></li>
</ul>
</div>
</div>
</center>
-----
■shitsumon2.php
------
$no = $_GET["no"];
$counts = $_GET["counts"];
$countssub = $_GET["countssub"];
$question = "質問文2";
$answer1 = "答えの選択肢1";
$answer2 = "答えの選択肢2";
$answer3 = "答えの選択肢3";
//(↓どこの選択肢を押したかによって、countssubに点数を加算していく)
if($no == 1){
$countssub = $countssub + $counts;
}else if($no == 2){
$countssub = $countssub + $counts;
}else{
$countssub = $countssub + $counts;
}
?>
<center>
<div id="main_contentsbox">
<h1>診断テスト</h1>
<div id="contents_bak">
<div class="text_catch"><? echo $question; ?></div>
<ul>
<li id="list1"><a href='shindan2.php?no=1&counts=100&countssub='><?php echo $answer1 ?></a></li>
<li id="list2"><a href='shindan2.php?no=2&counts=200&countssub='><?php echo $answer2 ?></a></li>
<li id="list3"><a href='shindan2.php?no=3&counts=300&countssub='><?php echo $answer3 ?></a></li>
</ul>
</div>
</div>
</center>
-----
本当はcountssubにどんどんポイントが加算されていきたいので、
質問1と質問2、両方選択肢1を選んだ場合は、
100+100で200の結果をcountssubに入れたいのですが、
なんだか上書きされているようで、どんどんポイントを加算していくことが出来ません、
どうやったら、違うファイルで受け取った変数を保存していくことが出来るのか
ご教授ください。
よろしくお願いします。
お礼
セッションで管理したらうまくいきました! ■最初のページにセッションを開始するものを書く // セッションの開始 session_start(); // セッション変数に値を代入 $_SESSION["count"] = 0; ■条件分岐のところで数値を足していく $_SESSION["count"] = $_SESSION["count"] + 1; ■セッションを維持するファイルには以下の行を追加 session_start(); ■セッションを終了する場合は以下の行を追加 session_start(); //セッション変数の初期化 $_SESSION = array(); //セッションファイルの削除 session_destroy(); これで <p>$_SESSION["count"]に代入した値は「<?php echo $_SESSION["count"] ?>」です。</p> ↑ ここのcountのところの数字を変化させていくことが出来ました! ありがとうございました!