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 {
}