こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

スマホでの入力フォームが上手く反映されません

いつも大変お世話になります。
cgi勉強中ですが初心者です。
どうかお力添えよろしくお願いいたします。
kent-webさんのパスワード自動発行型の会員登録フォームをアレンジして作っています。
http://www.kent-web.com/pwd/pwmgr.html
もちろん「改造品を配布するホームページとしてリンクを貼るようにします。
一つだけ改善しません。
フォームの入力をPCですると全てうまくいきますが、スマホで入力していただくと返信用のメール内容に反映されず空欄で返ってきます。

最初のエンコードの宣言をutf-8にすると文字化けが起きました。
次にshift_jisにすると文字化けはしませんが、自分で改造した部分だけが空欄で帰ってくるようになりました。
なので、文字コードの間違いではなく、改造した(自分で足したフォームタグ部分のみ空欄)箇所がプログラムが間違っているような気がします。
改造前の「名前」「入力日時」「ホスト情報」「ログインID」「パスワード」はちゃんと変換されます。

こうなるともうお手上げで…うまくいきません。
どなたか見ていただけないでしょうか

必要だと思われる箇所のみ↓に記します。

※受付フォームhtml の60行くらいまで↓

<?php echo '<?xml version="1.0" encoding="shift_jis"?>'; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta http-equiv="content-style-type" content="text/css">
<title>POPS会員登録フォーム</title>
<style type="text/css">
<!--
body,th,td { background:#eee; color:#000; font-size:80%; }
table.obi { width:400px; }
table.obi th { padding:5px; background:#666; color:#fff; }
table.form th,td { background:#fff; color:#000; padding:7px; }
td.msg { color:green; font-size:75%; }
table.chg td { padding:0; }
-->
</style>
</head>
<body>
<form>
<p style="text-align:center;"><input type="button" value="TOPに戻る" onclick=window.open("../index.html","_top")></p>
</form>
<div align="center">

<table class="obi">
<tr>
<th>POPS研究会 新規メンバー登録</th>
</tr>
</table>
<p>
以下のフォームにご入力ください。<br>
折り返しパスワードを送信します。
</p>
<form action="./pwmgr.cgi" method="post">
<input type="hidden" name="mode" value="new_user">
<table cellspacing="0" border="1" class="form">
<tr>
<th>お名前</th>
<td><input type="text" name="name" size="30"></td>
</tr>


<tr>
<th>フリガナ</th>
<td><input size="20" type="text" name="フリガナ" /> 全角カタカナ</td>
</tr>
<tr>
<th>電話番号(半角)</th>
<td><input size="30" type="text" name="本人電話番号" />ご本人様(携帯など)</td>
</tr>
<tr>
<th>性別</th>
<td><input type="radio" name="性別" value="男" /> 男 
<input type="radio" name="性別" value="女" /> 女 </td>
</tr>
<tr>
<th>POPS会を知ったきっかけ</th>
<td><input name="サイトを知ったきっかけ[]" type="checkbox" value="友人・知人" /> 友人・知人 
<input name="サイトを知ったきっかけ[]" type="checkbox" value="検索エンジン" /> セミナー</td>
</tr>
<tr>
<th>勤務先施設(所属歯科医院)</th>
</tr>
<tr>※受付フォームのhtml

</head>
<body>
<form>
<p style="text-align:center;"><input type="button" value="TOPに戻る" onclick=window.open("../index.html","_top")></p>
</form>
<div align="center">

<table class="obi">
<tr>
<th>POPS研究会 新規メンバー登録</th>
</tr>
</table>
<p>
以下のフォームにご入力ください。<br>
折り返しパスワードを送信します。
</p>
<form action="./pwmgr.cgi" method="post">
<input type=初心者"hidden" name="mode" value="new_user">
<table cellspacing="0" border="1" class="form">
<tr>
<th>お名前</th>
<td><input type="text" name="name" size="30"></td>
</tr>


<tr>
<th>フリガナ</th>
<td><input size="20" type="text" name="フリガナ" /> 全角カタカナ</td>
</tr>
<tr>
<th>電話番号(半角)</th>
<td><input size="30" type="text" name="本人電話番号" />ご本人様(携帯など)</td>
</tr>
<tr>
<th>性別</th>
<td><input type="radio" name="性別" value="男" /> 男 
<input type="radio" name="性別" value="女" /> 女 </td>
</tr>
<tr>
<th>POPS会を知ったきっかけ</th>
<td><input name="サイトを知ったきっかけ[]" type="checkbox" value="友人・知人" /> 友人・知人 
<input name="サイトを知ったきっかけ[]" type="checkbox" value="検索エンジン" /> セミナー</td>
</tr>
<tr>
<th>勤務先施設(所属歯科医院)</th>
</tr>
<tr>

※入力内容を返信させるtxt

!name!様

ご登録をありがとうございます。
以下のとおりログインIDとパスワードを発行しました。

※パスワードはご自分で自由に変更可能ですので、覚えやすいものに
変更しておくことができます。

▼登録内容
登録日時 : !date!
ホスト情報 : !host!
お名前 : !name!
E-mail : !email!
フリガナ : !kana!
本人電話番号 : !tel!
性別 : !sex!
サイトを知ったきっかけ : !trigger!
勤務先名称 : !medicalname!

▼ログイン情報
ログインID : !id!
パスワード : !pw!

※パスワード発行用のdgiも必要でしょうか?

投稿日時 - 2017-09-24 13:42:56

QNo.9378203

すぐに回答ほしいです

質問者が選んだベストアンサー

inputのname属性に日本語が使用されていますが、そこが問題ではないでしょうか?

また、
>最初のエンコードの宣言をutf-8にすると文字化けが起きました。
>次にshift_jisにすると文字化けはしませんが、自分で改造した部分だけが空欄で帰ってくるようになりました。
とのことですが、
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
のcharset属性は合わせて変更しましたか?
PHPとHTMLで文字コードがそろっていないと文字化けが起こると思うのですが...

投稿日時 - 2017-09-24 15:03:21

お礼

Proof4 様
早速の回答ありがとうございます!!
>inputのname属性に日本語が使用されていますが、そこが問題ではないでしょうか?

まさしくコレでした!!
PCサイト用の入力フォームhtmlとスマホhtmlと二つ作っていまして…
スマホ用だけトラブってたname属性が日本語のままでした…
なんと、そそっかしい…
ご指摘とおりローマ字に治してテストしたら、ちゃんと入力通り返ってきました!!

長いプログラムを丁寧に読んでいただき、ご返事いただき、ありがとうございます!!
以後気を付けて作成していきたいと思います!!

投稿日時 - 2017-09-24 15:43:21

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問