- ベストアンサー
フォーム入力のエンコーディングについて
HP作成初心者で、PHP勉強中です。 素朴な疑問なのですが、クライアントさんがフォームに入力したデータがサーバに送られるときの文字エンコーディングは、入力HTMLやPHPのエンコーディングに自動的に会うようになっているのでしょうか? ちなみに、私は現在のところ全てEUC-JPで統一させているのですが、データがSJISで送られてきたら困るな、とふと思ったもので。 基本的なことかもしれませんが、よろしければお教えください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- kotaron
- ベストアンサー率61% (8/13)
- campanella_77
- ベストアンサー率66% (35/53)
- happy_books
- ベストアンサー率28% (131/460)
- campanella_77
- ベストアンサー率66% (35/53)
関連するQ&A
- PHPでフォームの自動入力できますか?
PHPでfopenを使えば、WEBサイトの内容を調べたり、表示させたりすることができますが、懸賞の自動入力のようにサイト上のフォームにデータを入力し、実行ボタンをクリックするような仕掛けのプログラムを組むことは可能でしょうか? クライアント側でプログラムを走らせれば、操作できると思いますが、これをサーバー上のPHPで動かしてみたいのですが... よろしくお願いいたします。
- 締切済み
- PHP
- フォーム受け渡しの際の文字化け
phpスクリプトで フォーム入力→確認画面→ログファイルに書き込み→別スクリプトによりログファイル読み込み→表示 というスクリプトを作ったのですが、フォームに本文を入力した際に 確認画面で本文を見ると、文字化けしてしまいます。 例えば、芸能界と書けば芸柏lになってしまうなど、何故かある一定の文字が書き込めません。(他の大半の文字は文字化けしない) おそらく、euc-jpではなくSJISでphpスクリプトを作っているためだと思うのですが、どうしてもSJISで書きたい場合、何か解決方法はありますか? また、表示するときにSJISになっていればいいため、入力段階などではeuc-jpでも大丈夫です。 ご教授お願いします。
- ベストアンサー
- PHP
- レンタルサーバーで急に、フォームに入力したデータがPHPに受け渡しできなくなりました。
フォーム入力をPOSTで送る プログラムを組んでいて、5箇所以上のレンタルサーバーで 運用しているのですが、 その中の、とあるサーバーでだけ、 フォームに入力したPOSTデータがPHPに受け渡しできません。 転送量問題か何かで、フィルターをかけられる、 という事はあるのでしょうか? HTMLからPHPに値を受け渡しています。 <FORM ACTION="select.php" METHOD="POST"> <input name="data" type="text" size="26"> select.phpは入力内容を判断して、別サイトに飛ばす自動セレクターの役目をしております。 Header("Location: $url");die; が、それ以前に、 echo $data; としても、何も表示されません。 回避策はあるのでしょうか?
- ベストアンサー
- ハードウェア・サーバー
- PHPでフォームに自動入力
PHP初心者です。 (1)フォームに手入力しsubmit (2)手入力の内容をファイルに保管 (3)よそのサーバのフォームを開きユーザ名/パスワードを入力しsubmit (4)パスワード入力後に展開されるフォーム(https)に(1)の手入力の内容を入力しsubmit (5)"(4)"でsubmitした結果で次に表示するフォームを決定したい submitした結果はフォームに正常/エラーが表示されます 自サーバのWebフォームに入力された内容を他のサーバに反映したい。 サーバへの反映結果で次処理を変えたい。 他のサーバに反映させる手段はWebの入力フォームのみとなっています。 (3)(4)(5)をサーバで動作するPHPで自動的(トリガーは(1))に行いたいです。 (3)(4)(5)の実装方法をどなたかご伝授いただけないでしょうか。 サンプルのソースがあればありがたいです。 linuxサーバ(Fedora) PHP 5 質問内容が大きすぎ申し訳ないですが伝授いただけないでしょうか。
- 締切済み
- PHP
- CSV読込(fgetcsv関数)で「手」が出ない…
1マスに「手」と書いたCSV(文字コードSJIS)を fgetcsv関数(PHPファイルはEUC-JP)で取得し、 取得情報を1行づつ mb_convert_encoding($data, "EUC-JP", "SJIS"); でエンコーディングしたのですが、「手」だけを書いたマスのみ読込めません。 他の文字を書いたマスは正しく読込まれています。 こういう事象に陥った方おられませんでしょうか? また解決策をご存知の方がおられましたらご教授頂けないでしょうか? 宜しくお願いします。
- ベストアンサー
- PHP
- euc-jpからutf-8の文字コード変換について
現在、何らかのhtmlを取得する際にはurf-8で統一しようと思っているのですが、 たとえば <?php $f=file_get_contents("http://blog.livedoor.jp/dqnplus/")//文字コードEUC-JP; $f = mb_convert_encoding($f,"utf-8","eucjp-win,utf-8,sjis-win,EUC-JP"); echo $f; ?> では、EUC-JPからの変換がうまくいきません。 ……というより、EUC-JPのエンコーディングのみ失敗してしまいます。 (文字化けしたもののみ抽出すると、すべてEUC-JPでした) どのようなコードを書けば、正常にエンコードできるでしょうか。 どなたかご教示のほど、どうかよろしくお願いいたします。
- 締切済み
- PHP
- フォームで送った文字がおかしくなる
フォームから文字を記入して、送信ボタンを押すと次のページでその文字が表示されるという初歩的なプログラムをつくっています。しかし、フォームからPOSTでデータを送る場合、ある特定の一文字の漢字だけを記入して送信ボタンを押すと正常に表示されません。 例えば、「卒業」だと正常に表示されるのに「卒」だと「'」になってしまい、他にも「文」や「動」を一文字だけ記入すると、何も表示されません。ひらがなやカタカナ、複数文字の場合は全て正常です。原因が分からなくて困っています。 a.php (入力フォーム) <HTML> <HEAD> <TITLE>テキスト送信のテスト </TITLE> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> </HEAD> <BODY> <FORM method="POST" action="view.php"> 入力してください: <INPUT type="text" name="name"> <BR> <INPUT type="submit" value="送信"> </FORM> </BODY> </HTML> view.php (表示するphpファイル) <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <?php print $_POST["name"]; ?> </BODY> </HTML> どこか間違いがあるでしょうか? a.phpとview.phpは両方とも日本語(EUC)改行=LFで保存しています。 phpのバージョンは5.1.1です。よろしくお願いします。
- ベストアンサー
- PHP
- PHP,MYSQLで検索が出来ません。sjis→ euc→sjis。
apache 1.3.34 mysql 4.0.26 php 4.4.2 で運用しています。 HTML 入力 sjis → DATA sjis →読み出し sjis で運用していたのですが、文字化けのおかげで データを EUC にしました。 HTML(入力)sjis→EUC→HTML(読み出し)sjis に変更しました。 参考書を頼りに、変換しながらやっているのですが データが漢字(ひらがなも同じかも)の場合に検索が出来ません **他はうまくいっています***入力、表示ともに 入力時 function cnv_dbstr($string) { $string = htmlspecialchars($string); $string = mb_convert_encoding($string, "EUC-JP", "SJIS"); if (!get_magic_quotes_gpc()) { $string = addslashes($string); } return $string; } 出力時 function cnv_dispstr($string) { $string = mb_convert_encoding($string, "SJIS", "EUC-JP"); $string =nl2br($string); return $string; } 今までは下記のsqlで出来ていたのですが、この福岡市を cnv_dbstr(福岡市) にしてみたりしたのですが検索が出来なくて データが出てきません。 $sql = "select * from mem where area = 1 and cate = '福岡市'" ; $rst = mysql_query($sql, $con); どなたか、アドバイス宜しくお願いいたします。
- ベストアンサー
- MySQL
- 入力フォームで・・・・・
いつもお世話になります。 簡単な事で申し訳ありませんが よろしくお願い致します。 下記のような入力フォームを作っているのですが 自分localhostでは問題なかったのですが レンタルサーバーで動かすと どうしても入力場所に <?php=$FMemb? という文字が出てきてしまい 四角の枠の外に > が表示されます。 PHPが利いていずにHTMLとなっている気がしてなりません。 どなたかご指導よろしくお願い致します。 PHPのバージョンにも影響あるのでしょうか? <?php> . . <html> メンバー <input type="text" name="Memb" style="ime-mode:inactive" size="4" value=<?=$FMemb?> > . .
- ベストアンサー
- PHP
- ローカルにあるhtmlのフォームからのデータ取得について
こんにちは。 ローカルに保存しているhtmlにフォームを配置しある値を格納した後、そのデータをサーバー上にPOSTするとエラーにならずサーバー側で処理を行ってしまいます。 これをさせないようにするにはどのようにしたらよいか教えてください。 環境はRedhatLinux7.2+apache1.3.26+php4.2.2です。 例として、サーバとは違うPCのローカルに置いたHTMLファイルの内容は以下のようにします。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <TITLE></TITLE> </HEAD> <BODY> <FORM action="http://www.hogehoge.com/test.php" method="post"> <INPUT size="20" type="text" name="test"> <INPUT type="submit" name="submit" value="送信"></FORM> </BODY> </HTML> そしてサーバにあるtest.phpの内容は以下のようにします。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <TITLE></TITLE> </HEAD> <BODY> <? print $test; ?> </BODY> </HTML> このローカルのhtml内のテキストボックスに何か入力して送信ボタンを押すとtest.phpでその内容が表示されてしまうのです。これを防ぐ方法を探しています。 つまり同じサイト内(http://www.hogehoge.com/にあるファイル)からのPOSTしか受け付けないようにしたいのです。 ちなみにregister_globalはOnにしてありますがOffにしても変数を$_POST["test"]にすると表示されます。 よろしくお願い致します。
- ベストアンサー
- PHP
- パソコンからQL-820NWBに印刷してます。急に印刷されなくなりました。WiFiはONの状態です。対策あれば教えてください。
- パソコンもしくはスマートフォンのOSはWindowsです。接続は無線LANです。関連するソフト・アプリはありません。電話回線の種類はソフトバンク光回線です。
- QL-820NWBで印刷ができない問題に直面しています。パソコンから印刷しようとした際に、突然印刷ができなくなりました。WiFiは正常に接続されており、電話回線にも問題はありません。対策方法を教えていただけると助かります。
お礼
ご回答有難うございます! できない場合もあるかもしれない、ということですね。 >見ている人もEUCで表示させてあるかは保証できませんし headに <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> をいれておけば大丈夫かと思いましたが、これもブラウザによってはできないこともあるでしょうか? >どちらにしろサーバ側(ここではPHP)で文字コードをチェックするか変換する処理は備えておいた方が無難です。 仰るとおりですね。チェックして必要なら変換するようにやってみようと思います。(できるかな・・) また、telnetやIPアドレスを登録されていないssh接続はできないサーバらしいので、その点は大丈夫だと思います。 常識的なことも知らないことが多く、なかなかプログラム作成に時間がかかってしまいますが、なんとか思うようにつくっていけるようがんばります。