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
実際に操作が成功したかどうかを確認するコードでは、すべてのケースで「ブログが正常に追加されました」と表示されません。例えばinsertBlogs()はエラーを返す可能性がありますが、addblogs()のコードはそのエラーをチェックしません。私は、$ this-> db-> insert( 'blogs'、$ data)の可能性があるということも知っているので、コードを見ることはできませんが、エラーを投げる。あなたはそれをチェックしていません。基本的にコード内にはエラー処理はありません。 – ADyson
@ADysonビューからスクリプトを削除した場合、ブログはデータベースに挿入されていません – user8001297
はい、あなたはすでにそれを言っています。あなたのポイントは何ですか?私は実際にあなたがしていないエラーをチェックする必要があることを伝えています。私は見ることができないエラーをデバッグすることはできません。 – ADyson