0

可能重复:
如何确定用户是否选择了文件上传?

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

这是我的表格:

<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

如果是表单,最好使用一些 javascript 库(如jQuery )进行客户端验证。查看这个用于表单验证的jQuery 工具。

对于服务器端验证,请查看此链接。它可能会帮助你。

于 2012-12-28T10:33:57.773 回答
0

对于“文件上传”字段的客户端验证,请参考以下插件: http ://adamsanderson.github.com/jQuery-File-Validator/

它是有益的。我试过了。

于 2012-12-28T11:06:23.983 回答
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 回答