0

重複の可能性:
ユーザーがファイルのアップロード用にファイルを選択したかどうかを判断するにはどうすればよいですか?

簡単なPHPフォームの検証が必要です。私のフォームには、リンクとアップロードするファイルの2つの入力があります。リンクフィールドに入力し、ユーザーがアップロードするファイルを選択した場合にのみ、フォームを送信する必要があります。いずれかまたは両方がfalseの場合、アラートボックスが表示されます(ファイルを選択せず​​に[アップロード]をクリックした場合のよう)。

これは私のフォームです:

<form action="upload_file.php" enctype="multipart/form-data" method="post">

<p>Link:<br>
<input type="text" name="link" size="50">
</p>
<p>Image:<br>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="file" id="file" size="40">
</p>
<div>
<input type="submit" name="upload" value="Upload"> 
</div>

</form>

私はPHPを初めて使用し、チュートリアルを何時間も閲覧していますが、それらの多くは役に立たなかったか、サーバー側の検証を示しています。

私はこれから始めるべきだと理解しています:

<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

フォームが送信される前にフィールドを検証します。私はPHPの基本的な知識を持っていますが、この簡単なタスクやそれほど簡単ではないタスクを実行する方法を理解できません。

4

5 に答える 5

1

phpはサーバー側です。必要なのはクライアントサイドチェッカーです(js、jq ..)

チェックはphpでのみ実行できますが、サーバーでエラーメッセージまたはタスク完了メッセージをクライアントに返します。チェックをクライアント側で実行する場合は、それを処理するためのクライアント側の言語が必要です。

于 2012-12-28T10:25:42.553 に答える
1

PHPは確かにサーバー側のアプリケーションであるため、クライアント側の検証 を実行することはできません。

本当にクライアント側の検証を行いたい場合は、おそらくjavascriptを使用する必要があります。jQuery検証プラグインをご覧ください。これは、いくつかの可能性を示す大きなデモページです:http://jquery.bassistance.de/validate/demo/

詳細なヘルプと情報については、jQuery.com / plugins/validationページもご覧ください。
(この投稿の最後に ある警告に注意してください)

例:
(javascript)

<script>
  $(document).ready(function(){
    $("#commentForm").validate();
  });
</script>

(フォーム)

<form class="cmxform" id="commentForm" method="get" action="">
 <fieldset>
   <legend>A simple comment form with submit validation and default messages</legend>
   <p>
     <label for="cname">Name</label>
     <em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" />
   </p>
   <p>
     <label for="cemail">E-Mail</label>
     <em>*</em><input id="cemail" name="email" size="25"  class="required email" />
   </p>
   <p>
     <label for="curl">URL</label>
     <em>  </em><input id="curl" name="url" size="25"  class="url" value="" />
   </p>
   <p>
     <label for="ccomment">Your comment</label>
     <em>*</em><textarea id="ccomment" name="comment" cols="22"  class="required"></textarea>
   </p>
   <p>
     <input class="submit" type="submit" value="Submit"/>
   </p>
 </fieldset>
 </form>

警告クライアント側
であるjavascriptは、クライアントのコンピューターで実行されることに注意してください。JavaScriptの検証だけに頼らないでください。誰でもjavascriptを無効にして、フォームに「間違った」値を挿入できます。

于 2012-12-28T10:29:04.357 に答える
1

フォームの場合は、jQueryなどのJavaScriptライブラリを使用してクライアント側の検証を行うのが最適です。フォームの検証については、このjQueryツールを確認してください。

サーバー側の検証については、このリンクを確認してください。それはあなたを助けるかもしれません。

于 2012-12-28T10:33:57.773 に答える
0

検証は常にサーバー側で行う必要があります。javascriptを使用するユーザーの便宜として、クライアントのマイナー検証を追加することもできます。

ここに、マイナー検証を使用してフィールドが空になった場合にメッセージを表示するためのいくつかの基本的なコードがあります。

<input type="submit" name="upload" value="Upload" onclick="var ref = document.getElementById('file'); if ( ref.length == 0 ){ alert( 'select file' ); return false; } ref = document.getElementById( 'textfieldid' ); if ( ref.value.length == 0 ){ alert( 'fill link, better use a regexp to match a url but this another store' ); return false; }">
于 2012-12-28T10:55:47.687 に答える
0

「ファイルアップロード」フィールドのクライアント側の検証については、次のプラグインを参照してください:http: //adamsanderson.github.com/jQuery-File-Validator/

それは便利です。私はそれを試しました。

于 2012-12-28T11:06:23.983 に答える