Mac、MAMPを使ってphp+mysqlにてデータベースを使った管理認証のページを制作しています。
その際下記のようなエラーが出て困っています。
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /Applications/MAMP/htdocs/home/top.php on line 8
ソースはこちら
<?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;
require_once("Auth/Auth.php");
require_once("HTML/QuickForm.php");
$params['dns'] = _DNS;
$params['table'] = _ID_Pass;
$params['usernamecol'] = _DB_USERNAMECOL;
$params['passwordcol'] = _DB_PASSWORDCOL;
$params['cryptType'] = "MD5";
$auth = new Auth("DB", $params);
$auth->start();
if(suth->getAuth(){
$smarty->assign("title","管理ページ");
}else{
$smarty->assign("title","ID、パスワードをご確認ください。");
$file = "jls_login.tpl";
$smarty->display($file);
?>
テンプレートとしてsmartyを使っているのが原因なのか、データベースが悪いのか・・・
回答よろしくお願いいたします。
手順1)まずはT_OBJECT_OPERATORを以下の表に照らし合わせると、クラスとオブジェクトの関係が成り立っていないのが原因ということが判ります。
パーサトークンの一覧
http://php.s3.to/man/tokens.html
手順2)
次に問題となっている8という行を中心にした部分だけを抜き出して、テストを実施してみて、本当の問題点が8行目なのかどうかを見極めます。
require_once (_SMARTY_LIBS_DIR."Smarty.class.php");
$smarty = new Smarty;
$smarty->template_dir = _SMARTY_TEMPLATES_DIR;
ではどうか
require_once (_SMARTY_LIBS_DIR."Smarty.class.php");
$smarty = new Smarty;
$smarty->template_dir = _SMARTY_TEMPLATES_DIR;
$smarty->compile_dir = _SMARTY_TEMPLATES_C_DIR;
ではどうか、、、
といったことの繰り返し、、、、プログラム初心者さんということで、ズバリではなく、解決までのステップを回答しましたが、いかがでしょう。。。。
syntaxエラーなので、何か書き間違えだと思います。
エラー文に何行目にエラーがあるか書いているのでそこを、もしくはそこの前付近を見ると原因がわかります。
誤字脱字だと思いますが、上のソースでは色々抜けています。
直したものをペーストしておきますので、もう一度syntax checkしてみてください。
<?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;
require_once("Auth/Auth.php");
require_once("HTML/QuickForm.php");
$params['dns'] = _DNS;
$params['table'] = _ID_Pass;
$params['usernamecol'] = _DB_USERNAMECOL;
$params['passwordcol'] = _DB_PASSWORDCOL;
$params['cryptType'] = "MD5";
$auth = new Auth("DB", $params);
$auth->start();
if($auth->getAuth()){
$smarty->assign("title","管理ページ");
}else{
$smarty->assign("title","ID、パスワードをご確認ください。");
}
$file = "jls_login.tpl";
$smarty->display($file);
?>
dummy url
ありがとうございます。
画面の表示がされました。
まだまだエラー表示とかありますが、今まで真っ白だった画面にフォーム等が表示されました。