xserver Smarty PHP+MySQL
xserver Smarty PHP+MySQL
xserver(レンタルサーバー)でSmartyのtplが読み込まれません。
Xserver(レンタルサーバー)環境
MySQL5 バージョン:5.0.77
MySQL5 ホスト名:xxx.xserver.jp
PHP Version 5.3.3
include_path .:/usr/share/php53/pear
:/usr/share/php
Xserver PHP関連の仕様一覧
PEARインストール済み
<インストール済みライブラリ>
・Archive_Tar
・Auth
・Console_Getopt
・DB
・HTML_Common
・HTML_QuickForm
・HTTP
・HTTP_Header
・HTTP_Download
・Mail
・Net_SMTP
・Net_Socket
・Pager
・PEAR
・XML_Parser
・XML_RPC
・Structures_Grap
データベースは同じくXserverに設置されているphpmyadmin(MySQL5)で作成しました。
/xxx.xsrv.jp/内に
【php_libs】
[config]
・config.inc.php
[module]
・build_screen.inc.php
・menu.inc.php
・MYDB.inc.php
・sub.inc.php
[smarty]
・cache
・configs
・libs
・templates
・templates_c
【public_html(DocumentRoot)】
・testsmarty.php
・testsmarty.tpl
を置いています。
以下のコードでエラーがでます。
Warning: Smarty error: unable to read resource: "testsmarty.tpl" in /home/xxx/xxx.xsrv.jp/php_libs/smarty/libs/Smarty.class.php on line 1088
どこが間違っているのか教えて下さい。
●testsmarty.php
<?php
$documentroot = dirname( __FILE__) . '/';
require_once $documentroot . '../php_libs/config/config.inc.php';
require_once( _SMARTY_LIBS_DIR . "Smarty.class.php");
$smarty = new Smarty;
$smarty->template_dir = _SMARTY_TEMPLATES_DIR;
$smarty->compile_dir = _SMARTY_TEMPLATES_C_DIR;
$smarty->config_dir = _SMARTY_CONFIG_DIR;
$smarty->cache_dir = _SMARTY_CACHE_DIR;
$smarty->assign("title", "タイトル名");
$file = 'testsmarty.tpl';
$smarty->display($file);
?>
●testsmarty.tpl
{$title}
●config.inc.php
<?php
//----------------------------------------------------
// デバッグ表示 true / デバッグ表示オフfalse
//----------------------------------------------------
// define("_DEBUG_MODE", true);
define("_DEBUG_MODE", false);
//----------------------------------------------------
// データベース関連
//----------------------------------------------------
define("_DB_USER", "xxx_sample");
define("_DB_PASS", "password");
define("_DB_HOST", "tcp+xxx.xserver.jp");
define("_DB_NAME", "xxx_sampledb");
define("_DB_TYPE", "mysqli");
define("_DSN", _DB_TYPE . '://' . _DB_USER . ':' . _DB_PASS . '@' . _DB_HOST . '/' . _DB_NAME);
//----------------------------------------------------
// 認証関連
//----------------------------------------------------
// 会員認証に使うテーブル名
define("_DB_MEMBER_TB", "m_member");
// 管理者認証に使うテーブル名
define("_DB_SYSTEM_TB", "m_system");
// ユーザー名を格納するカラム名
define("_DB_USERNAMECOL", "username");
// パスワードを格納するカラム名
define("_DB_PASSWORDCOL", "password");
//----------------------------------------------------
// 会員・管理者 処理分岐用
//----------------------------------------------------
// 会員用フラッグ
define("_MEMBER_FLG", false);
// 管理者フラッグ
define("_SYSTEM_FLG", true);
//----------------------------------------------------
// セッション名
//----------------------------------------------------
// 会員用セッション名
define("_MEMBER_SESSNAME", "PHPSESSION_MEMBER");
// 管理者用セッション名
define("_SYSTEM_SESSNAME", "PHPSESSION_SYSTEM");
//----------------------------------------------------
// ファイル設置ディレクトリ
//----------------------------------------------------
//$smarty->○○○を使わない場合下記で表示されました。
define( "_PHP_LIBS_DIR", "/home/xxx/xxx.xsrv.jp/php_libs/");
// 設定ファイル
define( "_CONFIG_DIR", _PHP_LIBS_DIR . "config/");
// 機能ファイル
define( "_MODULE_DIR", _PHP_LIBS_DIR . "module/");
//----------------------------------------------------
// Smarty関連設定
//----------------------------------------------------
// Smartyのlibsディレクトリ
define( "_SMARTY_LIBS_DIR", _PHP_LIBS_DIR . "smarty/libs/");
// Smartyのテンプレートファイルを保存したディレクトリ
define( "_SMARTY_TEMPLATES_DIR", _PHP_LIBS_DIR . "smarty/templates/");
// Smartyのlibsディレクトリ Webサーバから書き込めるようにします。、
define( "_SMARTY_TEMPLATES_C_DIR", _PHP_LIBS_DIR . "smarty/templates_c/");
// Smartyのlibsディレクトリ
define( "_SMARTY_CONFIG_DIR", _PHP_LIBS_DIR . "smarty/configs/");
// Smartyのlibsディレクトリ Webサーバから書き込めるようにします。、
define( "_SMARTY_CACHE_DIR", _PHP_LIBS_DIR . "smarty/cache/");
?>
お礼
回答ありがとうございます。 / usr / local / php5 / lib / php.iniの short_open_tag = Onですよね。 実は最初にそれを直してみたんですが、 しばらく、変化が無かったんです。 そして、いろいろ弄って、 さっき確認したら、エラーメッセージが!!/(^o^)\ 3つのページを操作していたんですが、 1つは Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in /usr/local/apache2/htdocs/lib/db.lib on line 36 E_conne=Access denied for user 'root'@'localhost' (using password: YES)] 2つ目は Notice: Use of undefined constant roop - assumed 'roop' in /usr/local/apache2/htdocs/trivia/main.tpl on line 29 Notice: Use of undefined constant roop - assumed 'roop' in /usr/local/apache2/htdocs/trivia/main.tpl on line 51 Notice: Undefined index: roop in /usr/local/apache2/htdocs/trivia/main.tpl on line 51 3つ目はOKでした。 なんか余分な事までしてしまった・・・・・?!;;
補足
追記です。その後、、、 roopに””つけるのは分かるのですが、 mysqlのパスワードがわからず、 /usr/local/apache2/htdocs/lib/db.libの36行めは function conne(){ $this -> db_con = mysql_connect($this->db_host,$this->db_name,$this->db_pass); if($this -> db_con === false){ print("E_conne=".mysql_error()."]"); return false; } } Notice: Undefined index: roop in /usr/local/apache2/htdocs/trivia/main.tpl の 51行めは $page = new send_page(); $page -> sender($_GET["roop"],$hit_count_send,$hit_count,"index.php",0); echo <<<___ <div align='center'> ___; で、ついでにこのページは文字化けも、、、