2017-08-30 3 views
0

こんにちは私は、ブログの名前、画像、descriptionを含むブログを挿入することができるページを持っています。ブログ画像の必須オプションは、データベースに投稿を挿入することができません。表示されているブログは正常に挿入されましたが、私のデータベースにはブログが挿入されていません。イメージの必須オプションを削除すると、mysqlデータベースに投稿を挿入できません

コントローラー:

function addblogs() 
{ 
    $this->load->library('form_validation'); 
    $this->form_validation->set_error_delimiters('<br /><span class="error"> ','</span>'); 
    $this->form_validation->set_rules('blog_title','Blog Title'); 
    $this->form_validation->set_rules('description','Blog Description');   
    if($this->form_validation->run()== FALSE) 
    {  
    $data['mainpage']='blogs'; 
    $data['mode']='add'; 
    $this->load->view('templates/template',$data); 
    } 
    else 
    { 
     $this -> blogs_model -> insertblogs(); 
     $this->flash->success('<h2>blogs Added Successfully!</h2>'); 
     redirect('blogs'); 
    } 
} 

モデル:

function insertblogs() 
{    
    $data=array(  
    'blog_title'=>$this->input->post('blog_title'), 
    'description'=>$this->input->post('description'),  
    ); 
    if ($_FILES AND $_FILES['image_path']['name']) 
      { 
       $file_name = $this->do_upload2(); 
       if(is_array($file_name)){ 
        $error['imageerror'] = $file_name['error']; 
       } 
       else 
       $data['image_path']=$file_name; 
      } 
      if(!isset($data['image_path']) && !isset($error['imageerror'])) 
      $error['imageerror'] ="Please Upload an image"; 
      if(isset($error))return $error;  
      $this->db->insert('blogs',$data); 

} 

function do_upload2() 
{ 
    $config = array(
     'allowed_types' => 'jpg|jpeg|gif|png', 
     'upload_path' => $this->image_path, 
     'max_size' => 20000, 
     'maintain_ratio'=>FALSE, 
     'width' => 90, 
     'height' => 75 
    ); 
    $this->load->library('upload', $config); 
    if(!$this->upload->do_upload('image_path')) 
    { 
     return $error = array('error' => $this->upload->display_errors()); 
    } 
    else 
    { 
     $image_data = $this->upload->data(); 
     $config = array(
     'source_image' => $image_data['full_path'], 
     'new_image' =>$this->image_path . '/thumbs', 
     'maintain_ratio' => FALSE, 
     'width' => 90, 
     'height' => 75 
     ); 
     $this->load->library('image_lib', $config); 
     $this->image_lib->resize(); 
     $filename =time().preg_replace('/[^A-Za-z0-9\s.\s-]/', '_', $image_data['file_name']); 
     rename($image_data['full_path'],$image_data['file_path'].$filename); 
     rename($image_data['file_path'].'thumbs/'.$image_data['file_name'],$image_data['file_path'].'thumbs/'.$filename); 
     return $filename; 
    } 
} 

ビュー:

<script type="text/javascript"> 
      $(document).ready(function() { 
      $('#submit').click(function(){ 
        if((jQuery.trim($('#image_path').val())=='')) 
        { 
         alert("Please select image"); 
         $('#image_path').focus(); 
         return false; 
        } 
       }); 
      }); 
     </script>   
    <div class="full_w"> 
    <div class="h_title"> 
     <div class="lefttitle fl"> 
      Add Blogs 
     </div> 
     <div class="rightbutton fr"> 
      <a class="button cancel" href="<?php echo site_url()?>/blogs">Cancel</a> 
     </div> 
    </div> 
    <?php 
     $form_attributes = array('name'=>'adds', 'id'=>'adds', 'enctype' => "multipart/form-data"); 
     echo form_open('blogs/addblogs',$form_attributes); 
    ?> 

    <div class="element"> 
     <label for="blogtitle"><font color ="black">Blog Title</font></label> 
     <input class="text err" type="text" name="blog_title" id="blog_title" value="<?php echo set_value('blog_title');?>"/>    
    </div>   
    <div class="element"> 
     <label for="description"><font color ="black">Blog Description</font></label> 
     <textarea name="description" class="ckeditor" rows="4" cols="173"></textarea> 
    </div> <br/> 

    <div class="element"> 
     <label><font color ="black">Select Image:</font></label> 
     <input class="err" type="file" name="image_path" id="image_path"/>   
    </div><br/> 

    <div align="center"> 
      <input type="submit" id="submit" value="Submit" /> 
    </div> 
    <div class="clear"></div> 
    <?php echo form_close();?> 
    </div> 
    </div> 
    <div class="clear"></div> 

私は、インサートのブログセクションからのCodeIgniter PHP

+0

実際に操作が成功したかどうかを確認するコードでは、すべてのケースで「ブログが正常に追加されました」と表示されません。例えばinsertBlogs()はエラーを返す可能性がありますが、addblogs()のコードはそのエラーをチェックしません。私は、$ this-> db-> insert( 'blogs'、$ data)の可能性があるということも知っているので、コードを見ることはできませんが、エラーを投げる。あなたはそれをチェックしていません。基本的にコード内にはエラー処理はありません。 – ADyson

+0

@ADysonビューからスクリプトを削除した場合、ブログはデータベースに挿入されていません – user8001297

+0

はい、あなたはすでにそれを言っています。あなたのポイントは何ですか?私は実際にあなたがしていないエラーをチェックする必要があることを伝えています。私は見ることができないエラーをデバッグすることはできません。 – ADyson

答えて

1

を使用していますが、今そのワットの3行をコメント罰金を言います。

if ($_FILES AND $_FILES['image_path']['name']) 
     { 
      $file_name = $this->do_upload2(); 
      if(is_array($file_name)){ 
       $error['imageerror'] = $file_name['error']; 
      } 
      else 
      $data['image_path']=$file_name; 
     } 
     //if(!isset($data['image_path']) && !isset($error['imageerror'])) 
     //$error['imageerror'] ="Please Upload an image"; 
     //if(isset($error))return $error;  
関連する問題