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

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

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

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

Q&A

1回答

1463閲覧

formに入力した値を画面遷移させて計算させたい

iori.5115

総合スコア1

PHP

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

0グッド

1クリップ

投稿2020/05/20 10:21

実現したいこと

PHP初心者です。
PHPでねこと人間を比較するwebサービスを作っています。
入力した内容が画面遷移すると計算されるようなシステムを作っていますが画面遷移すると計算が反映されずうまくいきませんでした。
こんなやり方があるというものがあれば、教えていただきたいです。
よろしくお願いいたします。
また、result.phpの部分に男女毎でのbmiを計算するようなコードを作りたいと考えています。
こちらも参考コードがあれば教えていただきたいです。

  • 発生している問題

formの内容がresult.phpで反映されいな
男女毎のbmi計算方法

php

1<?php 2session_start(); 3 4if (!empty($_POST)) { 5if ($_POST['height'] === '') { 6 $error['height'] = 'blank'; 7} 8 9if ($_POST['weight'] === '') { 10 $error['weight'] = 'blank'; 11} 12 13if ($_POST['age'] === '') { 14 $error['age'] = 'blank'; 15} 16 17if (empty($_POST['gender'])) { 18 $err_msg['gender'] = '※性別を入力してください'; 19} 20 21 22 23if (empty($error)) { 24 $_SESSION['orgwebservice'] = $_POST; 25 header('Location: result.php'); 26 exit(); 27} 28} 29?> 30 31. 32. 33. 34<form action="" method="post"> 35 <div class="row"> 36 <div class="col-12 col-sm-6"> 37 <div class="form-select"> 38 <label class="text">身長</label> 39 <input type="height" name="height" id="" value= 40 "<?php print(htmlspecialchars($_POST['height'], ENT_QUOTES)); ?>"> 41 <?php if ($error['height'] === 'blank'): ?> 42 <p class="error">※身長を入力してください</p> 43 <?php endif; ?> 44 </div> 45 </div> 46 47 <div class="col-12 col-sm-6"> 48 <div class="form-select"> 49 <label class="text">体重</label> 50 <input type="weight" name="weight" id="" value= 51 "<?php print(htmlspecialchars($_POST['weight'], ENT_QUOTES)); ?>"> 52 <?php if ($error['weight'] === 'blank'): ?> 53 <p class="error">※体重を入力してください</p> 54 <?php endif; ?> 55 </div> 56 </div> 57 </div> 58 59 <div class="age-sex"> 60 <div class="row"> 61 <div class="col-12 col-sm-6"> 62 <div class="form-select"> 63 <label class="text">年齢</label> 64 <input type="age" name="age" id="" value= 65 "<?php print(htmlspecialchars($_POST['age'], ENT_QUOTES)); ?>"> 66 <?php if ($error['age'] === 'blank'): ?> 67 <p class="error">※年齢を入力してください</p> 68 <?php endif; ?> 69 </div> 70 </div> 71 <div class="col-12 col-sm-6"> 72 <div class="gender"> 73 <label class="textl">性別</label> 74 <input type="radio" name="gender" value="male"> 75 <label>男性</label> 76 <input type="radio" name="gender" value="female"> 77 <label>女性</label> 78 <br> 79 <span><?php if(!empty($err_msg['gender'])) 80 echo $err_msg['gender']; ?></span> 81 </div> 82 </div> 83 </div> 84 </div> 85 86 <!-- 受診する --> 87 <div class="row"> 88 <div class="col-12 mt-4"> 89 <div class="btn"> 90 <input class="submits" type="submit" value="受診する"> 91 </div> 92 </div> 93 </div> 94 </form> 95 </div> 96 </div> 97 </div> 98 </div> 99

PHP

1<?php 2session_start(); 3 4if(!isset($_SESSION['orgwebservice'])) { 5 $weight = $_POST['weight']; 6 $height = $_POST['height']; 7 $age = $_POST['age']; 8 $male = $_POST['male']; 9 $female = $_POST['female']; 10 $gender = $_POST['gender']; 11 12 13 $height = $height / 100; 14 15 $bmi = $weight / ($height * $height); 16 $bmi = round($bmi, 1); 17 $catw = $weight / 15; 18 $cata = $age - 16; 19 20 21 header('Location: index.php'); 22 exit(); 23 } 24 25?> 26 27. 28. 29. 30<!-- //結果欄// --> 31 <div class="section-2"> 32 <div class="row"> 33 <div class="col-12 col-md-6 my-auto"> 34 <h3>ねこ年齢</h3> 35 <p class="result-age"> 36 <?php print(htmlspecialchars(floor($cata / 4))); ?>37 </p> 38 </div> 39 <div class="col-12 col-md-6 my-auto"> 40 <h3>ねこ体重</h3> 41 <p class="result-w"> 42 <?php print(htmlspecialchars(round($weight / 15, 1))); ?>kg 43 </p> 44 </div> 45 </div> 46 </div> 47 . 48 . 49<p>なんとねこはあなたと比較すると 50 <br> 51 年齢は<span><?php print(htmlspecialchars($age - floor($cata / 4))); ?></span>52 体重は<span><?php print(htmlspecialchars($weight - round($weight / 15, 1))); ?>kg</span> 53 もの差があるんです 54 </p> 55 </div> 56 57

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

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

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

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

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

guest

回答1

0

作り方にツッコミ入れたい気もしますが、ぱっと見おかしい部分指摘しておきます

※ソース記載されている上の方がindex.php、下の方がresult.phpって想定

php

1if (empty($error)) { 2 $_SESSION['orgwebservice'] = $_POST; 3 header('Location: result.php'); 4 exit(); 5} 6} 7?>

でセッションに値入れてるのだから

php

1<?php 2session_start(); 3 4// セッションに値が入っていたら処理するのでは? 5if(!isset($_SESSION['orgwebservice'])) { 6 $weight = $_POST['weight']; 7 $height = $_POST['height']; 8 $age = $_POST['age']; 9 $male = $_POST['male']; 10 $female = $_POST['female']; 11 $gender = $_POST['gender']; 12 13 14 $height = $height / 100; 15 16 $bmi = $weight / ($height * $height); 17 $bmi = round($bmi, 1); 18 $catw = $weight / 15; 19 $cata = $age - 16; 20 21 22 // 計算してなぜindex.phpに戻す? 23 header('Location: index.php'); 24 exit(); 25 } 26

投稿2020/05/20 10:30

編集2020/05/20 10:31
rururu3

総合スコア5545

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問