【发布时间】:2012-12-13 15:10:12
【问题描述】:
可能重复:
How to determine if user selected a file for file upload?
我想要一个简单的 PHP 表单验证。我的表单有两个输入:一个链接和一个要上传的文件。仅当填写了链接字段并且用户选择了要上传的文件时,才应提交表单。如果其中一个为假或两者都为假,则应显示一个警告框(如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 的基本知识,但我不知道如何做这个简单或不那么简单的任务。
【问题讨论】:
-
PHP,作为服务器端验证,不能在提交给服务器处理表单字段之前验证。
-
这与 PHP 关系不大,但与 Javascript 关系更大——至少对于客户端验证而言。请查阅您选择的 Javascript 参考并检查相关 HTML 元素提供的属性和方法。
-
对不起,你说得对。我设法用 JavaScript 做到了,我只是有些担心,因为我在许多页面上读到,如果用户在浏览器中禁用 JavaScript,它就不起作用。
-
@erdomester:你说“我明白我应该从这个开始:”不,你没有……你必须学习更多……
-
警告词:如果您的所有验证都在 javascript 中,那么您没有验证。我可以在浏览器中关闭 javascript,或者使用 CURL 制作 HTTP POST 请求并完全绕过任何 javascript 验证。
标签: php javascript