PHP表单客户端验证

时间:2012-12-28 10:21:44

标签: php javascript

  

可能重复:
  How to determine if user selected a file for file upload?

我想要一个简单的PHP表单验证。我的表单有两个输入:一个链接和一个要上传的文件。仅当填充了链接字段并且用户选择了要上载的文件时,才应提交表单。如果其中一个或两者都为假,则应显示一个警告框(如{3上传而不选择文件时的here)。

这是我的表格:

<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的基本知识,但我无法弄清楚如何轻松或不那么简单的任务。

5 个答案:

答案 0 :(得分:1)

php是服务器端。你需要的是一个客户端检查器(js,jq ..)

您只能使用php执行检查,但是在您的服务器上,然后将错误消息或任务完成消息返回给客户端。如果您希望在客户端完成检查,则需要使用客户端语言来处理它。

答案 1 :(得分:1)

PHP确实是服务器端应用程序,因此无法执行客户端验证。

如果您真的想要进行客户端验证,那么您可能不得不使用javascript。看看jQuery validation plugin。这是一个大型演示页面,向您展示了一些可能性: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并插入错误的&#39;表单中的值。

答案 2 :(得分:1)

如果是表单,最好使用jQuery之类的javascript库进行客户端验证。请查看此jQuery tool以获取表单验证。

对于服务器端验证,请查看this link。它可能对你有帮助。

答案 3 :(得分: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; }">

答案 4 :(得分:0)

用于客户端验证&#34;文件上传&#34;字段,请参阅以下插件: http://adamsanderson.github.com/jQuery-File-Validator/

很有用。我试过了。