• 締切済み

SUBMIT時の入力文字のURLエンコードについて

本質的にはPerlではないのですが、Perlの 処理中で起こったのでこちらで・・・・ 現在FAQページとFAQを登録するページがあり、 入力 → 確認 → 登録・完了 という流れでページの移行を行っています。 #ちなみにShift_JISです。 日本語だけでなく英語でのFAQを登録する際 『Ω』を入力したかったのですが、当然全角は無理 なので『&Omega;』で登録しました。 が、登録し終わったDBを見ると『Ω』で登録されていました。 そこで、処理を追いかけていて気づいたのですが 確認画面でhiddenとして入れておいた"&Omega;"が POSTされた時点で『Ω』(をURLエンコードしたもの)に 変わっていました。 検証(とりあえずShift_JIS)の為 <form method=GET> <INPUT TYPE="text" name="data1" value=""> <INPUT TYPE="hidden" name="data2" value="&Omega;"> <INPUT TYPE="submit" value="submit"> </form> というフォームを作って、data1に『&Omega;』と 入力してsubmitを行うと ?data1=%26Omega%3B&data2=%83%B6 と、data2はすでに『Ω』に変換されています。 同じく、EUC-JPでもコードこそ違え、同様でした。 西ヨーロッパ言語などの場合、『&#937;』に 変換された状態でうまく(?)行きます。 ブラウザ依存かと思い、IE6,Opera8.5で確認しましたが 同じでした。 これはsubmitでの仕様なのでしょうか? 対応は無理やりやるつもりですが、こうすれば 簡単にできるという事がありましたら教えていただけると ありがたいです。

  • Perl
  • 回答数2
  • ありがとう数0

みんなの回答

noname#19175
noname#19175
回答No.2

ANo.1の補足として、、、 <INPUT TYPE="hidden" name="data2" value="&amp;Omega;"> とすると、&Omega;(をURLエンコードした物)が送られます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>これはsubmitでの仕様なのでしょうか? HTML4.01 で&Omega; が特殊文字として登録されているから HTML中で記述した&Omega; は、そのように扱われます。

関連するQ&A

  • submitではなくbuttonで送信

    事情があり、submitではなくbuttonでフォームのデータを送信したいのですが、以下のように書くとbuttonでは4567が送信されません。 <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="submit" name="bbb" value="4567"> </form> ↓ <form action="test.cgi" method="post"> <INPUT type="hidden" name="aaa" value="1234"> <INPUT type="button" name="bbb" value="4567" onclick="submit();" > </form> submitと同じように、bbbのデータ4567も送信するにはどのように書けばよいのでしょうか? 宜しくお願いします。

  • googleの検索を自分のHPにつけたが、入力した文字が消えてしまう

    http://www.google.co.jp/intl/ja/searchcode.html の「Google フリー検索 (ベーシック版) : ウェブ検索のみ」 を自分のHPにつけました。 ですが、ロゴやテーブルのタグは消して <form method=get action="http://www.google.co.jp/search"> <input type=text name=q size=31 maxlength=255 value=""> <input type=hidden name=ie value=Shift_JIS> <input type=hidden name=oe value=Shift_JIS> <input type=hidden name=hl value="ja"> <input type=submit name=btnG value="Google 検索"> </form> だけにして使用してみました。 それで、漢字などを入力しようと思い、ひらがなで入力し確定するためにエンターを押すと全て入力したのが消えてしまいます。 「おしえて」(破線の下線あり)   ↓ スペースを押す   ↓ 「教えて」(破線の下線あり)   ↓ エンターを押して確定しようとする   ↓ 「    」文字が無くなる といった感じになることがあります。 最初の頃は大丈夫だったような気がするんですが、 同じページ上に http://weather.yahoo.co.jp/weather/promo/blogparts/の天気予報のページと http://rss.tc/で取得したログパーツ を 貼り付けるようになった後から不安定になったような気がします。 両方のブログパーツともjavascript?とかいうものです。 原因がわかる方教えてほしいです。 グーグルのロゴは取ったらいけなかったのかな?とか タグを一部削除したからなのかな? とか思ってるんですが、 お分かりになる方いらしゃったら、ご指導願います。

  • サイト内検索について

    <form action="http://www.google.com/search"> <input type="hidden" value="hogehoge.jp" name="as_sitesearch" /> <input type="hidden" name="ie" value="Shift_JIS" /> <input type="hidden" name="oe" value="Shift_JIS" /> <input type="text" name="q" size="31" maxlength="256" value="" /> <input type="submit" name="btnG" value="Search!" /> </form> にて、グーグルの検索を使用してサイト内検索を使おうと思っておりますが、グーグルのアイコンは付けなくても宜しいでしょうか? もし、詳しい方お返事お待ちしております。 以上宜しくお願い致します。

    • ベストアンサー
    • HTML
  • formのボタンをsubmitしたときにアラート

    javascript で、formのボタンをsubmitしたときに アラートが出るようにしたいと思います。 下記のように作ってみましたが、うまく動きません。 どのようにすれば動くでしょうか? ご教示いただきたくお願いいたします。 <script type="text/javascript"> function(){ $('form1').submit(function(){ $.ajax({ type: 'POST', data: postData, url: 'buy.php', success: function(data){alert("購入できました");} error: function(){alert('購入できませんでした。再度お試しください');} }); return false; }); } </script> <form name="form1" id="form1" method="POST" name="form1" value="form1" action="buy.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="name" value="高橋" /> <input type="submit" value="Save"> <form/>

  • 複数のデータを1度にsubmitするには?

    HTML初心者です。 下記の様にして、1つのsbmitで複数のデータを送りたいのですが、 後のデータ1つしか送れません。どうすればできるかお教え下さい。 *あくまで1つのsbmitボタンで同じnameの複数のデータを送りたいのですが。 ------------------------------------------------ <form method="get" action="xxx.cgi"> <input type="submit" name="leave" value="退室"> <input type="hidden" name="asyuku" value="101"> <input type="hidden" name="asyuku" value="102"> </form> ------------------------------------------------ よろしくお願いします。

  • _URL_の意味がわからない

    のですが例えば <FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD="POST"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Send this file: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Send File"> </FORM> においてファイルを入力してサブミットすればどういうことがおきるのでしょうか?

    • ベストアンサー
    • HTML
  • フォームタグについて

    二つのフォームタグを一つのボタンで送信したいのですが、可能でしょうか? <form action="http://aaa/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="1" /> <input type="submit" value="登録" /></form> <form action="http://bbb/" method="post"> <input type="hidden" name="comment" value="テキスト "/> <input type="hidden" name="mode" value="com_w" /> <input type="hidden" name="no" value="2" /> <input type="submit" value="登録" /></form> 同じデータをもっているフォームですが、送信するページが別々になっています。 この二つのフォームを一つの送信ボタンで送信できますでしょうか? 色々と調べましたがわかりません。 よろしくお願いいたします。

  • ココログでgoogleサイト内検索…なんで文字化け?

    ココログでブログを持っています。 マイリストを使って、サイト内検索の窓を作りたいのです。 そこで、下記のタグを組みました。 <FORM method="GET" action="http://www.google.co.jp/search" target="_blank"> <small style="color: #000000; font-size: 9pt;">サイト内検索<BR>powered by Google</small><br> <INPUT type="text" name="q" size="10" maxlength="100" value=""> <INPUT type="submit" name="btnG" value="検索"> <INPUT type="hidden" name="sitesearch" value="ドメイン"> <INPUT type="hidden" name="domains" value="ドメイン"> <INPUT type="hidden" name="hl" value="ja"> <INPUT type="hidden" name="num" value="20"> <INPUT type="hidden" name="ie" value="Shift_JIS"> <INPUT type="hidden" name="oe" value="Shift_JIS"> </FORM> 確認のため、いったんワードパッドをhtmlの形式で保存して、検索を試してみると、ちゃんと検索結果がでます。 しかし、実際マイリストにこのタグを貼り付けて、自分のブログから試してみると、検索した文字が文字化け(なんか、漢字がいっぱい)してしまって、検索結果が得られません。 これは何が悪いのでしょうか? どなたか、お知恵をお貸しください!

  • 新しい窓にsubmitする方法

    ページAよりページBを開き、Aにhiddenで埋めてある値をBで読み込もうとしています。 AページからhtmlでBページを開く場合は、 <FORM ACTION="B.asp" NAME="check" METHOD="post" target="_blank"> <INPUT TYPE="hidden" NAME="code" VALUE="6000" > <INPUT TYPE="submit" VALUE="次のページへ"> とし、 BページでRequest.Form("code")して行いました。 次にページBをサイズ指定で開きたいために上記のsubmitをbuttonに変更し、Javascriptよりsubmitしようとしたのですが上手く行きません。 どなたかアドバイスや参考になるページをご存知の方がいらっしゃいましたら、宜しくお願い致します。

  • ファイル間のデータの受け渡しについて hidden? session?

    1.php (フォームを表示) 2.php (入力内容の確認ページ) 3.php (最後のページ、送られた値を使用し、メール送信やデータベースに書き込むなどの処理をしたい。) とhiddenを使い、3つのファイルを作成しました。 ファイル"1.php" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> </head> <body> <form action="2.php" method="post"> <input type="text" name="data1" value="データその1"> <input type="hidden" name="data2" value="隠しデータ"> <input type="submit" name="" value="送信"> </form> </body> </html> ファイル"2.php" <?php echo "<h1>確認ページ</h1>"; echo $_POST[data1]."<BR>"; echo $_POST[data2]; print<<<_HOGE_ <form action="3.php" method="post"> <input type="hidden" name="data1" value="$_POST[data1]"> <input type="hidden" name="data2" value="$_POST[data2]"> <input type="submit" name="" value="送信"> </form> _HOGE_; ?> ファイル"3.php" <?php echo $_POST[data1]."<BR>"; echo $_POST[data2]; ?> 2.phpの(入力内容の確認ページ)を見ているときに、他の人が2.phpにアクセスして入力内容を盗み見る事は出来るのでしょうか? (2.phpに直接アクセス出来ないように、リダイレクト処理はするつもりですが。) 2.phpから3.phpに値を渡す場合、このようなhiddenの使い方は間違っていますか? セッションを使った方が良いのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう