• 締切済み

特定の文字が文字化けします

こんにちは。 とても困ってます。 例えば、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
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

main.phpでPOSTを受け取る際にstripslashes()を追加してはいかがでしょう。 foreach($_POST as $key=>$var) { if(get_magic_quotes_gpc()) $var = stripslashes($var); } みたいな感じにです。変わらない可能性高いですが参考までに…

web_php
質問者

お礼

ありがとうございます。 無事に解決できました。 どうやら、main.php で受け取った時点では文字化けしておらず、 そこから header("Location: main.php&str=$str..." ); で更に 送った先で文字化けしておりました。 誤った情報で質問してしまいすみませんでした。

関連するQ&A

  • 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
  • ファイルのアップロードで文字化けします

    ファイルのアップロードを行うと特定文字以降の名前が消えてしまいます。 (予、表など2バイトコードに5Cが含まれる文字) コードは下のように書いています。 <form enctype="multipart/form-data" action="upload_fnc.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> サーバの動作環境はLinux(FedoraCore3)、Apache2.0.52、PHP4.3.10です。 クライアント側はほとんどがWindows(2000、XP)です。 どのようにして対処すればよいか分からなく困っています。 どなたかお分かりの方がいらしたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • hidden属性だけのフォーム

    hidden属性だけのフォームというのはちゃんと動作しますか? 自分のソースでは動作せず、送り先のPHPスクリプトでvar_dump()すると、$_POST['']の中身が NULL になってました。送信やリセットボタンを作らずに送信できるとすれば、どんな ソースになりますか? <?php echo '<form name="form1" method="POST" action="../../disp_access.php">'; echo '<input type="hidden" name="from" value="1">'; // どのページから飛んできたかを示す echo '<input type="hidden" name="browser" value="'.$referer.'">'; echo '<input type="hidden" name="ip" value="'.$ip.'">'; echo '</form>'; ?>

    • ベストアンサー
    • HTML
  • 同一ページで複数のformを扱う場合

    同一のページ内にhiddenでIDを振った削除ボタンを用意しクリックされたIDを取得するにはどのようにすれば良いでしょうか? <form action="/test.php" name="1" method="post"> <input type="hidden" name="id" value="1" /> <input type="submit" name="delete" value="削除"> </form> -- 省略 <form action="/test.php" name="10" method="post"> <input type="hidden" name="id" value="10" /> <input type="submit" name="delete" value="削除"> </form> formにnameを振ってみても最後のIDがPOSTされてしまいます。

    • 締切済み
    • PHP
  • 改行データPOSTできない

    mysql+php+htmlで作ってるんですが、POST後のページで改行が反映されません。 -------------------------------- 111.php -------------------------------- - 省略 - <body> <form action="222.php" method="post"> <input type="hidden" name="data2" value=<?php echo "$data1";?>> <input type="submit" value="編集"> </body> - 省略 - -------------------------------- 222.php -------------------------------- --省略-- <?php $data2 = $_POST['data2']; ?> <form> <textarea cols="80" rows="20" name="test"><? echo "$data2"; ?></textarea> </form> --省略-- -------------------------------- これだと222.phpで1行だけしか表示されません。変数に入れれないのでしょうか? お手数ですが、ご教示お願いします。 ちなみに111.phpの方も textarea にすると正常に値が渡せます。 でも表示したくないのでイヤです。 (急いで入力したので、タイプミス&コピペミスっぽいのは無視してくださいm(_ _)m)

    • ベストアンサー
    • PHP
  • メール送信時の不具合

    以下a.html→b.html→c.phpのフローでテキストエリアに入力された文章がc.php内で一行しか表示されませんでした。 全文表示したいのですが、どうすれば良いのでしょうか?ちなみにhtmlファイル内でもphpは使える環境になっています。サーバはロリポップです。 どなたか助けて下さい。よろしくお願い致します。 ■a.htmlファイル <form method=post action="b.html"> 内容:<br> <textarea name="comment" rows="5" cols="70"></textarea> <br> <input type="submit" value="確認"> <input type="reset" value="リセット"> </form> ■b.htmlファイル 内容:<?php echo $comment;?><br> で送信致します。<br> 宜しいですか?<br><br> <form method="POST" action="c.php"> <input type="hidden" name="comment" value=<?php print($comment);?>> <input type="submit" value="送信" /> </form> ■c.php <?php $comment=$_POST['comment']; echo $comment; ?>

    • ベストアンサー
    • PHP
  • 特殊文字を含むフォームデータの受け渡し

    HTML+PHPでフォームを作っているのですが、 フォーム内のtextareaに特殊文字を含んだ場合に、フォームデータが全て渡って来ない場合があります。 このような現象の原因、対処法等ご存知の方がおりましたら、ぜひともご教授ください。 以下、現象の詳細です。-------------------------------- ・ccccの中に特殊文字(&trade;が文字参照になってない状態等)が入っている状態でsubmitすると、aaaaがPOST変数に入っていない。 ・valueの値が入ってないのではなく、aaaa自体が存在しません。 ・同様に書いているいくつかのフォームでも発生するものとしないものがある ---フォーム--- <form method="post" enctype="multipart/form-data" action="test.php"> <input type="hidden" name="aaaa" value="aaaa"> <input type="hidden" name="bbbb" value="bbbb"> <textarea name="cccc"> ---test.php--- 先頭で$_POSTをprintしてます。

    • 締切済み
    • PHP
  • PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問

    PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問致します。 1.入力→2.確認→3.実行の3ページを作成しましたが、 2.確認で入力した値が間違っていた場合、1.入力に戻って訂正する仕様です 私は2.確認の戻るボタンにjavaのhistory.back();を使ったのですが ブラウザやOSにより、戻った際にデータが保持されていない場合があるとの事だったので 他の方法がないかご教授下さい。サンプルコードを書いて頂くと助かります。 以下、作成したコード 1.入力画面(mail.html) <html> <body> <form action="chk.php" method="post"> 件名:<br> <input type="text" name="subject" size="30" value=""><br> 送信者名:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> 本文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="確認する">&nbsp&nbsp<input type="reset" value="クリア"> </form> </body> </html> 2.確認画面(chk.php) <?php $name = $_POST["name"]; $message = $_POST["message"]; $subject = $_POST["subject"]; $mail = $_POST["mail"]; ?> <html> <body> <form action="send.php" method="post"> 件名:<?php echo $subject; ?><br> 送信者名:<?php echo $name; ?><br> メールアドレス:<?php echo $mail; ?><br> 本文:<?php echo $message; ?><br> <input type="submit" value="これでOK"> &nbsp&nbsp //下記の戻るボタンで戻るとデータ保持をするようにしたい。history.back以外で。 <input type="button" value="戻る" onclick="history.back();"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="message" value="<?php echo $message; ?>"> <input type="hidden" name="subject" value="<?php echo $subject; ?>"> <input type="hidden" name="mail" value="<?php echo $mail; ?>"> </form> </body> </html> 3.送信画面(send.php) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <body> <p>メールが送信されました。</p> </body> </html> 初心者ですので、わかりやすい表記をお願い致します。

    • 締切済み
    • PHP
  • INPUTタグによるデータ引継ぎについて

    入力フォームから確認画面を経由してメール送信する プログラムを作っているのですがINPUT<type="hidden"に よるデータの受け渡しがうまくいかず困っています。 ~ソース~ <FORM ACTION="send.php4" METHOD="post"> <INPUT TYPE="hidden" NAME="naiyo" VALUE=$temp> </FORM> $tempには改行コードを含む文字列が入っているのですが send.php4の方で変数naiyoを見ると、改行コードの ところでデータが切れてしまっているのです。 INPUTタグの前でstr_replaceを使って改行コードを 変換しても変わりません。 ありふれたプログラムなんですがはまってます・・。 どなたかお知恵をお貸しください・・。

    • ベストアンサー
    • PHP
  • form変数の初期化

    <br /><b>Notice</b>: Undefined index: your_name in <b>C:\xampp\htdocs\test\index.php</b> on line <b >83</b><br /> 入力画面で上記のエラーが解決しません。 どうすればいいでしょうか? 入力画面 <?php $_POST = array(); ?> <form method="post" action="./form_check.php"> <div class="element_wrap"> <label>氏名</label> <input type="text" name="your_name" value="<?php echo $_POST["your_name"]?>"> </div> <div class="element_wrap"> <label>メールアドレス</label> <input type="text" name="email" value=""> </div> <input type="submit" name="btn_confirm" value="入力内容を確認する"> </form> 確認画面 <?php $your_name = $_POST["your_name"]; ?> <form method="post" action="./test.php"> <div class="element_wrap"> <label>氏名</label> <p><?php echo $your_name; ?></p> </div> <div class="element_wrap"> <label>メールアドレス</label> <p><?php echo $_POST['email']; ?></p> </div> <input type="submit" name="btn_submit" value="送信"> </form> <form method="post" action="./index.php"> <!--<input type="button" name="btn_back" onclick="history.back()" value="戻る">--> <input type="submit" name="btn_back" value="戻る"> <input type="hidden" name="your_name" value="<?php echo $_POST['your_name']; ?>"> <input type="hidden" name="email" value="<?php echo $_POST['email']; ?>"> </form>

    • 締切済み
    • PHP

専門家に質問してみよう