![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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に入れたいのですが、
なんだか上書きされているようで、どんどんポイントを加算していくことが出来ません、
どうやったら、違うファイルで受け取った変数を保存していくことが出来るのか
ご教授ください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
通るすがると申します。
ソース良く見たわけではないのですが、多分サーバー側(PHP)とクライアント側の仕組みを勘違い
してませんか?PHPで生成したHTMLは出力オンリーで、HTMLを生成するだけで通信しているわ
けではありません。
PHPの処理を一通り実行するとそのAPはは終了してしまします。
また、HTMLでPHPを起動した場合、新たにサーバー側でそのプログラムが起動され、新規にメモ
リ-上に展開し動くことになります。ですので前に受け取った情報は初期状態となり情報を維持できま
せん。もし、情報を維持したければセッション機能を使います。これはサーバーのメモリに一旦退避し
て新たに受け取った情報をセッション機能を介して受け取りデータの引き渡しを行います。
この方法以外に、最初に起動したサーバープログラム(PHP)からHTMLを起動するとき、HTML側
に保持したい情報も一緒にコードとして生成し、HTML上でSBMIT発行時に、その情報をPHP側に
受け取る方法もあります。
ほかにも、クライアントへの情報保持方法としてクッキーを利用するという手もあります。
どのような方法で実施するかはインフラの条件などにより決定するかと思います。
少し文章では解りずらいかもしれません。キーワードとして、PHP、クッキー、セッションなどを組み合
わせて調査してみてください。
セッションで管理したらうまくいきました!
■最初のページにセッションを開始するものを書く
// セッションの開始
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のところの数字を変化させていくことが出来ました!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのタイムアウトについて
-
受け取り値を"豊岡市","養父市"
-
PEARのHTTP_Requestをインストール
-
home_urlとbloginfo('url')
-
""と''で囲まれた構文をechoの...
-
BASIC認証のユーザー名をPHPで...
-
PHP外部の変数を保持して足し算...
-
変数に格納する文字列の表示方法
-
POSTされた時に入力されている...
-
検索結果を2列で表示させたい
-
【BAT(バッチ)ファイル】Web...
-
フォントの色を変えるには?
-
AccessのDoCmd.SendObjectについて
-
.phpと.incファイルの違いはな...
-
FTPコマンドでディレクトリごと...
-
リンク先を隠す方法はないでし...
-
【file_exists】ファイルが存在...
-
セッションのクッキー有効期間...
-
配列とオブジェクトの違い
-
VBAでJPGサイズ変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
BASIC認証のユーザー名をPHPで...
-
php で C言語のdefineマクロの...
-
PEARのHTTP_Requestをインストール
-
PHPのタイムアウトについて
-
特定の値をPOST送信で他のサー...
-
simplexml_load_file で呼び出...
-
「include」と「file_get_conte...
-
cakephpのサブタイトルはどこで...
-
PHPを使ってRSSコードから画像...
-
DBから取得した内容を横表示
-
index.phpで外部PHPファイルを...
-
変数に格納する文字列の表示方法
-
PHPとHTMLをまとめてコメントア...
-
共通の処理をまとめる方法がわ...
-
echoを使用すると、エラー
-
PHPでxmlファイルへのデータの...
-
連想配列の可変変数
-
PHP+MySQLでXMLを作成し、それ...
-
PHP Mysql SELECTであいまい検...
-
「include()」関数の使い方につ...
おすすめ情報