人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

テキストボックス等で入力した内容をsubmit時に下記のような記述で次のPHPファイル(jianewchk.php)へ渡しているのですが前のページで入力した内容を認識してくれません。<FORM action="jianewchk.php" method="POST" enctype="multipart/form-data">

ローカル環境では問題ないのですがレンタルサーバーへアップしたら機能しなくなりました。考えられる原因を教えて頂きたいと思います。初心者なので質問の意味が分かりにくいかもしれませんがよろしくお願いします。サーバーはKAGOYAインターネットを使用しています。

●質問者: moks
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP インターネット サーバー テキスト ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● esecua
●100ポイント

PHPは使えますよね?

パーミッションは大丈夫でしょうか?

ちょっとソースがないのでなんともいえません。もしよろしければソースを見せていただけないでしょうか?

◎質問者からの返答

回答ありがとうございます。

先ほどソースを貼り付けたのですが上手くいかなかったので良かったらこちらから直接みて頂けないでしょうか?よろしくお願いします。

入力ページがjianew.phpで確認ページがjianewchk.phpとなっています。

ftp://guest01@shichoukaku.serveftp.net/

ユーザー名:guest01

パスワード:guest01


2 ● esecua
●100ポイント

すいませんが、エラーがでてダウンラードできません。

両方ともPHPなら一つのスクリプトにまとめてみてはいかがでしょうか?以下は簡単なスクリプトです。(test_POST.php)

<?php

if (isset($_POST['check_post'])) {

$name = htmlspecialchars($_POST['name']);

$email = htmlspecialchars($_POST['email']);

echo'

<h2>登録ありがとうございました。</h2>

<p>登録内容</p>

<p>名前:<b>'.$name.'</b></p>

<p>メール:<b>'.$email.'</b></p>

';

} else {

echo'

<h2>以下の項目を入力してください。</h2>

<form action="test_POST.php" method="POST">

<p>名前:<input type="text" value="" name="name" /></p>

<p>メールアドレス:<input type="text" value="" name="email" /></p>

<p><input type="submit" name="check_post" value="登録" />

</form>

';

}

?>

以上を改造してみてください。これでもダメな場合は他の方法を考えてみたいと思います。

参考になれば幸いです。

◎質問者からの返答

すいません。tobeoscontinue様の回答により解決しました。素人の質問に丁寧な対応をして頂きありがとうございました。


3 ● tobeoscontinue
●100ポイント ベストアンサー

KAGOYAインターネットを見てみるとPHPが使えるのは専用サーバプランだと思いますが、このPHPは4.3.11のようです。PHPはバージョンによって動作が違ってくるのでバージョンの違いによるものかもしれません。


単純なものはregister_globals=Offです。PHP-4.2.0以前はOnだったようでこれに依存したコードを書いていた場合は動かないでしょう。受け取りが$_POST["名前"]のようになっていればこれでは無いです。


気になる点はenctype="multipart/form-data"です。これはファイルアップロード時などに使われるようです。しかし

>テキストボックス等で

とあるのでこの辺かなぁと思います。http://www.php.net/manual/ja/ref.mbstring.php]のHTTP 入出力で

 注意: PHP 4.3.2 およびそれ以前のバージョンの場合、 
 HTML フォームのenctype が multipart/form-data に設定された場合、
 mbstring は、POST データの文字エンコーディングを変換しません。 
 この場合、文字列を内部文字エンコーディングに変換してやる必要があります。 

 注意: PHP 4.3.3 以降、HTML フォームの enctype が multipart/form-data に設定され、
 かつ、 php.ini において mbstring.encoding_translation に On が指定されている場合、
 POST データの変数とアップロードされたファイルの名前の文字エンコーディングは、 
 内部文字エンコーディングに変換されます。

注意にあるようにPHP-4.3.11ではmultipart/form-data に設定された場合、POST データの文字エンコーディングを変換しないということが原因ではないでしょうか。

◎質問者からの返答

回答ありがとうございます。register_globals=Onにて解決しました。丁寧な解説参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ