![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
(http://c-php.mine.nu/)で配布されている「貼り付けアンケート」を設置したところ、以下のようなエラーが出ました。
Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 94
Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 95
Warning: mb_convert_encoding(): Illegal character encoding specified in /home/toraya-c/public_html/harituke/harituke.php on line 96
Fatal error: Call to undefined function: mb_check_encoding() in /home/toraya-c/public_html/harituke/harituke.php on line 140
エンコードがうまくいってないようなのですが。。
指定の行数の記述は以下です。
$title = mb_convert_encoding($title,'EUC-JP',$en);
$body = mb_convert_encoding($body,'EUC-JP',$en);
$quest = mb_convert_encoding($quest,'EUC-JP',$en);
if(!mb_check_encoding($body,'EUC-JP') || mb_check_encoding($body,'ASCII')){
配布されているものを特に変えず(設定部分以外)、そのままupしたつもりですが、エラーの原因がわかりません。
当方、php初心者なので的外れな質問でしたら申し訳ございませんが、よろしくお願いします。
No.5ベストアンサー
- 回答日時:
それでしたら、以下のはどうでしょうか。
$gotopage = '';
$gotopage = "$thankyou[$ran]";
if(!empty($gotopage)){
print "<HTML><HEAD>";
print "<meta http-equiv =\"refresh\" content=\"0; url=" . $gotopage. "\">";
print "</HEAD></HTML>";
exit;
}
ちゃんと表示されるようになりました!
素晴らしいです。
勉強不足の自分に遅くまで付き合っていただいて何とお礼を申していいやら‥
本当に助かりました。
ありがとうございました!!
No.4
- 回答日時:
ごめんなさい、間違えました。
to_thunkyou();
↓
if(!empty($gotopage)) to_thunkyou();
==========================
$gotopage = "$thankyou[$ran]";
if(!empty($gotopage)) to_thunkyou();
function to_thunkyou(){
global $gotopage;
print "<HTML><HEAD>";
print "<meta http-equiv =\"refresh\" content=\"0; url=" . $gotopage. "\">";
print "</HEAD></HTML>";
exit;
}
==========================
この箇所だけですが、こちらで確認しましたが特にエラーは出ませんでした。
単にコピペした場合、そのPHPの改行コードや漢字コードの確認、そしてバックスラッシュだけ打ち直すとかしてみてはどうでしょうか。
回答ありがとうございます。
確かに、サンキューページ関係の箇所だけのファイルだとちゃんと表示されるのですが、元ファイルだと全く同じ記述(、かつ階層も同じ)なのに何故かエラーが出ます。
●エラー箇所
if(!empty($gotopage)) to_thunkyou();
●エラー文
Fatal error: Call to undefined function: to_thunkyou()
(ちなみに、サンキューページ関係の箇所だけのファイルだと
if(!empty($gotopage)) to_thunkyou();
の部分は
to_thunkyou();
でもエラーは出ませんでした。)
色々アドバイスを頂いたのに、解決できずに申し訳ありません。。
ただ、すごく勉強になりました。
本当にありがとうございました。
No.3
- 回答日時:
>>header("Location: $thankyou[$ran]");
これ昔良くハマりました。
このスクリプトの前に print とかがあるとエラーが出ます。これはPHPのセキュリティ仕様です。
------------------------------------------------
header("Location: $thankyou[$ran]");
exit();
------------------------------------------------
↑を以下のと入れ替えるとどうでしょうか。
ここのところはfunctionにして、
$gotopage = '';
$gotopage = "$thankyou[$ran]";
to_thunkyou();
function to_thunkyou(){
global $gotopage;
print "<HTML><HEAD>";
print "<meta http-equiv =\"refresh\" content=\"0; url=" . $gotopage. "\">";
print "</HEAD></HTML>";
exit;
}
変わらず試していませんが、済みません。
回答ありがとうございます。
入れ替えてみたところ、下記のエラーが出ました。
Fatal error: Call to undefined function: to_thunkyou() in /home/toraya-c/public_html/harituke/harituke.php on line 184
184行目とは
to_thunkyou();
の部分です。
No.2
- 回答日時:
>140行目のエラーについてはまだよく分かりません。
($title, 'EUC-JP', 'ASCII,JIS,UTF-8,EUC-JP,SJIS')
if(!mb_check_encoding($body,'EUC-JP') || mb_check_encoding($body,'ASCII')){
↓
if( mb_check_encoding($body,'EUC-JP') != true || mb_check_encoding($body,'ASCII') == true){
ではどうでしょうか?試していませんです。
ただ、これだと「$bodyがEUC-JP以外、または、$bodyがASCIIだったら」の意味になり結果的に
if( mb_check_encoding($body,'EUC-JP') != true){
の「EUC-JP以外は」と同じになると思われますが。
この回答への補足
すみません。
お礼欄に書いた「エラーは変わらず」というのは勘違いでした。
この補足欄で訂正させていただきます。
140行目のエラーにつきましては、回答していただいた書き換えで解決したようです。
ありがとうございます。
しかし、また新たなエラーが。。
このスクリプトはアンケートに答えたらサンキューページ(ランダム)に飛ぶという設定がしてあるのですが、今のままではアンケートに答えてもサンキューページに飛んでくれません。
以下、サンキューページ関係の箇所
//サンキューページ。半角カンマで区切るとランダムに飛ぶ
define(THANKS,"thanks1.html,thanks2.html,thanks3.html");
//サンキューページをランダムに
$thankyou = explode(',',THANKS);
list($msec,$sec) = split(' ',microtime());
mt_srand($msec*100000);
$thcount = count($thankyou) - 1;
//サンキューページに飛ぶ
$ran = mt_rand(0,$thcount);
header("Location: $thankyou[$ran]"); ←
exit();
エラーが出ているのは「←」のところです。
ちなみにエラー文は、
Warning: Cannot modify header information - headers already sent by (output started at /home/toraya-c/public_html/harituke/harituke.php:2) in /home/toraya-c/public_html/harituke/harituke.php on line 181
個人的には、サンキューページの表示はランダムでなくて1ページだけでも構わないのですが、
書き換えの方法が分からないのでそのままにしてあります。
勉強不足で大変申し訳ございませんが、
もしお分かりの方いらっしゃいましたら、ご教授願います。
No.1
- 回答日時:
「$en」が良く分かりませんが、以下のではどうでしょうか。
($title,'EUC-JP',$en);
↓
($title, 'EUC-JP', 'ASCII,JIS,UTF-8,EUC-JP,SJIS')
'ASCII,JIS,UTF-8,EUC-JP,SJIS' を 'auto' にすると上手く変換できない場合があります。
早速の回答どうもありがとうございます!
仰るとおり、変更してみたところ94~96行目のエラーについては解決できました。
しかし、140行目のエラーについてはまだよく分かりません。
ネットで検索したりして、付け焼刃で対応しているもので‥。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php エラー 2 2022/10/23 16:43
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- Ruby 教えてください 2 2023/01/04 17:50
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- Ruby pythonエラー 4 2022/11/11 19:12
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UTF8メールがLotus Notesで文字...
-
SQL Serverで文字コードUTF-8
-
SJIS→UTF-8変換後の文字化けに...
-
mb_strposについて予定外の結果...
-
携帯とPCにメールを送る(文字...
-
mb_regex_encodingでエンコード...
-
廣のjis変換で文字化け
-
PHPmailerでの添付ファイルの文...
-
文字列を文字コードの数値に変...
-
phpのメールフォームの完了画面...
-
文字化け変換方法
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
-
COBOLの改行
-
エスケープ文字の復帰(¥r)と...
-
改行コード(CR/LF)の設...
-
全角括弧と全角読点の間隔を狭...
-
ダブルコーテーション(
-
C++で空Enterの入力を判...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
SQL Serverで文字コードUTF-8
-
SJISで取得した半角カナをUTF-8...
-
PHPmailerでの添付ファイルの文...
-
PostgreSQLからCSV形式でエクス...
-
PHP+Postgres 「髙」が文字化け
-
UTF8メールがLotus Notesで文字...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
PHPのsendmailでの文字化けにつ...
-
「あ」→「82A0」のようにshift-...
-
メールのCCに複数のアドレスを...
-
phpMyAdmin内での文字化け
-
mb_ereg_replace での文字変換
-
mail()で送信したメールのタイ...
-
PHP cURLでPOSTした値が文字化...
-
RSSを取得すると文字化けする。
-
全角スペースを半角スペースに変換
-
Gmailへのメール送信で文字化け
-
includeファイルの文字コードに...
-
UTC-8→SJISで文字化け
おすすめ情報