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

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

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

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

Q&A

1回答

412閲覧

【PHP】header関数を用いて、別ファイルのリンクに移動して表示したい。

KK__2020

総合スコア6

PHP

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

1グッド

0クリップ

投稿2020/03/13 04:14

編集2020/03/14 04:13

前提・実現したいこと

▶︎PHP:
header関数を用いて、別ファイルのリンクに移動して表示したい。

▶︎目的:
PHPでWebサービスの制作

発生している問題・エラーメッセージ

現在、

①index.php:ユーザーが入力した情報をセッションに保存
②sent.php :受け取ったセッション値をもとに計算し、入力した情報を反映

上記二つのファイルを用意して
コーティングを勧めているのですが

【エラー内容】

①のform内で入力した情報を送信ボタンを押して
②のリンクに移動したいのですが、送信ボタンを押しても②に移動しない。

【実際の状況】

ただし、①のファイルのurlの末尾に「/sent.php」と記載すると
①で入力した内容が、②のファイルできちんと反映されているような状態。

該当のソースコード

php

1 2①のファイル記載内容(Header関数を用いてコーティング) 3 4<?php 5session_start(); 6ini_set('display_errors', 0); 7 8$y = $_POST['year']; 9$m = $_POST['m']; 10$d = $_POST['d']; 11$sleeptime = $_POST['sleeptime']; 12$poortime = $_POST['poortime']; 13 14if(!empty($_POST)) { 15 if($y == "") { 16 $error["y"]="blank"; 17 } 18 if($m == "") { 19 $error["m"]="blank"; 20 } 21 if($d == "") { 22 $error["d"]="blank"; 23 } 24 if($sleeptime == "") { 25 $error["s"]="blank"; 26 } 27 if($poortime == "") { 28 $error["p"]="blank"; 29 } 30 31 if(empty($error)){ 32 $_SESSION["try"]=$_POST; 33 header("Location:sent.php"); 34 exit(); 35 } 36} 37?> 38 <form method="post" action=""> 39 <div class="row mt-4"> 40 <div class="form-group col-sm-6 col-xs-12"> 41 <label for="exampleFormControlSelect1" class="text-muted">西暦</label> 42 <select class="form-control" name="year"> 43 <option selected="selected" value="<?php echo $_POST['year'];?>"> 44 <?php if($y == ""): ?> 45 <?php echo "--"; ?> 46 <?php else :?> 47 <?php echo $y; ?> 48 <?php endif; ?> 49 </option> 50 <?php foreach(range(1950,2020) as $year): ?> 51 <option value="<?=$year?>"><?=$year?></option> 52 <?php endforeach; ?> 53 </select> 54 <?php if($error["y"] == "blank"):?> 55 <p style="color:red; font-weight: bold; font-size:12px;"><?php echo "※未選択です!"; ?></p> 56 <?php endif; ?> 57 </div> 58 59 <div class="form-group col-6 col-sm-3"> 60 <label class="text-muted">誕生月</label> 61 <select class="form-control" name="m"> 62 <option value="<?php echo $_POST['m'];?>"> 63 <?php if($m == ""): ?> 64 <?php echo "--"; ?> 65 <?php else :?> 66 <?php echo $m; ?> 67 <?php endif; ?> 68 </option> 69 <?php foreach(range(1,12)as $m): ?> 70 <option value="<?=$m?>"><?=$m?></option> 71 <?php endforeach; ?> 72 </select> 73 <?php if($error["m"] == "blank"):?> 74 <p style="color:red; font-weight: bold; font-size:12px;"><?php echo "※未選択です!"; ?></p> 75 <?php endif; ?> 76 </div> 77 <div class="form-group col-6 col-sm-3"> 78 <label class="text-muted">誕生日</label> 79 <select class="form-control" name="d"> 80 <option value="<?php echo $_POST['d'];?>"> 81 <?php if($d == ""): ?> 82 <?php echo "--"; ?> 83 <?php else :?> 84 <?php echo $d; ?> 85 <?php endif; ?> 86 </option> 87 <?php foreach(range(01,31) as $d): ?> 88 <option value="<?=$d?>"><?=$d?></option> 89 <?php endforeach; ?> 90 </select> 91 <?php if($error["d"] == "blank"):?> 92 <p style="color:red; font-weight: bold; font-size:12px;"><?php echo "※未選択です!"; ?></p> 93 <?php endif; ?> 94 </div> 95 <div class="form-group col-sm-6 col-xs-12"> 96 <label class="text-muted">睡眠時間</label> 97 <select class="form-control" name="sleeptime"> 98 <option value="<?php echo $_POST['sleeptime'];?>"> 99 <?php if($sleeptime == ""): ?> 100 <?php echo "--"; ?> 101 <?php else :?> 102 <?php echo $sleeptime; ?> 103 <?php endif; ?> 104 </option> 105 <?php foreach(range(01,24) as $d): ?> 106 <option value="<?=$d?>"><?=$d?></option> 107 <?php endforeach; ?> 108 </select><?php if($error["s"] == "blank"):?> 109 <p style="color:red; font-weight: bold; font-size:12px;"><?php echo "※未選択です!"; ?></p> 110 <?php endif; ?> 111 </div> 112 <div class="form-group col-sm-6 col-xs-12"> 113 <label class="text-muted">無駄に過ごした時間</label> 114 <select class="form-control" name="poortime"> 115 <option value="<?php echo $_POST['poortime'];?>"> 116 <?php if($poortime == ""): ?> 117 <?php echo "--"; ?> 118 <?php else :?> 119 <?php echo $poortime; ?> 120 <?php endif; ?> 121 </option> 122 <?php foreach(range(00,12) as $d): ?> 123 <option value="<?=$d?>"><?=$d?></option> 124 <?php endforeach; ?> 125 </select><?php if($error["p"] == "blank"):?> 126 <p style="color:red; font-weight: bold; font-size:12px;"><?php echo "※未選択です!"; ?></p> 127 <?php endif; ?> 128 </div> 129 </div> 130 <button class="button button-3d nomargin" type="submit">診断する</button> 131

php

1②のファイル記載内容(Header関数を用いてコーティング) 2 3<?php 4session_start(); 5 6 if(!isset($_SESSION["try"])){ 7 header("Location:index.php"); 8 exit(); 9 } 10 11 $_POST=$_SESSION["try"]; 12 $y = $_POST['year']; 13 $m = $_POST['m']; 14 $d = $_POST['d']; 15 $mx = str_pad($m, 2, 0, STR_PAD_LEFT); 16 $dx = str_pad($d, 2, 0, STR_PAD_LEFT); 17 $callbirthday = $y."年".$m."月".$d."日"; 18 $birthday = $y.$mx.$dx; 19 $sleeptime = $_POST['sleeptime']; 20 $poortime = $_POST['poortime']; 21 $age = floor((date('Ymd')-$birthday)/10000); 22 23 function day_diff($date1, $date2) { 24 25 $timestamp1 = strtotime($date1); 26 $timestamp2 = strtotime($date2); 27 $seconddiff = abs($timestamp2 - $timestamp1); 28 $daydiff = $seconddiff / (60 * 60 * 24); 29 return $daydiff; 30 } 31 32 $day1 = strtotime($birthday); 33 $day2 = strtotime(date('Ymd')); 34 $dayaftter = ($day2 - $day1); 35 $daycount = ceil($dayaftter / (60 * 60 * 24)); 36 $lifetime = $daycount*24; 37 $lifeend = ceil(36500 - $daycount); 38 39 function day_last($time1,$time2) { 40 if ($time2 <=24){ 41 $laststamp1 = $time1 * (24-$time2); 42 $laststamp2 = ceil($laststamp1 / 24); 43 return $laststamp2; 44 45 } else{ 46 echo "※24時間以内を入力してください"; 47 } 48 } 49 $daysleft = day_last($lifeend,$sleeptime); 50 51 function day_last_after($time1,$time2,$time3) { 52 if ($time2 <=24){ 53 $laststamp1 = $time1 * (24-$time2-$time3); 54 $laststamp2 = ceil($laststamp1 / 24); 55 return $laststamp2; 56 } else{ 57 echo "※24時間以内を入力してください"; 58 } 59 } 60 $daysleftafter = day_last_after($lifeend,$sleeptime,$poortime); 61 $lastyaer = ceil($daysleft/365); 62 $lastyaerafter = ceil($daysleftafter/365); 63 $lifeclock = $age/4*60*60; 64 $time = sprintf(gmdate("H時間i分", $lifeclock)); 65 $professional = $daysleft * 24 /10000 66 67?>

試したこと

header関数をファイル名からURLに変更してみたのですが
こちらは変えても、問題解決ができない状態で

①のファイルのform欄に
「action="sent.php"」と記載してみましたが
こちらも問題解決に至りませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

s.k👍を押しています

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

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

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

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

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

m.ts10806

2020/03/13 05:58

省略が多すぎると全容は見えづらいので、項目が多すぎるとかでしたらせめて同じ現象確認できるミニマムコードを提示してください。
KK__2020

2020/03/14 04:14

ご指摘いただいた通り、省略した部分を別途追記いたしましたので、ご確認お願いいたします。
kei344

2020/03/14 04:21

ひとまず ini_set( 'display_errors', 1 ); にしてエラーは出しましょう。
KK__2020

2020/03/14 04:30

>>kei344さん、ご確認及びご指摘いただきありがとうございます!! 早速ini_setの箇所については修正致しました。
AMK

2020/03/14 06:12

ini_set( 'display_errors', 1 );にしてエラーが出てるはずなので、そのエラーの文言をコピペして貼り付けてください。
KK__2020

2020/03/14 06:23

>>AMKさん コメント頂きましてありがとうございます。 1に変更後にサイト内に表示されたエラー内容と コード内容を共有致しますので、お手隙の際にご確認お願い致します。 Notice: Undefined variable: error in index.php on line 6 index.php on line 7 index.php on line 8 index.php on line 9 index.php on line 840 index.php on line 860 index.php on line 878 index.php on line 895 index.php on line 912 ・6~9の内容 $y = $_POST['year']; $m = $_POST['m']; $d = $_POST['d']; $sleeptime = $_POST['sleeptime']; $poortime = $_POST['poortime']; ・840の内容 <?php if($error["y"] == "blank"):?> ・860の内容 <?php if($error["m"] == "blank"):?> ・878の内容 <?php if($error["d"] == "blank"):?> ・895の内容 </select><?php if($error["s"] == "blank"):?> ・912の内容 </select><?php if($error["p"] == "blank"):?>
guest

回答1

0

Notice: Undefined variable でGoogle検索しました?

エラーの意味
https://hacknote.jp/archives/21606/

エラーの意味を考えれば、解決できませんか??

投稿2020/03/14 06:55

編集2020/03/14 07:08
AMK

総合スコア765

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問