• ベストアンサー

フォームから'味'送信

フォームから'味'という漢字を送信するとなぜか'?'と表示するんです。 でも、'味見'とか2文字以上だときちんと'味見'になります。 PHP(4.4.4)もMYSQL(4.0.17)もEUCJPで統一してあります。 ちなみに'味'ではなくて他の文字なら1文字でもキチンと表示します。 hoge.php ECHO $_POST['hoge_hoge']; ECHO "<FORM action=hoge.php method=POST>\n"; ECHO "<INPUT TYPE=text NAME=hoge_hoge value='味'>\n"; ECHO "<input type=submit value='検索'>\n"; どなたか原因と対処法をご存知ないでしょうか?

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.4

mbstring.detect_order = "auto" の時は、 "ASCII, JIS, UTF-8, EUC-JP, SJIS"に展開されます よって、EUC-JPと判定する前にJISに判定されているのでは?文字数が少ないとよく起こるようですよ。 この場合は、順番を変えて、EUC-JPを先に持ってくるようにします。

calltella
質問者

お礼

試してみた所できました、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

> 今のところ、文字化けするのは'味'だけなんです。 試されたのは、どういった範囲ですか? すべての文字について確認なさったわけではないですよね? 今はたまたま表面化していないだけで、試していない文字の中に、 「味」と同じように文字化けしてしまう文字を含んでいるのではないかと心配です。 そういう問題を内在していないかどうかを確認するために、 文字コードに関する今の設定がどうなっているかをお聞きしておりました。

calltella
質問者

補足

補足が不十分で申し訳ありませんでした。 現在の設定はこうなっております。 -- php.ini設定 -- default_charset = "EUC-JP" [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; -- my.ini設定(MYSQL) -- [mysqld] default-character-set=ujis しかしながら上記に記したhoge.phpでも同様ですので MYSQLから取ってきたデータでなくても再現します。 よろしくおねがいします。

全文を見る
すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

> PHP(4.4.4)もMYSQL(4.0.17)もEUCJPで統一してあります。 EUC-JPで統一している、というのは、どこの設定を どのように行なっているので統一している、 ということなのでしょうか。 PHPのマルチバイトストリング関連の設定、 PHPスクリプトのコード体系、 MySQLのコード体系の設定、 このあたりがうまくマッチしていないと、文字化けなどの 不都合が発生します。

calltella
質問者

補足

回答をいただきありがとうございます。 '味'以外にも文字化けするのならおっしゃる事もわかるのですが 今のところ、文字化けするのは'味'だけなんです。

全文を見る
すると、全ての回答が全文表示されます。
  • hito-koto
  • ベストアンサー率53% (14/26)
回答No.1

もとの漢字コードを自動判定にしていませんか? 「味」のEUCコードは、EUCにもS-JISにも存在するコードなので、自動判定ならば誤って変換してしまっているのかも知れません。

calltella
質問者

補足

回答をいただきありがとうございます。 '味'が特殊な文字コードを持つのはわかりました。 >もとの漢字コードを自動判定にしていませんか? 'もとの'と言うのはphp.iniの設定の事でしょうか? php.iniを変更したら'味'以外の文字も文字コードを指定なければいけないのでしょうか? PHPプログラミングで解決できる方法はあるんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フォームから受け取ったデータを変数に/PHP

    入力フォームからデータを送信し、受け取ります。 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> この時に受けったデータが、「りんご」だとして この「りんご」を変数にしたいです。 ↓ <?php $keyword = "りんご"; ?> このようにするには、 <form action="index.php" method="post"> <input type="text" name="hoge"> <input type="submit"> </form> <?php echo htmlspecialchars($_POST['hoge']); ?> の後にどのような処理をすればよいでしょうか? または初めから「$keyword」としてフォームからデータを送ることはできるのでしょうか? 何卒ご指導の程よろしくお願いします。

    • ベストアンサー
    • PHP
  • 複数フォームについて

    こんばんは。 いま行き詰ってます(汗) 早速質問なんですが、三つのフォームを用意します。 <FORM method="POST" action=<?echo"xxx.php?1"?>> <INPUT type="submit" value="A" </FORM> <FORM method="POST" action=<?echo"xxx.php?2"?>> <INPUT type="submit" value="B" </FORM> <FORM method="POST" action=<?echo"xxx.php?3"?>> <INPUT type="submit" value="C" </FORM> 上記のHTMLを実行。 [A][B][C] Aを押すとxxx.php?1 Bを押すとxxx.php?2 Cを押すとxxx.php?2 と別々のアクションに行くはずだと思ったんですが.。 常にxxxx.php?1です(笑) これを、ABCそれぞれのボタンにアクションをつけたいんですが、 可能ですか?? ご教授お願い致します!!!

  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • テキストから要素を抜き出してフォームで送信したい。

    <body> <form action="xxx.cgi" method="post"> <input type="hidden" name="n" value="v"> <table> <tr id="hoge_a"> <td>AAA</td> </tr> <tr id="hoge_b"> <td>BBB</td> </tr> </table> <input type="submit" name="submit"> </form> </body> というHTMLの中で、AAAを抜き出してフォームと一緒にpostでサブミットしたいのですが、javascriptで出来ますでしょうか。 よろしくおねがいします。

  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP
  • postのタイムラグ

    以下のソースでPOSTの値が取れないときがあるので困っています。 具体的にはページを表示してから30秒程度待ってからの クリックじゃないとPOSTの値が取れません。 GETの場合はページ表示後すぐにボタンをクリックしても大丈夫でした。 原因が分からず途方に暮れています。 お知恵をお貸しください。 PHP Version 5.2.3 <?php $P_data = $_POST["pg"]; print("POST=>".$P_data."<BR>"); $G_data = $_GET["pg"]; print("GET=>".$G_data."<BR>"); print <<< DOC_END <html> <head> </head> <body> DOC_END; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=1>"; echo"<input type=submit value=あ>"; echo"</form>"; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=2>"; echo"<input type=submit value=い>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=3>"; echo"<input type=submit value=う>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=4>"; echo"<input type=submit value=え>"; echo"</form>"; print <<< END </body> </html> END; ?>

    • 締切済み
    • PHP
  • メールフォームが動いてくれない。

    初心者ながら以下のようなメールフォームを書いたのですがうまく動いてくれません。どうしてなのでしょうか? ----hoge.php---- <?php $mail = $_POST['mail']; $address = $_POST['add']; if(empty($mail)){ $1 = "入力してください。"; }elseif(empty($address)){ $2 = "入力してください。"; }else{ //メール送信 echo("送信しました。"); exit; } ?> <form action="hoge.php" method="post"> E-mail <inputtype="text" name="add"><?=$1?> Message <input type="text" name="mail"><?=$2?> <input type="submit" value="send!!"> </form> ----- 一応、メールアドレスや本文が未入力の場合、エラーメッセージを出すようにしています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 特定の文字が文字化けします

    こんにちは。 とても困ってます。 例えば、phpで echo "<P><FORM ACTION=\"main.php\">"; echo "<METHOD=POST>"; echo "<INPUT TYPE=HIDDEN NAME=res VALUE=\str_request\">"; echo "<INPUT TYPE=HIDDEN NAME=action VALUE=post>"; echo "<TEXTAREA NAME=\"str\" ROWS=\"8\" COLS=\"50\"></TEXTAREA>"; echo "<INPUT TYPE=\"submit\" VALUE=\"send">"; echo "</METHOD></FORM></P>"; と記述して「send」ボタンを押下して文字列をPOSTした場合、 受け取った文字($str)の特定の文字が文字化けします。 特定の文字とは、「る」「れ」「ろ」などです。 どなたか原因がわかる方いらっしゃらないでしょうか?

    • 締切済み
    • PHP
  • フォームを使った配列変数の受け渡し

    PHP初心者です、よろしくお願いします。 フォームからPHPで配列変数を受け渡すことを考えています。 一次元配列はうまく渡せましたので、これを二次元にしましたところ、 うまく渡せません。基本的なPHPの文法がわかってないので、つまづい ています。多分、配列変数の記述方法がおかしいのだと思うのですが・・。 ご教授よろしくお願いします。 <html> <body> <form method = "POST" action ="test2.php" > <?php //データ渡し側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10'>\n"); echo ("<br>\n"); } echo ("</tr>\n"); } ?> <input type="submit" name ="sbmit" value="data_input" > </form> </body> </html> <?php //データ受け側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j < 2;$j ++ ){ $tmp_data[$i][$j] = $_POST["data"][$i][$j]; echo ("$tmp_data[$i][$j] <br>\n"); } } ?> <html> <body> <form method = "POST" action ="test2.php" > <?php for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10' value='$tmp_data[$i][$j]'>\n"); echo ("<br>\n"); } } ?> </table> <input type="submit" name ="sbmit" value="in" > </form> </body> </html> 実行結果は、 Array[0] Array[1] Array[0] Array[1] と表示されて、実際の入力した値が反映されません。

    • ベストアンサー
    • PHP
  • フォームから送った半角カナの文字化け回避

    こんにちは。 フォームのテキストボックスで半角カナを入力して送信すると、文字が化けることがあります。 どうにか回避できないでしょうか、、、^^; 「半角カナを入力するな!」という常識的な回答(笑)はナシでお願いします。^^; ちなみに、ソースは以下です。 最初submitのところのname属性を書いていなかった時はすべて文字化けを起こしていたのですが、name属性を追加したら最初の入力だけ化けることがある、という現象が置きました。 ちょっとはまってます、、、>< <? header( 'Content-Type: text/html;charset=Shift_JIS' ); echo( "<html>\n" ); echo( "<head>\n" ); echo( "<title>文字送信テスト</title>\n" ); echo( "</head>\n") ; echo( "<body>\n" ); if(isset($mode) == FALSE || $mode == ""){ echo( "<form action=\"test.php\" method=\"post\">\n" ); echo( "<input type=\"hidden\" name=\"mode\" value=\"1\">\n"); echo( "<input type=\"text\" name=\"KANA\" istyle=\"1\"><br>\n" ); echo( "<input type=\"submit\" name=\"\" value=\"送信\">\n" ); echo( "<input type=\"reset\" value=\"クリア\">\n" ); echo( "</form>\n" ); }else{ echo("KANA=$KANA<br>\n"); } echo("</body>\n"); echo("</html>\n"); ?>

    • ベストアンサー
    • PHP