私は自分の Web サイトにギャラリーを作成しており、いくつかのテスト アカウントを作成して、それぞれで機能することを確認しています。しかし、画面とギャラリーのデータベースに画像をアップロードできるのは、1 人のユーザーだけであり、他のユーザーにはアップロードできないようです。これはなぜですか - 各ユーザーには独自のセッションがあるため、非常に混乱しています。私のコードを見てください。私の考えでは、私のモデルの putGalleryImage 関数に何か問題があると思いますが、実際に突き出ているものは何もありません。画像のアップロードが発生したときのアップロード機能のelseステートメントにもあると思いますが、特定の1人のユーザーだけで機能する場合、他のユーザーが機能しないのはなぜですか?
コントローラ:
class Gallery extends CI_Controller {
function __construct()
{
// Call the parent construct
parent::__construct();
$this->load->model("profiles");
$this->load->model("gal_model");
$this->load->helper(array('form', 'url'));
$this->gallery_path = 'web-project-jb/assets/gallery/';
}
function upload()
{
$config = array(
'allowed_types' =>'gif|jpg|jpeg|png',
'upload_path' => $this->gallery_path,
'max_size' => 10000,
'max_width' => 1024,
'max_height' => 768);
$this->load->library('upload', $config);
$username = $this->session->userdata('username');
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
$username = $this->session->userdata('username');
$viewData['username'] = $username;
$viewData['images'] = $this->gal_model->getGalleryImage($username);
$this->load->view('shared/header');
$this->load->view('gallery/galtitle', $viewData);
$this->load->view('shared/nav');
$this->load->view('gallery/galview', $error, $viewData, array('error' => ' ' ));
$this->load->view('shared/footer');
}
else
{
$file_data = $this->upload->data();
$galleryImage = $this->gallery_path.$file_data['file_name'];
$data['galleryImage'] = $this->gallery_path.$file_data['file_name'];
$this->username = $this->session->userdata('username');
$images = $this->session->userdata('images');
$data['images'] = $images;
$this->gal_model->putGalleryImage($username, $galleryImage);
$viewData['username'] = $username;
$viewData['images'] = $this->gal_model->getGalleryImage($username);
var_dump($galleryImage);
$username = $this->session->userdata('username');
$this->load->view('shared/header');
$this->load->view('gallery/galtitle', $viewData);
$this->load->view('shared/nav');
$this->load->view('gallery/galview', $viewData);
$this->load->view('shared/footer');
}
}
function index()
{
$username = $this->session->userdata('username');
$this->load->library('upload');
$data['gal_model'] = $this->gal_model->getGalleryImage($username);
$viewData['username'] = $username;
$viewData['images'] = $this->gal_model->getGalleryImage($username);
$this->load->view('shared/header');
$this->load->view('gallery/galtitle', $viewData);
$this->load->view('shared/nav');
$this->load->view('gallery/galview', $viewData, array('error' => ' ' ));
$this->load->view('shared/footer');
}
}
モデル:
class Gal_model extends CI_Model
{
var $gallery_path;
function Gal_model()
{
parent::__construct();
}
function exists($username)
{
$this->db->select('*')->from("gallery")->where('user', $username);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
return true;
/*
echo "user $user exists!";
$row = $query->row();
echo " and his profileimage is $row->profileimage";
*/
}
else
{
return false;
//echo "no such user as $user!";
}
}
function putGalleryImage($username, $galleryImage)
{
$record = array('user' => $username, 'galleryimage' => $galleryImage);
$this->session->set_userdata($galleryImage);
if ($this->exists($username))
{
$this->db->where('user', $username)->insert('gallery', $record);
}
}
function getGalleryImage($username)
{
$this->db->select('*')->from('gallery')->where('user', $username);
$imagesSet= $this->db->get();
$images = array();
foreach ($imagesSet->result() as $row)
{
$images[] = array('imageid' => $row->imageid,
'user' => $row->user,
'galleryimage' => $row->galleryimage);
}
return $images;
}
}
意見:
<div id="gallery">
<?php if (isset($images) && is_array($images)):
foreach($images as $galleryImage):
$link = $galleryImage['galleryimage'] ?>
<div class="thumb">
<img src="<?php echo base_url().$link; ?>" width='150' height='100'/>
<br>
</div>
<?php endforeach; else: ?>
<div id = "blank_gallery">Please upload an Image</div>
<?php endif; ?>
<?=form_open_multipart('gallery/upload');?>
<?=form_upload("userfile");?>
<?=form_submit('upload', 'Upload')?>
<?=form_close();?>
<?php if (isset($error)) echo $error;?>
助けてくれてありがとう