Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 &引用;警告:in_array()最多需要3个参数,给定5个;尝试上载文件时_Php_Mysql_Forms - Fatal编程技术网

Php &引用;警告:in_array()最多需要3个参数,给定5个;尝试上载文件时

Php &引用;警告:in_array()最多需要3个参数,给定5个;尝试上载文件时,php,mysql,forms,Php,Mysql,Forms,我尝试在表单中使用一些文件输入来上传几种不同的文件类型,当单击submit按钮时,多个文件存储在mysql表中。 问题是,当单击sumbit时,它将显示一个错误:“警告:in_array()最多需要3个参数,5个参数在….中给出”。当我使用一个输入文件时,该文件已成功上载到服务器文件夹。 这是我使用的代码: $dir = $name; $target_dir = "my-file/$dir/"; if( is_dir($target_dir) === false ) {

我尝试在表单中使用一些文件输入来上传几种不同的文件类型,当单击submit按钮时,多个文件存储在mysql表中。 问题是,当单击sumbit时,它将显示一个错误:“警告:in_array()最多需要3个参数,5个参数在….中给出”。当我使用一个输入文件时,该文件已成功上载到服务器文件夹。 这是我使用的代码:

$dir = $name;
$target_dir = "my-file/$dir/";
if( is_dir($target_dir) === false )
    {
        mkdir($target_dir);
    }

if(isset($_POST["submit"])) {
    $formatfilea = array("pdf");
    $formatfileb = array("pdf");
    $formatfilec = array("pdf");
    $formatfiled = array("jpg, jpeg");

    $filea = $_FILES['filea']['name'];
    $fileb = $_FILES['fileb']['name'];
    $filec = $_FILES['filec']['name'];
    $filed = $_FILES['filed']['name'];

    $xa = explode('.', $filea);
    $xb = explode('.', $fileb);
    $xc = explode('.', $filec);
    $xd = explode('.', $filed);

    $existencea = strtolower(end($xa));
    $existenceb = strtolower(end($xb));
    $existencec = strtolower(end($xc));
    $existenced = strtolower(end($xd));

    $sizea  = $_FILES['filea']['size'];
    $sizeb  = $_FILES['fileb']['size'];
    $sizec  = $_FILES['filec']['size'];
    $sized  = $_FILES['filed']['size'];

    $file_tmp_a = $_FILES['filea']['tmp_name']; 
    $file_tmp_b = $_FILES['fileb']['tmp_name']; 
    $file_tmp_c = $_FILES['filec']['tmp_name']; 
    $file_tmp_d = $_FILES['filed']['tmp_name']; 

    if(in_array($existencea, $formatfilea && $existenceb, $formatfileb && $existencec, $formatfilec && $existenced, $formatfiled) === true){

            if($sizea < 1044070 && $sizeb < 1044070 && $sizec < 1044070 && $sized < 1044070){           
                move_uploaded_file($file_tmp_a, $target_dir.$filea);
                move_uploaded_file($file_tmp_b, $target_dir.$fileb);
                move_uploaded_file($file_tmp_c, $target_dir.$filec);
                move_uploaded_file($file_tmp_d, $target_dir.$filed);
            } else {

            }
        }
    }



// attempt insert query execution

$sql = "INSERT INTO test (filea, fileb, filec, filed) VALUES ('$filea', '$fileb', '$filec', '$filed')";
$dir=$name;
$target_dir=“我的文件/$dir/”;
if(is_dir($target_dir)==false)
{
mkdir($target_dir);
}
如果(isset($_POST[“提交”])){
$formatfilea=数组(“pdf”);
$formatfileb=数组(“pdf”);
$formatfilec=数组(“pdf”);
$formatfield=数组(“jpg,jpeg”);
$filea=$_文件['filea']['name'];
$fileb=$_文件['fileb']['name'];
$filec=$_文件['filec']['name'];
$FIELD=$_文件['FIELD']['name'];
$xa=分解('.',$filea);
$xb=分解('.',$fileb);
$xc=分解('.',$filec);
$xd=爆炸('.',$field);
$existencea=strtolower(end($xa));
$existenceb=strtolower(end($xb));
$existencec=strtolower(end($xc));
$existenced=strtolower(end($xd));
$sizea=$_文件['filea']['size'];
$sizeb=$_文件['fileb']['size'];
$sizec=$_文件['filec']['size'];
$sized=$_文件['FIELD']['size'];
$file\u tmp\u a=$\u FILES['filea']['tmp\u name'];
$file\u tmp\u b=$\u FILES['fileb']['tmp\u name'];
$file\u tmp\u c=$\u FILES['filec']['tmp\u name'];
$file_tmp_d=$_FILES['field']['tmp_name'];
如果(在数组中($existencea、$formatfilea&&$existenceb、$formatfileb&&&$existencec、$formatfilec&&&$existenced、$FormatField)==true){
如果($sizea<1044070&&$sizeb<1044070&&$sizec<1044070&&$sized<1044070){
移动上传的文件($file\tmp\u a,$target\u dir.$filea);
移动上传的文件($file\u tmp\u b、$target\u dir.$fileb);
移动上传的文件($file\tmp\u c、$target\u dir.$filec);
移动上传的文件($file\u tmp\u d,$target\u dir.$filed);
}否则{
}
}
}
//尝试插入查询执行
$sql=“插入测试(filea、fileb、filec、filed)值('$filea'、'$fileb'、'$filec'、'$filed')”;
有谁能帮我提供解决方案吗?是什么导致了这个错误?为什么在文件服务器上找不到我上载的文件?

替换

 if(in_array($existencea, $formatfilea && $existenceb, $formatfileb && $existencec, $formatfilec && $existenced, $formatfiled) === true){


您应该参考的语法。它至少接受两个参数

 in_array(param_1, param_2, param_3);
第一个是你想找到的

第二个是数组

第三个参数是可选的。如果要使用严格检查,则可以将其设置为true,以便它也检查类型

您只需按以下方式编写if语句:

if (in_array($existencea, $formatfilea, true) && in_array($existenceb, $formatfileb, true) && in_array($existencec, $formatfilec, true) && in_array($existenced, $formatfiled, true)) {
注意:将第三个参数设置为true将增强代码


请参阅第二个示例:

这不是指定in__数组('neddle',$haystack)函数的正确方法。如果在haystack中发现一个指针,而$heystack应该是一个数组,则in_数组返回true。查找更多信息
if (in_array($existencea, $formatfilea, true) && in_array($existenceb, $formatfileb, true) && in_array($existencec, $formatfilec, true) && in_array($existenced, $formatfiled, true)) {