Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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_Sql_Model View Controller - Fatal编程技术网

Php 将新图像文件名从控制器移动到模型

Php 将新图像文件名从控制器移动到模型,php,sql,model-view-controller,Php,Sql,Model View Controller,我需要一些帮助,将我的新图像文件路径从控制器移动到模型,如果我在执行printr时给出所有正确的值,则使用下面的当前代码,一旦我执行查询,它就会抛出此错误 注意:第17行C:\xampp\htdocs\app\models\Admin.php中未定义的索引:image\u路径 致命错误:未捕获PDOException:SQLSTATE[42000]:语法错误或访问冲突: 这是我的控制器代码 public function addnew(){ if ($_SERVE

我需要一些帮助,将我的新图像文件路径从控制器移动到模型,如果我在执行printr时给出所有正确的值,则使用下面的当前代码,一旦我执行查询,它就会抛出此错误

注意:第17行C:\xampp\htdocs\app\models\Admin.php中未定义的索引:image\u路径

致命错误:未捕获PDOException:SQLSTATE[42000]:语法错误或访问冲突:

这是我的控制器代码

public function addnew(){
                if ($_SERVER['REQUEST_METHOD'] == 'POST'){
                    $_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
                    $data = [ 
                        'fname' => trim($_POST['fname']),
                        'lname' =>  trim($_POST['lname']),
                        'email' =>  trim($_POST['email']),
                        'contact' =>  trim($_POST['contact']),         
                        'jobrole' =>  trim($_POST['jobrole']),
                        'bio' =>  trim($_POST['bio']),
                        'role'=> 'Service Advisor',
                        'password' => trim($_POST['password']),
                        'confirm_password' =>  trim($_POST['confirm_password']),
                        'fname_err' => '',
                        'lname_err' => '',
                        'email_err' => '',
                        'contact_err' => '',
                        'jobrole_err' => '',
                        'bio_err' => '', 
                        'password_err' => '',
                        'confirm_password_err' => ''     
              ];
                 //Validate
                    if(empty($data ['email'])){
                        $data['email_err'] = 'Please enter an Email Address';
                    } else {
                       if($this->adminModel->findUserByEmail($data['email'])){
                        $data['email_err'] = 'That email Already Exists';       
                       }                
                    }        
                       if(empty($data ['fname'])){
                        $data['fname_err'] = 'Please enter a First Name';
                    }
                       if(empty($data ['lname'])){
                        $data['lname_err'] = 'Please enter a Last Name';
                    }

                        if(empty($data ['contact'])){
                        $data['contact_err'] = 'Please enter a Telephone Number';
                    }
                        if(empty($data ['jobrole'])){
                        $data['jobrole_err'] = 'Please enter a Job Role';
                    }
                        if(empty($data ['bio'])){
                        $data['bio_err'] = 'Please enter a short Bio';
                    }

                       if(empty($data ['password'])){
                        $data['password_err'] = 'Please enter a Password';
                    } else if (strlen($data['password']) < 6){
                           $data['password_err'] = 'Password must be 6 characters';         
                       }

                      if(empty($data ['confirm_password'])){
                        $data['confirm_password_err'] = 'Please confirm your Password';
                    } else {

                        if($data['password'] != $data['confirm_password']){
                            $data['confirm_password_err'] = 'Passwords dont match';
                        }
                      }      
        //Make sure errors are empty
                    if (empty($data['email_err']) &&  empty($data['fname_err']) && empty($data['lname_err']) && empty($data['contact_err']) && empty($data['jobrole_err']) && empty($data['bio_err'])  && empty($data['password_err']) && empty($data['confirm_password_err'])){
             //Hash Password
                $data['password'] = password_hash($data['password'], PASSWORD_DEFAULT);

            //Work With Image      
                $image_path     = $_FILES["fileToUpload"]["name"];
                $temp_file_name = $_FILES["fileToUpload"]["tmp_name"];
                $file_size      = $_FILES["fileToUpload"]["size"];
                $target_dir     = "../public/ProfilePics/ServiceAdvisors/";
                $new_name       = $target_dir.time()."-".rand(1000, 9999)."-".$image_path;
                $upload_ok      = 1;
                $img_file_type  = pathinfo($new_name, PATHINFO_EXTENSION);
                $check_img = getimagesize($temp_file_name);     
                $_POST['image_path'] = $new_name;

                if($check_img == false) {

                    $upload_ok = 0;

                    } else {
                        if($file_size > 500000) {

                            $upload_ok = 0;
                        } else {
                            if($img_file_type != "jpg" && $img_file_type != "png" && $img_file_type != "jpeg" && $img_file_type != "gif") {

                                $upload_ok = 0;
                            } else {
                                if($upload_ok === 0) {

                                } else {
                                    if(move_uploaded_file($temp_file_name, $new_name)){

                         $this->adminModel->addnew($data);
                         redirect ('administrator/serviceadvisors');
                       }
                else {
                           die();
                       }
                  }
                 }

             }         
                       };

                    } else {              
                        $this->view('administrator/addnew', $data);
                    }      
                } else {
                //ReLoad Form and keep details
              $data = [
                  'fname' => '',
                  'lname' => '',
                  'email' => '',
                  'contact' => '',
                  'jobrole' => '',
                  'bio' => '',
                  'password' => '',
                  'confirm_password' => '',
                  'fname_err' => '',
                  'lname_err' => '',
                  'email_err' => '',
                  'contact_err' => '',
                  'jobrole_err' => '',
                  'bio_err' => '',
                  'password_err' => '',
                  'confirm_password_err' => ''

              ];
                    $this->view('administrator/addnew', $data);
                }       
            }

        }
这是我的表格,我不打算发布所有表格,因为我知道有问题的地方

<fieldset class="form-group floating-label-form-group mb-1">
<label for="fileToUpload">Upload Profile Pic: <sup>*</sup></label>
<input type="file" name="fileToUpload" class="form-control round" value="<?php echo 
$data['fileToUpload'];?>" accept="image/*" >
 <span class="invalid-feedback"><?php echo $data['fileToUpload_err'];?></span>
 </fieldset>

上传个人资料图片:*
Liek在前面提到,它是将图像路径放入模型中,以便我可以将其上载到db,图像保存在正确的文件夹中,只是没有发送图像路径


非常感谢您的任何帮助

看起来您正在设置$POST数组中的图像路径,但在$data数组中应该设置该路径。我已在数据中设置了该路径,但它引发了另一个错误,我将很快再次尝试,并让您知道我在HI Rob中遇到的错误,以便让您知道我终于对其进行了排序,愚蠢的是,如果您查看一下我的模型代码中的查询行,就会发现:image\u path值后面缺少逗号:哦(啊,是这些小事让你着迷!很高兴你明白了。
<fieldset class="form-group floating-label-form-group mb-1">
<label for="fileToUpload">Upload Profile Pic: <sup>*</sup></label>
<input type="file" name="fileToUpload" class="form-control round" value="<?php echo 
$data['fileToUpload'];?>" accept="image/*" >
 <span class="invalid-feedback"><?php echo $data['fileToUpload_err'];?></span>
 </fieldset>