🔰【HTML・PHP】画像が更新されない問題を解決したい

質問内容

初めて質問させていただきます。
phpとHTMLで「オーダーメイドのジュエリーの完成予想図を閲覧できる」システムを作っています。
MAMP上ではうまく動いていたのですが、エックスサーバー上では完成予想図が更新されない問題が起こっています。

【解決方法と解説】

を教えていただきたいです。よろしくお願いいたします。

問題の詳細

30秒ほどの現状の動画をGドライブに上げました。
MAMPの場合
エックスサーバーの場合

動画のようにMAMPでは「完成図を見る」を押すと画像が更新されます。しかし、エックスサーバーでは「完成図を見る」を押しても更新されません。「完成図を見る」を押した後にスーパーリロードをすると画像が更新されます。

エラーメッセージ

なし

該当のソースコード(抜粋)

PHP

//画像合成//背景画像作成(リング)$ring_image = imagecreatefrompng($ring_array['ring_file_path']);//背景画像のサイズ取得(リング)(元々の画像のサイズをそのまま取得)$imagesize = getimagesize($ring_array['ring_file_path']);$ring_w = $imagesize[0];//[0]は画像の横幅を取得$ring_h = $imagesize[1];//[1]は画像の高さを取得 //石1// コピー元画像読み込み(石)$stone1_image = imagecreatefrompng($stone1_array['stone_file_path']);// コピー元画像のサイズ取得(石)$imagesize = getimagesize($stone1_array['stone_file_path']);$stone1_w = $imagesize[0];//[0]は画像の横幅を取得$stone1_h = $imagesize[1];//[1]は画像の高さを取得// コピー元画像の配置後のサイズ計算$resize_stone1_w = $ring_array['stone1_w'];$resize_stone1_h = $ring_array['stone1_h'];// リサイズしてコピーimagecopyresampled( $ring_image, // コピー先の画像 $stone1_image, // コピー元の画像 $ring_array['stone1_x'], // コピー先の x 座標 $ring_array['stone1_y'], // コピー先の y 座標。 0, // コピー元の x 座標 0, // コピー元の y 座標 $resize_stone1_w, // コピー先の幅 $resize_stone1_h, // コピー先の高さ $stone1_w, // コピー元の幅 $stone1_h); // コピー元の高さ //画像の保存imagepng($ring_image, $jewelry_image);rename($jewelry_image, "images/jewelry_image/jewelry_image.png");

HTML

<img class="jewelry_image" src="<?php echo "{$jewelry_image_path}"; ?>" alt="">

【全体のプログラムの流れ】

  1. フォームから見たいリング、宝石の名前がPOSTされる
  2. POSTされたデータを元にDB、画像パスを参照し画像を合成
  3. 「images/jewelry_image/jewelry_image.png」の画像を2で合成した画像に書き換える
  4. 「images/jewelry_image/jewelry_image.png」を完成図としてHTMLで表示する

【参考コード】
https://dev-lib.com/php-gd-imagecopy/
https://www.youtube.com/watch?v=yvK9z-e5rMo

試したこと

キャッシュの問題だと考え以下のことを試しました。

  • エックスサーバーの「ブラウザキャッシュ設定」、「サーバーキャッシュ設定」でキャッシュをOFFにした→変化なし

  • htmlの<head>に以下のコードを挿入した→変化なし

HTML

<meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="0">

  • htmlの画像表示部分を以下のように変更→画像が表示されなくなる

HTML

<img class="jewelry_image" src="<?php echo "{$jewelry_image_path} "."?". date("YmdHis"); ?>" alt=""/>

【参考コード】
https://nabewakashi.com/solve-image-cache-problem

補足

私のプログラミング経験は半年ほどです。
キャッシュの理解が甘いのかもしれません、、、
上記で分かりにくいところがありましたらお気軽に質問してください!!

よろしくお願いいたします。

コメントを投稿

0 コメント