「致命的なエラー: 28 行目の /data/home/.../.../.../.../upload_image.php の非オブジェクトでメンバー関数 upload_image() を呼び出します」というエラーが表示されます. 関数 upload_image() は image.func.php ファイルにあり、エラーが見つかりません。upload_image() 関数はサムネイル関数であり、画像ハンドラー関数でもあるため、エラーが発生する可能性はかなりあると思います。エラー処理から詳細を取得しようとしていますが、この致命的なエラー以外は取得できません。
upload_image 関数は次のようになります。
class Images{
private $db;
public function __construct($database) {
$this->db = $database;
}
public function upload_image($image_temp, $image_ext, $album_id) {
global $thumbs;
$image_name = $_FILES['image'] ['name'];
$time = time();
$query = $this->db->prepare("INSERT INTO `images` VALUES (?, ?, ?, ?, ?, ?)");
$query->bindValue(1, $image_id);
$query->bindValue(2, $image_name);
$query->bindValue(3, $_SESSION['id']);
$query->bindValue(4, $album_id);
$query->bindValue(5, $time);
$query->bindValue(6, $image_ext);
try{
$query->execute();
$image_id = $this->db->lastInsertId();
$image_file = $image_id.'.'.$image_ext;
move_uploaded_file($image_temp, 'uploads/'.$album_id.'/'.$image_file);
$thumbs->create_thumb('uploads/'.$album_id.'/', $image_file, 'uploads/thumbs/'.$album_id.'/');
$source_image = 'uploads/'.$album_id.'/'.$image_file;;
$destination = 'uploads/'.$album_id.'/'.$image_file;
$tn_w = 900;
$tn_h = 600;
$quality = 100;
$wmsource = 'watermark.png';
$this->image_handler($source_image,$destination,$tn_w,$tn_h,$quality,$wmsource);
}catch(PDOException $e){
die($e->getMessage());
}
}
}
ここでは、try および catch ブロックを使用してエラーに近づこうとしています。
init.php は次のようになります。
session_start();
require 'connect/database.php';
require 'classes/users.php';
require 'classes/general.php';
require 'classes/album.func.php';
require 'classes/image.func.php';
require 'classes/thumb.func.php';
require 'classes/bcrypt.php';
error_reporting(1);
$users = new Users($db);
$general = new General();
$albums = new Albums($db);
$Images = new Images($db);
$bcrypt = new Bcrypt(12);
$thumbs = new Create_thumb();
$errors = array();
if ($general->logged_in() === true) {
$user_id = $_SESSION['id'];
$user = $users->userdata($user_id);
}
エラー報告が1に立っています。
エラーに近づく可能性は他にもありますか? ありがとう...