お世話になります。
先日、デザイナーと全てのサイト及びフォーム関連を完全にテンプレート化しようという
話になり、Smartyを導入しフォーム関連に取り掛かっていたところ、テンプレートファイルの
内容を書き換えてリロードしても最新の内容がブラウザへ反映されませんでした。
PHPファイルをサーバへ上書きアップロードをすると最新の内容が反映されます。
しかし、デザイナーからしてみると細部の調整等を行う際にその都度PHPファイルも
アップロードするのが非常に面倒くさいので、テンプレートファイルのみをアップした
タイミングで最新の内容が反映する方法を1週間ほど調べてみたのですが、
上手く行かずに難儀しております。
この現象が発生するのは、セッションを使用したフォーム関連のページのみです。
「 templates_c 」ディレクトリのキャッシュファイルを削除しても変更されません。
Smartyの設定自体はデフォルトのままです。「 caching 」も0のままで、特に変更は
しておりません。
検証を手順として説明させていただくと、
1、テンプレートファイルのHTMLソースを変更してアップロード。
2、ブラウザで確認すると、変化無し。
3、「 templates_c 」のキャッシュファイルは更新されていて、中身を確認すると正常にコンパイルされている。
4、大元のPHPファイルを上書きアップロードしてブラウザをリロードすると、HTMLソースの変更内容が正常に反映される。
以上の事から、PHPのスクリプトに問題があるのかと思いましたので、勝手ながらスクリプトの
大まかな内容を記載させていただきます。
--- ■ ココから-------------------------------------------
// セッションの開始
session_cache_limiter("public");
session_start();
require("Smarty.class.php");
define("DEF_ACT", "entry"); // 初期アクセスしたページ
define("MAIL_TO", "アカウント@ドメイン"); // 送信先
define("subject", "テスト送信"); // 件名
// Smartyを走らせる
$smarty = new Smarty();
$smarty->template_dir = "./templates";
$smarty->compile_dir = "./templates_c";
// データをPOSTメソッドで
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$param = cnv_formstr($_POST);
}
// 各ページの判別処理を行い
$act = isset($param["act"]) ? $param["act"] : DEF_ACT;
$screen_function_name = "screen_" . $act;
if (!function_exists($screen_function_name)) {
exit();
}
call_user_func($screen_function_name, $param);
$temp_name = $act . ".html";
// テンプレートを表示する
$smarty->assign("url", $_SERVER["PHP_SELF"]);
$smarty->display($temp_name);
// =========================================================
// 入力画面( 初期アクセスしたページ )
// =========================================================
function screen_entry($param) {
~ 処理内容 ~
return TRUE;
}
// =========================================================
// 確認画面( 入力チェックが通った場合 )
// =========================================================
function screen_conf($param) {
global $smarty;
~ 処理内容 ~
return TRUE;
}
// =========================================================
// 送信完了画面
// =========================================================
function screen_submit($param) {
global $smarty;
~ 処理内容 ~
return TRUE;
}
// =========================================================
// 入力データチェック( 未入力等があった場合 )
// =========================================================
function screen_data($param) {
global $smarty;
~ 処理内容 ~
}
// =========================================================
// 配列を一括変換する
// =========================================================
function cnv_formstr($array) {
~ 処理内容 ~
}
--- ■ ココまで-------------------------------------------
PHPのバージョンは、5.3.3です。
因みにこのスクリプトでは、データベースは使用しておりません。
同様の経験をされて解決された方がおられましたら、ご教示の程
どうぞよろしくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
ご質問斜め読みしかしてませんが。
。session_cache_limiter("public");
が犯人では?
テンプレートと同時にPHPを入れ替えないと反映されないとか聞いたことないっす。
多分 ブラウザが以前のキャッシュ使ってるだけだと思うっす。
早速ご回答をいただき、ありがとうございます。
session_cache_limiter("public");
が犯人でした。。。
ここ数日、様々な検証をしている中でsession_cache_limiter関数を
はずして検証・・・という事もやってみたのですが、
何故か上手くいかないなという感じでしたが、勘違いしていたようです。
無事ブラウザへは、大元のPHPファイルをUPしなくても
テンプレートの変更内容が反映されました。
session_cache_limiter関数は、全ての実装が完了した後に最後に
移植する方向で考えます。
本当にありがとうございました。非常に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
$filePath = './user_img/' . $...
-
VBでクラウドストレージにア...
-
ファイルサイズがpost_max_size...
-
大容量のファイルアップロード...
-
ファイルのアップロードで、フ...
-
php,file_get_contentsの結果が...
-
DUMPした巨大SQLファイルをイン...
-
movabletypeでPDFファイルをア...
-
unlinkでどうしてもファイルが...
-
javaでの質問です。
-
youtubeに音声のみのmp4ファイ...
-
ファイルのアップロードを行う...
-
one drive のアップロード失敗...
-
move_uploaded_fileについて
-
SmartyでHTMLソースの変更が反...
-
FTPClientで転送結果(OKかFAIL)
-
「クラウドにアップロード」」...
-
フォントの色を変えるには?
-
透過PNGが透過されない!!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
youtubeに音声のみのmp4ファイ...
-
ftpでアップロードが出来ない
-
VBでクラウドストレージにア...
-
ファイルサイズがpost_max_size...
-
ファイルをGET送信でアップロー...
-
FTPClientで転送結果(OKかFAIL)
-
10MB以内のJPG画像
-
「クラウドにアップロード」」...
-
どうして送信されないのでしょ...
-
BASP21のFTPで日本語ファイル名...
-
php,file_get_contentsの結果が...
-
aws cloud9というものを使って...
-
PHPにてWebサーバー内データを...
-
全角ファイル名をアップロード...
-
■PukiWiki アップロード可能な...
-
move_uploaded_fileについて
-
Dreamweaver ドリームウィーバ...
-
PHPMailerで大きなファイルが送...
-
ファイルのアップロードでパス...
おすすめ情報