Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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在mysql数据库中插入记录时,文件(已存在/类型)的验证无效_Php_Mysql - Fatal编程技术网

使用PHP在mysql数据库中插入记录时,文件(已存在/类型)的验证无效

使用PHP在mysql数据库中插入记录时,文件(已存在/类型)的验证无效,php,mysql,Php,Mysql,以下是我的postaddata.php代码: require('includes/database.php'); $db = new Database(); if(isset($_POST['btnPostad'])) { $allowedextensions = array("jpg", "jpeg", "gif", "png"); $extensions = end(explode ("." , $_FILES['file']['name'])); if((($_FI

以下是我的postaddata.php代码:

require('includes/database.php');
$db = new Database();
if(isset($_POST['btnPostad']))
{
    $allowedextensions = array("jpg", "jpeg", "gif", "png");
    $extensions = end(explode ("." , $_FILES['file']['name']));
    if((($_FILES['file']['type'] == 'image/gif')
    || ($_FILES["file"]['type'] == 'image/jpg')
    || ($_FILES["file"]['type'] == 'image/png')
    || ($_FILES["file"]['type'] == 'image/jpeg'))
    && ($_FILES["file"]['size'] > 20000)
    && (in_array($extensions, $allowedextensions)))
    {
        if($_FILES['file']['error']> 0)
        {
            $msg =  "Error: " . $_FILES['file']['error'] . "<br>";
            header('Location:postad.php?msg='.$msg);
        }
        else
        {
            $msg2 = "Upload " . $_FILES['file']['name'] . "<br>";
            $msg2 .= "Type " . $_FILES['file']['type'] . "<br>";
            $msg2 .= "Size " . ($_FILES['file']['size'] / 1024 ). "KB" . "<br>";
            $msg2 .= "Stored In " . $_FILES['file']['tmp_name'] . "<br>";
            if (file_exists("uploads/". $_FILES['file']['name']))
            {
                $msg =  $_FILES['file']['name']. "already exists";
                header('Location:postad.php?msg='.$msg);
            }
            else
            {
                move_uploaded_file($_FILES['file']['tmp_name'], "uploads/" . $_FILES['file']['name']);
                //$msg1 =  "Stored in uploads/: " . $_FILES['file']['name'];
            }
        }
    }
    else
    {
        $msg =  '<b> <font face="Verdana, Geneva, sans-serif" color="red">File type is not Supported, Please try uploading recommended formats (JPG, JPEG, GIF, PNG)</font></b>';
        header('Location:postad.php?msg='.$msg);
    }
    //header('Location:postad.php?msg='.$msg1);
    $pic =  ($_FILES['file']['name']);
    $data = array
    (
    'Ad_Status' => $_POST['adstatus'],
    'Model_Year' => $_POST['model_year'],
    'Car_Make' => $_POST['car_make'],
    'Car_Model' => $_POST['car_model'],
    'City' => $_POST['city'],
    'Price' => $_POST['price'],
    'Mileage' => $_POST['mileage'],
    'Mileage_Unit' => $_POST['mileage_unit'],
    'Transmission' => $_POST['transmission'],
    'Engine_Type' => $_POST['engine_type'],
    'Engine_Capacity' => $_POST['engine_capacity'],
    'Exterior_Color' => $_POST['exterior_color'],
    'Air_Bags' => $_POST['air_bags'],
    'Air_Conditioner' => $_POST['air_conditioner'],
    'Power_Steering' => $_POST['power_steering'],
    'Power_Locks' => $_POST['power_locks'],
    'Power_Mirror' => $_POST['power_mirror'],
    'Keyless_Entry' => $_POST['keyless_entry'],
    'Cruise_Control' => $_POST['cruise_control'],
    'Navigation_System' => $_POST['navigation_system'],
    'FM_Radio' => $_POST['fm_radio'],
    'Cassette_Player' => $_POST['cassette_player'],
    'CD_Player' => $_POST['cd_player'],
    'Sun_Roof' => $_POST['sun_roof'],
    'Alloy_Rims' => $_POST['alloy_rims'],
    'HID' => $_POST['hid'],
    'Comments' => $_POST['comments'],
    'Car_Image' => $pic,
    'Display_Name' => $_POST['display_name'],
    'Email' => $_POST['email'],
    'Mobile_Number' => $_POST['mobile_number'],
    'Secondary_Number' => $_POST['secondary_number'],
    'Featured' => $_POST['featured']
    );
    $result_insert_data = $db->insert('car_information',$data);
    $msg = '<b> <font face="Verdana, Geneva, sans-serif" color="green">Your Ad has been posted and will be reviewed and displayed within 24hrs</font></b>';
    header('Location:Index.php?msg='.$msg);
}
else
{
    $msg = '<b> <font face="Verdana, Geneva, sans-serif" color="red">Your Ad has not been posted! Please, try again later</font></b>';
    header('Location:postad.php?msg='.$msg);
}
require('includes/database.php');
$db=新数据库();
如果(isset($_POST['btnPostad']))
{
$allowedextensions=数组(“jpg”、“jpeg”、“gif”、“png”);
$extensions=end(分解(“.”,$_文件['file']['name']);
如果(($_FILES['file']['type']=='image/gif')
||($_FILES[“file”][“type”]=“image/jpg”)
||($_FILES[“file”][“type”]=“image/png”)
||($_文件[“文件”][“类型”]=“图像/jpeg”))
&&($_文件[“文件”][“大小”]>20000)
&&(在数组中($extensions,$allowedextensions)))
{
如果($_FILES['file']['error']>0)
{
$msg=“Error:”..$\u文件['file']['Error'].“
”; 标题('Location:postad.php?msg='。$msg); } 其他的 { $msg2=“上传”$\u文件['file']['name']。“
”; $msg2.=“键入”。$\u文件['file']['Type']。”
; $msg2.=“大小”。($_FILES['file']['Size']/1024)。“KB”。
; $msg2.=“存储在“$\u文件['file']['tmp\u名称]]”中。
“; 如果(文件存在(“上载/”$\u文件['file']['name'])) { $msg=$\u文件['file']['name'].“已存在”; 标题('Location:postad.php?msg='。$msg); } 其他的 { 移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\; //$msg1=“存储在上传中/:”$\u文件['file']['name']; } } } 其他的 { $msg='不支持文件类型,请尝试上载推荐的格式(JPG、JPEG、GIF、PNG)'; 标题('Location:postad.php?msg='。$msg); } //标题('Location:postad.php?msg='。$msg1); $pic=($_文件['file']['name']); $data=数组 ( 'Ad_Status'=>$u POST['adstatus'], “车型年”=>$后[“车型年”], 'Car\u Make'=>$\u POST['Car\u Make'], “汽车模型”=>$\u POST[“汽车模型”], “城市”=>$\u邮政[“城市”], 'Price'=>$\u POST['Price'], “里程数”=>$\u POST[“里程数”], “里程单位”=>$邮政[“里程单位”], “传输”=>$\u POST[“传输”], “引擎类型”=>$\u POST[“引擎类型”], “发动机容量”=>$邮政[“发动机容量”], “外部颜色”=>$\u POST[“外部颜色”], “气囊”=>$\u POST[“气囊”], “空调器”=>$\u POST[“空调器”], “动力转向”=>$\u POST[“动力转向”], “电源锁定”=>$\u POST[“电源锁定”], “电源镜像”=>$\u POST[“电源镜像”], “无钥匙进入”=>$\u POST[“无钥匙进入”], “巡航控制”=>$\u POST[“巡航控制”], “导航系统”=>$\u POST[“导航系统”], “调频收音机”=>$\u POST['调频收音机'], “卡带播放器”=>$\u POST[“卡带播放器”], “CD_播放器”=>$\u POST['CD_播放器'], “Sun_Roof”=>$\u POST[“Sun_Roof”], “合金轮辋”=>$立柱[“合金轮辋”], 'HID'=>$\u POST['HID'], 'Comments'=>$\u POST['Comments'], “汽车图像”=>$pic, 'Display\u Name'=>$\u POST['Display\u Name'], 'Email'=>$\u POST['Email'], “手机号码”=>$\u POST[“手机号码”], “辅助编号”=>$\u POST[“辅助编号”], '特色'=>$\u帖子['特色'] ); $result\u insert\u data=$db->insert('car\u information',$data); $msg='您的广告已发布,将在24小时内审查和显示'; 标题('Location:Index.php?msg='。$msg); } 其他的 { $msg='您的广告尚未发布!请稍后再试'; 标题('Location:postad.php?msg='。$msg); }
使用PHP在mysql数据库中插入记录时,文件(已存在/类型)的验证无效。如您所见,文件函数/验证在将数据发布到数据库之前驻留。我想限制重复图像插入/文件类型限制等。虽然我已经编写了代码,但我相信我的if/else也存在一些问题。您能帮忙吗?

看一下,看看它可能失败的原因

  • 文件_exists
    不适用于指向不存在文件的符号链接。这可能不是你的问题
  • 对于由于限制而无法访问的文件,将返回
    FALSE
    。这可能也不是
  • 但接下来,请阅读底部的注释:缓存
    文件\u存在的结果。
    这可能会导致意外行为
  • 你会想试试这个。根据其文件:

    您还应该注意,PHP不会缓存关于不存在的文件的信息。因此,如果对不存在的文件调用
    file\u exists()
    ,则在创建该文件之前,它将返回FALSE。如果创建该文件,即使随后删除该文件,也会返回TRUE

    您可以尝试在
    if
    语句之前调用以下函数:

    clearstatcache(true, "uploads/". $_FILES['file']['name']);
    if(file_exists("uploads/". $_FILES['file']['name']))
    {
        // And so on...
    

    你收到错误信息了吗?没有!它只是插入记录,而不考虑插入之前提到的文件的条件!那么数据库部分工作正常了吗?是的!正确的!插入一点问题都没有!在代码中的何处检查重复文件?