フォームで名前を受け渡し、最後のthanks画面まで出そうと思いますが、
なぜがエラー画面に戻ってしまいます。どなたか、原因を教えて頂けませんでしょうか。宜しくお願い致します。
<comfirm.php>
php
1<?php 2 3 session_start(); 4 5 $toppage = 'form.html'; 6 7 if(isset( $_POST['name1' ] ) &&($_POST['name2'])){ 8 $_SESSION['name1']= $_POST['name1']; 9 $_SESSION['name2']= $_POST['name2']; 10 } else { 11 error("名前が未入力です"); 12 } 13 $name1 = $_SESSION['name1']; 14 $name1 = htmlentities($name1,ENT_QUOTES, "UTF-8"); 15 $name1 = str_replace("\r\n", "", $name1); 16 17 $name2 = $_SESSION['name2']; 18 $name2 = htmlentities($name2,ENT_QUOTES, "UTF-8"); 19 $name2 = str_replace("\r\n", "", $name2); 20 21 22 23 24 25 if(isset( $_POST['kana1' ] )&& ($_POST['kana2'])){ 26 $_SESSION['kana1']= $_POST['kana1']; 27 $_SESSION['kana2']= $_POST['kana2']; 28 } else { 29 error("フリガナが未入力です"); 30 } 31 32 $kana1 = $_SESSION['kana1']; 33 $kana1 = htmlentities($kana1,ENT_QUOTES, "UTF-8"); 34 $kana1 = str_replace("\r\n", "", $kana1); 35 36 $kana2 = $_SESSION['kana2']; 37 $kana2 = htmlentities($kana2,ENT_QUOTES, "UTF-8"); 38 $kana2 = str_replace("\r\n", "", $kana2); 39 40 if ($_POST['mode'] == 'post') { conf_form(); } 41 else if($_POST['mode'] == 'send') { send_form(); } 42 43 function conf_form(){ 44 global $name1; 45 global $name2; 46 global $kana1; 47 global $kana2; 48 49 $conf = fopen("tmpl/conf.html","r") or die; 50 $size = filesize("tmpl/conf.html"); 51 $data = fread($conf , $size); 52 fclose($conf); 53 54 $data = str_replace("!name1!", $name1, $data); 55 $data = str_replace("!name2!", $name2, $data); 56 $data = str_replace("!kana1!", $kana1, $data); 57 $data = str_replace("!kana2!", $kana2, $data); 58 59 echo $data; 60 exit; 61 } 62 63 function error($msg){ 64 $error = fopen("tmpl/error.html","r"); 65 $size = filesize("tmpl/error.html"); 66 $data = fread($error , $size); 67 fclose($error); 68 69 $data = str_replace("!message!", $msg, $data); 70 71 echo $data; 72 exit; 73 74 } 75 76 function send_form(){ 77 global $name1; 78 global $name2; 79 global $kana1; 80 global $kana2; 81 82 $title =array('氏','名','フリガナ(シ)','フリガナ(メイ)'); 83 $user_input = array($name1,$name2,$kana1,$kana2); 84 mb_convert_variables("SJIS","UTF-8",$title); 85 mb_convert_variables("SJIS","UTF-8",$user_input); 86 $fh = fopen("user.csv","a"); 87 $fh = fopen("user.csv","a"); 88 flock($fh,LOCK_EX); 89 fputcsv($fh, $user_input); 90 flock($fh,LOCK_UN); 91 fclose($fh); 92 93 $conf = fopen("tmpl/send.tmpl","r") or die; 94 $size = filesize("tmpl/send.tmpl"); 95 $data = fread($conf , $size); 96 fclose($conf); 97 98 99global $toppage; 100$data = str_replace("!top!", $toppage, $data); 101 102echo $data; 103exit; 104} 105?>
<conf.html>
html
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>お客様情報入力画面</title> 6</head> 7 <body> 8 <form action="comfirm.php" method="post"> 9 <table> 10 <tbody> 11 <tr> 12 <th>お名前(全角)</th> 13 <td><span>氏<span><input type="text" name="name1" class="required" /></td> 14 <td><span>名<span><input type="text" name="name2" class="required" /></td> 15 </tr> 16 <tr> 17 <th>フリガナ</th> 18 <td><span>シ</span><input type="text" name="kana1" class="required" /></td> 19 <td><span>メイ</span><input type="text" name="kana2" class="required" /></td> 20 </tr> 21 </tbody> 22 </table> 23 <p><input type="submit" value="送信する"></p> 24 <p><input type="button" value="前画面に戻る" onclick="history.back()" /></p> 25 <input type="hidden" name="mode" value="post"> 26 <input type="hidden" name="japan" value="<?php echo $select_book ?>"> 27 </form> 28 </body> 29</html>
<error.html>
html
1<!doctype html> 2<html> 3<head> 4<meta charset="utf-8"> 5<style type="text/css"> 6<!-- 7p.msg { color:red; } 8--> 9</style> 10<title>エラー</title> 11</head> 12<body> 13 14<p><b>エラーが発生しました。</b></p> 15<p class="msg">!message!</p> 16 17<form> 18<input type="button" value="前画面に戻る" onclick="history.back()"> 19</form> 20 21</body> 22</html> 23
send.html
html
1<!doctype html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>送信完了</title> 6</head> 7<body> 8 9<p>ありがとうございました。</p> 10<form> 11<input type="button" value="トップへ戻る" onclick="location.href='!top!';"> 12</form> 13</body> 14</html> 15
具体的には、htmlに<input type="hidden">の中にSessionを入れた変数を組込んだり、sessionをサンクス画面に組み込んだりしたのですが
それでも解決に至らないのが現状です。
入力 → 確認画面までは正常に機能するのですが、サンクス画面に移行しようとする「名前が未入力です」という画面でます。
回答1件
あなたの回答
tips
プレビュー