ホームページ > バックエンド開発 > PHPチュートリアル > PHP 入門 - フォーム処理に関連する問題の概要

PHP 入門 - フォーム処理に関連する問題の概要

WBOY
リリース: 2016-06-13 12:16:24
オリジナル
1036 人が閲覧しました

PHP 入門 - フォーム処理の問題のまとめ

最近勉強した結果、PHP と C/C++ は類似点が多すぎるため、簡単な導入は問題ないようですが、たとえば、次の 2 つの質問は、ファイル タグからフォームのファイル名を取得できません。

フォームにはメソッド、アクション、名前という 3 つの属性があることを本で学びました。その中で、フォームの名前をマークします。メソッドは式を送信するために使用するメソッドを示します。オプションの get/post.action は、PHP ページを指定することも、単に現在のページで処理することもできます。これは、PHP ページが指定されている限り、非常に便利です。フォーム、変数、およびすべては PHP と共有されます。

フォームの下には、 input 、 select 、 option 、 textarea が含まれます。ここで、 option は select のサブタグです。 input の type 属性を通じて指定される、多くのカテゴリのタグに拡張できます。現在、私が使用している主なタグは、左から右に、テキスト、パスワード、ファイル、送信、です。ここでの画像は表示用ではなく、送信で使用されるものを置き換えるためのものです。本に記載されている例を比較して、ファイルを取得してみました。情報を収集しましたが、常に失敗し、結果は常に空でした。説明は次のとおりです。

情報を収集した後、多くの学生がそのことを発見しました。おそらく、彼らも私と同じ本を読んでいたのでしょう。しかし、苦労した結果、HTML はデフォルトで text/html 形式のファイル転送のみをサポートしていることがわかりました。したがって、解決策は、属性 enctype="multipart/form-data" をフォームに追加することです。

私の register.php の内容は次のとおりです。

<html><head><title>  注册您的个人信息</title><meta http-equiv="content-type" content="text/html;charset=utf-8"/></head><body><h1>  请输入您的个人信息 </h1><form name=regist method=post action="php/regist.php" >  姓名: <input type=text name=username maxlength=20 size=20 value=请输入用户名 /> <br>  学号: <input type=text name=id maxlength=20 size=20/><br>  邮箱: <input type=text name=mail maxlength=20 size=20/><br>  密码: <input type=password name=password maxlength=40 size=20/><br>  确认密码: <input type=password name=conform maxlength=40 size=20/><br>  头像: <input type=file name=pic /><br>        <input type="image" name="image1" src="pic222094.jpg" alt="submit" width=60 height=60 /><br>  <input type=reset value=重置></form></body></html>
ログイン後にコピー
ファイルをアップロードしてテストします。


入力インターフェイスは次のとおりです。いくつかの情報を書き込みます。文字インターフェイスなので、アバター部分は手書きです。

<?phpheader("Content-Type:text/html;charset=utf-8");echo "user info is as follow: <br>";echo "name is ".$_POST[username]."<br>";echo "number is ".$_POST[id]."<br>";echo "mail is ".$_POST[mail]."<br>";echo "password is ".$_POST[password]."<br>";print_r($_FILES);?>
ログイン後にコピー


ファイルに情報があることがわかります。名前は、サーバー側のファイル名です。 type はファイルの種類を表します。tmp_name はサーバー側の一時ファイル名を表します。


2. フォームの image タグは画像を表示しません。 >

私も大学生の時にこの問題に遭遇し、その時に解決しましたが、何年も経ったのに、どうしてまだ覚えているのでしょうか?

最初に指定したパスは別のディレクトリだったので、後で、Apache が動作するルート ディレクトリ (/var/www/html ディレクトリ) に画像を配置しました。どこにでもあるファイルが表示できるのであれば、なぜ Apache で ROOT_DIRECTORY を設定する必要があるのでしょうか?

3. PHP の文字化け問題

それは HTML でわかっています。ページのエンコーディングの問題は、メタタグ equiv を介して http- を指定することですが、php ページにジャンプした後、タグが再び文字化けしてしまいました。どうすればよいでしょうか。そこで、オンラインで確認しました。

PHP ファイルの先頭に header("Content-Type="text/html;charset=utf-8") を追加すると、問題は解決しました。

さて、これらは私が最近 PHP を学習中に遭遇した問題のいくつかです。特に最初の問題については、合理的な説明を見つけるのに長い時間がかかりました。 . これから数日理解を深め、今週は小さなことでも書けるように頑張ります



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート