フォームから入力した文字を
$myvalue["kana_mei"] = mb_convert_encoding($_POST["kana_mei"], "SJIS");
でSJISに変換し、
$sStr = $val["kana_mei"];
$sAllowedChars ="あいうえおぁぃぅぇぉかきくけこがぎぐげごさしすせそざじずぜぞたちつってとだぢづでどはひふへほばびぶべぼぱぴぷぺぽまみむめもなにぬねのらりるれろやゆよゃゅょわをんー ";
($sAllowedChars, "SJIS");
If(mb_strlen($sStr) > 0 )
{
for ($i=0;$i<mb_strlen($sStr);$i++)
{
$sStr1= mb_substr($sStr,$i,1);
if(!is_integer(mb_strpos($sAllowedChars,$sStr1)))
{
$err_msg["kana_mei"] = "※ひらがなでご記入ください。";
}
}
}
でひらがなチェックを行っています。
IE6.0 IE7.0 では、問題ないのですが、MAC IE5.0 Fireworksでは、
mb_substr()で”Warning: mb_strpos(): Unknown encoding or conversion error”となってしまいます。
PHPのバージョンは、4.4.2です。
何方か、対処方法、教えて下さい。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
> ($sAllowedChars, "SJIS");
この行が宙に浮いてしまっていて、何をしているのか
よくわからないのですけれど…。
正しく動いているスクリプトを貼り付けていますか?
ありがとうございました。
内部エンコードの不一致が原因でした。
比較部分のスクリプトを変更することで解決しました。
if($val["kana_mei"] != ''){
mb_regex_encoding("SJIS");
if (!mb_ereg("^[あ-ん ]+$", $val["kana_mei"])) {
$err_msg["kana_mei"] = "※ひらがなでご記入ください。<BR>";
}
}
No.3
- 回答日時:
mb_strposで第三引数と第四引数を省略されていますが、
内部文字エンコーディングと、実際に使っているエンコーディングとの
つじつまは合っているのでしょうか?
警告のメッセージ内容からすると、エンコーディングに絡んだ
問題のような気がするのですが…
別サーバーに移行して確認するとエラーが解消されました。
PHP.iniのエンコード設定が原因と思います。
エラーを起こしたサーバーのルート権限を持っていない為
確認が出来ませんでしたが、解決しました。
ありがとうございました。
No.2
- 回答日時:
連想配列$myvalueと$valは別物ですか?それとも、実際は同一ですか?
この際ですから、スクリプトの全容をコピー&ペーストしてくださると、
どんなことをなさりたいかが万人に正しく伝わるように思います。
この回答への補足
スクリプトは、以下の通りです。
<?php
Session_Start();
require_once( './path.inc');
require_once("./inc/include.inc");
require_once("./view/recruit.inc");
$chk = 0;
if($_POST["isPost"]=="1"){
// get value
$_SESSION["message_val"] = get_myinput();
//check
$err_msg = check_myinput( $_SESSION["message_val"]);
if(!$err_msg)
{
//redirect to confirm page
print "<script language='javascript'>document.location.href='recruit_check.php'</script>";
exit;
}
}
display_body($_SESSION["message_val"], $err_msg);
function get_myinput()
{
$myvalue["kana_mei"] = mb_convert_encoding($_POST["kana_mei"], "SJIS");
return $myvalue;
}
//*****************check form valid*******************
function check_myinput($val){
$chk = 0;
$tmpmsg=checkinput($val["kana_mei"],"ご氏名(かな)をご記入ください。", 1);
if($tmpmsg){
$err_msg["kana_mei"] = "※空欄です。";
}
$sStr = $val["kana_mei"];
$sAllowedChars ="あいうえおぁぃぅぇぉかきくけこがぎぐげごさしすせそざじずぜぞたちつってとだぢづでどはひふへほばびぶべぼぱぴぷぺぽまみむめもなにぬねのらりるれろやゆよゃゅょわをんー ";
($sAllowedChars, "SJIS");
If(mb_strlen($sStr) > 0 )
{
for ($i=0;$i<mb_strlen($sStr);$i++)
{
$sStr1= mb_substr($sStr,$i,1);
if(!is_integer(mb_strpos($sAllowedChars,$sStr1)))
{
$err_msg["kana_mei"] = "※ひらがなでご記入ください。";
}
}
}
return $err_msg;
?>
宜しくお願いします。
ありがとうございました。
内部エンコードの不一致が原因でした。
比較部分を
if($val["kana_mei"] != ''){
mb_regex_encoding("SJIS");
if (!mb_ereg("^[あ-ん ]+$", $val["kana_mei"])) {
$err_msg["kana_mei"] = "※ひらがなでご記入ください。<BR>";
}
}
と変更することで解決できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」 3 2022/12/15 22:07
- CPU・メモリ・マザーボード 「コンピューターのメモリが不足しています」 5 2022/12/15 10:10
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- フリーソフト 通信量を計測するソフトを探してます 1 2022/08/18 14:39
- Android(アンドロイド) Googleフォト 1 2022/03/25 07:38
- デジタルカメラ 画像のJPGファイルの「大きさ」と「サイズ」の意味の違いをお教えください。 8 2022/09/18 14:50
- Mac OS MacBook Airに精通されてる方! M2チップ搭載のMacBook Airに買い換えたいのです 2 2023/01/27 18:35
- その他(クラウドサービス・オンラインストレージ) 画像、送信できない。 3 2022/12/07 00:05
- 物理学 垂直抗力について 3 2023/05/06 15:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け変換方法
-
phpのメールフォームの完了画面...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
SJISで取得した半角カナをUTF-8...
-
SJIS→UTF-8変換後の文字化けに...
-
UTF8メールがLotus Notesで文字...
-
SQL Serverで文字コードUTF-8
-
IMAP関数で取得した文字列の、...
-
PHPでのメール差出人名について
-
mysql登録時の文字化け
-
エスケープ文字の復帰(¥r)と...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
-
全角括弧と全角読点の間隔を狭...
-
JAVA System.out.println の ...
-
テキストファイルから改行コー...
-
記号は半角と全角どちらがよい...
-
メッセージボックスで1025文字...
-
エクセルVBA 文字列領域が不足...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Serverで文字コードUTF-8
-
文字化け変換方法
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
PHPmailerでの添付ファイルの文...
-
PostgreSQLからCSV形式でエクス...
-
phpのメールフォームの完了画面...
-
記号だけの文字化け対応について
-
mail()で送信したメールのタイ...
-
PHP+Postgres 「髙」が文字化け
-
メールのCCに複数のアドレスを...
-
phpフォームで携帯へメール送信...
-
IMAP関数で取得した文字列の、...
-
PHP cURLでPOSTした値が文字化...
-
mb_convert_encoding で 一部の...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
mb_strposについて予定外の結果...
-
UTC-8→SJISで文字化け
-
PHPでの文字列置換について
-
SJIS→UTF-8変換後の文字化けに...
おすすめ情報