Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何同时对所有表单字段进行验证?_Php_Html_Mysql_Image Uploading - Fatal编程技术网

Php 如何同时对所有表单字段进行验证?

Php 如何同时对所有表单字段进行验证?,php,html,mysql,image-uploading,Php,Html,Mysql,Image Uploading,我正在创建一个程序,在其中一个人可以插入任何产品的形象。我面临的问题是,如果我输入产品详细信息,如果我单击“提交”按钮而不上传图像,它会插入记录。 如果用户没有上传任何图像,我希望它不要插入记录。简言之,我也希望对图像使用验证。我已经将(isset)用于产品字段,但当我将(isset)用于图像时,它会给我以下错误消息,如果我只是删除isset($\u POST['files[]')),它可以正常工作,但会停止验证图像字段 我在这里分享代码。代码相当长。任何帮助都将不胜感激 请填写所有字段 银胸针

我正在创建一个程序,在其中一个人可以插入任何产品的形象。我面临的问题是,如果我输入产品详细信息,如果我单击“提交”按钮而不上传图像,它会插入记录。
如果用户没有上传任何图像,我希望它不要插入记录。简言之,我也希望对图像使用验证。我已经将(isset)用于产品字段,但当我将(isset)用于图像时,它会给我以下错误消息,如果我只是删除isset($\u POST['files[]')),它可以正常工作,但会停止验证图像字段

我在这里分享代码。代码相当长。任何帮助都将不胜感激

请填写所有字段
银胸针。jpg
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 靠近“银胸针.jpg”, 第2行的“upload/products/32046silverbrooches.jpg”) 金戒指2.png

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 在第2行的“Gold_Ring2.png”、“upload/products/207Gold_Ring2.png”)附近
项链_Diamond.png

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 “项链钻石”附近,png, 第2行的“upload/products/6748Necklaces_Diamond.png”)


美元文件['fileFormName']有一个名为'error'的索引,它起到了这个作用

if($_FILES['files']['error'][0] == 4){
     echo you didn't upload an image
}
这将检查用户是否上传了图像

[0]是文件数组中的图像1,它是一个数组,因为您在表单中使用的是文件[]

如果希望用户“不得不”上传所有图像,则可以使用if和语句播放

if($_FILES['files']['error'][0] == 4 or $_FILES['files']['error'][1] == 4 or $_FILES['files']['error'][2] == 4){ echo "You must upload ALL images";}

只需将更改为即可只需要至少一张图像

$\u POST
将所有输入带到需要使用的文件中
$\u文件
检查此php.net/manual/en/reserved.variables.files.php

另外,不要使用
isset()
而是检查
if($\u FILES['file']['name']!=”)
,因为
isset
将始终返回true,如果您的html表单中有名称字段
例如,
如果您选中
isset($\u POST['fname'])
它将返回true,因为它已设置为
name='fname'

isset
不会检查您的文本框是否为空。你可以用

if (trim($_POST['fname']) != "") {

} else {

}
因此,如果用户将字段留空,您的代码将停止并进入else块


PS:
trim()
将字符串开头和结尾的空格。

$\u POST
带来所有输入,对于需要使用
$\u文件的文件
也不使用
isset()
而是检查
如果($\u文件['name']!=”)
$\u文件['files']
实际上是一个数组,因为您正在检查
isset()
<如果您已经为其设置了表单字段,则code>isset将始终返回true,例如,
并且您选中了
isset($\u POST['fname'))
,因为它已设置,所以它不会检查您的文本框是否为空。您需要以与文件相同的方式检查它,即
如果(trim($\u POST['fname')!=“”)
因此,如果用户将字段留空,您的代码将停止并进入else。。
if (trim($_POST['fname']) != "") {

} else {

}