バージョン選択

フォーラム

メニュー

オンライン状況

24 人のユーザが現在オンラインです。 (17 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 24
もっと...

サイト内検索

質問 > フロント機能 > xamppでインストールする時にParse エラーが出ます

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
NADEMO
投稿日時: 2009/10/8 16:28
対応状況: −−−
常連
登録日: 2009/10/5
居住地: 品川
投稿: 50
xamppでインストールする時にParse エラーが出ます
現在、Xamppを使いながらEC-cube2.4.1をインストールしようと思っています。
全てのダウンロードを終え、http://localhost/eccube/html/installへアクセスしたところ、
「Parse error: syntax error, unexpected ';', expecting T_FUNCTION in C:\xampp\htdocs\eccube\data\class\util\SC_Utils.php on line 2018」と出ました。
「SC_Utils.php(下記参照)」を確認しても、間違いがあるとは思えません。どうしたらよいでしょうか。
<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
*
* http://www.lockon.co.jp/
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

/**
* 各種ユーティリティクラス.
*
* 主に static 参照するユーティリティ系の関数群
*
* :XXX: 内部でインスタンスを生成している関数は, Helper クラスへ移動するべき...
*
* @package Util
* @author LOCKON CO.,LTD.
* @version $Id:SC_Utils.php 15532 2007-08-31 14:39:46Z nanasess $
*/
class SC_Utils {

/**
* サイト管理情報から値を取得する。
* データが存在する場合、必ず1以上の数値が設定されている。
* 0を返した場合は、呼び出し元で対応すること。
*
* @param $control_id 管理ID
* @param $dsn DataSource
* @return $control_flg フラグ
*/
function sfGetSiteControlFlg($control_id, $dsn = "") {

// データソース
if($dsn == "") {
if(defined('DEFAULT_DSN')) {
$dsn = DEFAULT_DSN;
} else {
return;
}
}

// クエリ生成
$target_column = "control_flg";
$table_name = "dtb_site_control";
$where = "control_id = ?";
$arrval = array($control_id);
$control_flg = 0;

// クエリ発行
$objQuery = new SC_Query($dsn, true, true);
$arrSiteControl = $objQuery->select($target_column, $table_name, $where, $arrval);

// データが存在すればフラグを取得する
if (count($arrSiteControl) > 0) {
$control_flg = $arrSiteControl[0]["control_flg"];
}

return $control_flg;
}

// インストール初期処理
function sfInitInstall() {
// インストールが完了していない時
if(!defined('ECCUBE_INSTALL')) {
if(!ereg('/install/', $_SERVER['PHP_SELF'])) {
// インストールページに遷移させる
header('Location: ./install/');
exit;
} else {
$path = HTML_PATH . "install/index.php";
if(file_exists($path)) {
SC_Utils::sfErrorHeader(">> /install/index.phpは、インストール完了後にファイルを削除してください。");
}
}
}

// 装飾付きエラーメッセージの表示
function sfErrorHeader($mess, $print = false) {
global $GLOBAL_ERR;
$GLOBAL_ERR.="<div style='color: #F00; font-weight: bold; font-size: 12px;"
. "background-color: #FEB; text-align: center; padding: 5px;'>";
$GLOBAL_ERR.= $mess;
$GLOBAL_ERR.= "</div>";
if($print) {
print($GLOBAL_ERR);
}
}

/* エラーページの表示 */
function sfDispError($type) {

require_once(CLASS_EX_PATH . "page_extends/error/LC_Page_Error_DispError_Ex.php");

$objPage = new LC_Page_Error_DispError_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->type = $type;
$objPage->process();
exit;
}

/* サイトエラーページの表示 */
function sfDispSiteError($type, $objSiteSess = "", $return_top = false, $err_msg = "", $is_mobile = false) {
global $objCampaignSess;

require_once(CLASS_EX_PATH . "page_extends/error/LC_Page_Error_Ex.php");

$objPage = new LC_Page_Error_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->type = $type;
$objPage->objSiteSess = $objSiteSess;
$objPage->return_top = $return_top;
$objPage->err_msg = $err_msg;
$objPage->is_mobile = (defined('MOBILE_SITE')) ? true : false;
$objPage->process();
exit;
}

/* 認証の可否判定 */
function sfIsSuccess($objSess, $disp_error = true) {
$ret = $objSess->IsSuccess();
if($ret != SUCCESS) {
if($disp_error) {
// エラーページの表示
SC_Utils::sfDispError($ret);
}
return false;
}
// リファラーチェック(CSRFの暫定的な対策)
// 「リファラ無」 の場合はスルー
// 「リファラ有」 かつ 「管理画面からの遷移でない」 場合にエラー画面を表示する
if ( empty($_SERVER['HTTP_REFERER']) ) {
// TODO 警告表示させる?
// sfErrorHeader('>> referrerが無効になっています。');
} else {
$domain = SC_Utils::sfIsHTTPS() ? SSL_URL : SITE_URL;
$pattern = sprintf('|^%s.*|', $domain);
$referer = $_SERVER['HTTP_REFERER'];

// 管理画面から以外の遷移の場合はエラー画面を表示
if (!preg_match($pattern, $referer)) {
if ($disp_error) SC_Utils::sfDispError(INVALID_MOVE_ERRORR);
return false;
}
}
return true;
}

/**
* 文字列をアスタリスクへ変換する.
*
* @param string $passlen 変換する文字列
* @return string アスタリスクへ変換した文字列
*/
function lfPassLen($passlen){
$ret = "";
for ($i=0;$i<$passlen;true){
$ret.="*";
$i++;
}
return $ret;
}

/**
* HTTPSかどうかを判定
*
* @return bool
*/
function sfIsHTTPS () {
// HTTPS時には$_SERVER['HTTPS']には空でない値が入る
// $_SERVER['HTTPS'] != 'off' はIIS用
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
return true;
} else {
return false;
}
}

/**
* 正規の遷移がされているかを判定
* 前画面でuniqidを埋め込んでおく必要がある
* @param obj SC_Session, SC_SiteSession
* @return bool
*/
function sfIsValidTransition($objSess) {
// 前画面からPOSTされるuniqidが正しいものかどうかをチェック
$uniqid = $objSess->getUniqId();
if ( !empty($_POST['uniqid']) && ($_POST['uniqid'] === $uniqid) ) {
return true;
} else {
return false;
}
}

/* 前のページで正しく登録が行われたか判定 */
function sfIsPrePage(&$objSiteSess, $is_mobile = false) {
$ret = $objSiteSess->isPrePage();
if($ret != true) {
// エラーページの表示
SC_Utils::sfDispSiteError(PAGE_ERROR, $objSiteSess, false, "", $is_mobile);
}
}

function sfCheckNormalAccess(&$objSiteSess, &$objCartSess) {
// ユーザユニークIDの取得
$uniqid = $objSiteSess->getUniqId();
// 購入ボタンを押した時のカート内容がコピーされていない場合のみコピーする。
$objCartSess->saveCurrentCart($uniqid);
// POSTのユニークIDとセッションのユニークIDを比較(ユニークIDがPOSTされていない場合はスルー)
$ret = $objSiteSess->checkUniqId();
if($ret != true) {
// エラーページの表示
SC_Utils_Ex::sfDispSiteError(CANCEL_PURCHASE, $objSiteSess);
}

// カート内が空でないか || 購入ボタンを押してから変化がないか
$quantity = $objCartSess->getTotalQuantity();
$ret = $objCartSess->checkChangeCart();
if($ret == true || !($quantity > 0)) {
// カート情報表示に強制移動する
// FIXME false を返して, Page クラスで遷移させるべき...
if (defined("MOBILE_SITE")) {
header("Location: ". MOBILE_URL_CART_TOP
. "?" . session_name() . "=" . session_id());
} else {
header("Location: ".URL_CART_TOP);
}
exit;
}
return $uniqid;
}

/* DB用日付文字列取得 */
function sfGetTimestamp($year, $month, $day, $last = false) {
if($year != "" && $month != "" && $day != "") {
if($last) {
$time = "23:59:59";
} else {
$time = "00:00:00";
}
$date = $year."-".$month."-".$day." ".$time;
} else {
$date = "";
}
return $date;
}

// INT型の数値チェック
function sfIsInt($value) {
if($value != "" && strlen($value) <= INT_LEN && is_numeric($value)) {
return true;
}
return false;
}

function sfCSVDownload($data, $prefix = ""){

if($prefix == "") {
$dir_name = SC_Utils::sfUpDirName();
$file_name = $dir_name . date("ymdHis") .".csv";
} else {
$file_name = $prefix . date("ymdHis") .".csv";
}

/* HTTPヘッダの出力 */
Header("Content-disposition: attachment; filename=${file_name}");
Header("Content-type: application/octet-stream; name=${file_name}");
Header("Cache-Control: ");
Header("Pragma: ");

if (mb_internal_encoding() == CHAR_CODE){
$data = mb_convert_encoding($data,'SJIS-Win',CHAR_CODE);
}

/* データを出力 */
echo $data;
}

/* 1階層上のディレクトリ名を取得する */
function sfUpDirName() {
$path = $_SERVER['PHP_SELF'];
$arrVal = split("/", $path);
$cnt = count($arrVal);
return $arrVal[($cnt - 2)];
}




/**
* 現在のサイトを更新(ただしポストは行わない)
*
* @deprecated LC_Page::reload() を使用して下さい.
*/
function sfReload($get = "") {
if ($_SERVER["SERVER_PORT"] == "443" ){
$url = ereg_replace(URL_DIR . "$", "", SSL_URL);
} else {
$url = ereg_replace(URL_DIR . "$", "", SITE_URL);
}

if($get != "") {
header("Location: ". $url . $_SERVER['PHP_SELF'] . "?" . $get);
} else {
header("Location: ". $url . $_SERVER['PHP_SELF']);
}
exit;
}

// チェックボックスの値をマージ
function sfMergeCBValue($keyname, $max) {
$conv = "";
$cnt = 1;
for($cnt = 1; $cnt <= $max; $cnt++) {
if ($_POST[$keyname . $cnt] == "1") {
$conv.= "1";
} else {
$conv.= "0";
}
}
return $conv;
}

// html_checkboxesの値をマージして2進数形式に変更する。
function sfMergeCheckBoxes($array, $max) {
$ret = "";
if(is_array($array)) {
foreach($array as $val) {
$arrTmp[$val] = "1";
}
}
for($i = 1; $i <= $max; $i++) {
if(isset($arrTmp[$i]) && $arrTmp[$i] == "1") {
$ret.= "1";
} else {
$ret.= "0";
}
}
return $ret;
}


// html_checkboxesの値をマージして「-」でつなげる。
function sfMergeParamCheckBoxes($array) {
$ret = '';
if(is_array($array)) {
foreach($array as $val) {
if($ret != "") {
$ret.= "-$val";
} else {
$ret = $val;
}
}
} else {
$ret = $array;
}
return $ret;
}

// html_checkboxesの値をマージしてSQL検索用に変更する。
function sfSearchCheckBoxes($array) {
$max = 0;
$ret = "";
foreach($array as $val) {
$arrTmp[$val] = "1";
if($val > $max) {
$max = $val;
}
}
for($i = 1; $i <= $max; $i++) {
if($arrTmp[$i] == "1") {
$ret.= "1";
} else {
$ret.= "_";
}
}

if($ret != "") {
$ret.= "%";
}
return $ret;
}

// 2進数形式の値をhtml_checkboxes対応の値に切り替える
function sfSplitCheckBoxes($val) {
$arrRet = array();
$len = strlen($val);
for($i = 0; $i < $len; $i++) {
if(substr($val, $i, 1) == "1") {
$arrRet[] = ($i + 1);
}
}
return $arrRet;
}

// チェックボックスの値をマージ
function sfMergeCBSearchValue($keyname, $max) {
$conv = "";
$cnt = 1;
for($cnt = 1; $cnt <= $max; $cnt++) {
if ($_POST[$keyname . $cnt] == "1") {
$conv.= "1";
} else {
$conv.= "_";
}
}
return $conv;
}

<省略>

/* デバッグ用 --------------------------------------------------------------------------------*/
function sfPrintR($obj) {
print("<div style='font-size: 12px;color: #00FF00;'>\n");
print("<strong>**デバッグ中**</strong><br />\n");
print("<pre>\n");
//print_r($obj);
var_dump($obj);
print("</pre>\n");
print("<strong>**デバッグ中**</strong></div>\n");
}
}
?>


----------------
ホームページ作成は全てが始めてです。
プロの皆様のお力をお借りしたいです。
宜しくお願いします。

seasoft
投稿日時: 2009/10/8 18:15
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: xamppでインストールする時にParse エラーが出ます
.htaccess は正しく適用されていますか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

NADEMO
投稿日時: 2009/10/9 9:01
対応状況: −−−
常連
登録日: 2009/10/5
居住地: 品川
投稿: 50
Re: xamppでインストールする時にParse エラーが出ます
ご返信有難う御座います。

.htaccessは全く触っていません。

「#基本はphp_ini.incで設定するが、ini_setで反映されないものはここで設定する
php_value mbstring.language Japanese
php_value output_handler mb_output_handler
php_flag mbstring.encoding_translation 1
php_flag magic_quotes_gpc 0
#php_flag session.use_cookies 0
#php_flag session.use_trans_sid 1

# INI_ALL なのにもかかわらず, ini_set で指定しても反映されない環境がある...
php_value mbstring.internal_encoding UTF-8

# デフォルトテンプレートの状態で 2M近くになるため
php_value upload_max_filesize 5M」

上記の状態です。

いかがでしょうか。
宜しくお願いします。


----------------
ホームページ作成は全てが始めてです。
プロの皆様のお力をお借りしたいです。
宜しくお願いします。

seasoft
投稿日時: 2009/10/9 9:42
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: xamppでインストールする時にParse エラーが出ます
触らずに適応される環境ですか?

確信が無いならば、phpinfo() などで、「適応されているか」を確認するのが良い気がします。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

NADEMO
投稿日時: 2009/10/9 10:33
対応状況: −−−
常連
登録日: 2009/10/5
居住地: 品川
投稿: 50
Re: xamppでインストールする時にParse エラーが出ます
引用:

確信が無いならば、phpinfo() などで、「適応されているか」を確認するのが良い気がします。


ご返信有難う御座います。
http://localhost/ファイル名/
でアクセスしてみました。

なにぶん初心者なもので、どちらを見れば適応できているのかがわかりません。
すみませんがアドバイスをいただけませんでしょうか。


----------------
ホームページ作成は全てが始めてです。
プロの皆様のお力をお借りしたいです。
宜しくお願いします。

seasoft
投稿日時: 2009/10/9 10:42
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: xamppでインストールする時にParse エラーが出ます
まずは、phpinfo() の使い方が掲載されている、PHP の解説書を読まれると良いかもしれません。


マニュアルは http://www.php.net/manual/ja/function.phpinfo.php で見れますが、少し難易度が高いかも・・・


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

NADEMO
投稿日時: 2009/10/9 11:38
対応状況: −−−
常連
登録日: 2009/10/5
居住地: 品川
投稿: 50
Re: xamppでインストールする時にParse エラーが出ます
マニュアルを見てみましたが、やはり難しいです。
.htaccessが適応していない場合、parse errorが出てしまうのでしょうか。
そうすると、やはり直すべきですよね。

参りました・・・。
今週中にインストールし、連休中に作業を進めたかったので。

知識不足でご迷惑をお掛けします。


----------------
ホームページ作成は全てが始めてです。
プロの皆様のお力をお借りしたいです。
宜しくお願いします。

ramrun
投稿日時: 2009/10/9 12:13
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: xamppでインストールする時にParse エラーが出ます
xamppでの確認はよくするのですが、どうやったらそういうエラーになるのか興味ありますね。

引用:
Parse error: syntax error, unexpected ';', expecting T_FUNCTION in C:\xampp\htdocs\eccube\data\class\util\SC_Utils.php on line 2018

はSC_Utils.phpのファイルの最後みたいですけど、SC_Utils.phpというか、2.4.1のファイルは解凍しただけの一切手を加えていないものですか?

一応、.htaccessを無効にしてみたり、あえてeuc-jpなどでやってみてもParse errorにはならないようです。

xamppのバージョンや、利用したパッケージtar.gzかzipかとか、解凍に使ったソフトとか、そのあたりがわかればこちらでも確認できるかもしれません。
NADEMO
投稿日時: 2009/10/9 13:01
対応状況: −−−
常連
登録日: 2009/10/5
居住地: 品川
投稿: 50
Re: xamppでインストールする時にParse エラーが出ます
ご返信ありがとうございます。

eccube2.4.1zipをダウンロードし、解凍した後で
C:\xampp\htdocs
に貼り付け、ファイル名を「eccube」としました。

最初はそのまま
http://localhost/eccube/html
にアクセスしました。
そのときは、10個ぐらいエラーが出ました。
SC_Utils以外は
C:\xampp\htdocs\eccube\data\module
の中のエラーで、
@$obj = &new $classname;
の&を外すことで回避できました。

最初に出ていたSC_Utilsのエラーは
80行目で、参考サイトを探して

// インストール初期処理
function sfInitInstall() {
// インストールが完了していない時
if(!defined('ECCUBE_INSTALL')) {
if(!ereg('/install/', $_SERVER['PHP_SELF'])) {
// インストールページに遷移させる
header('Location: ./install/');
exit;
}
} else {
$path = HTML_PATH . "install/index.php";
if(file_exists($path)) {
SC_Utils::sfErrorHeader(">> /install/index.phpは、インストール完了後にファイルを削除してください。");
}
}
}
で回避できました。
しかし、この変更をかけたところ、先ほどのエラーが出てきたのです。
このエラーが指しているのは「?>」の部分で、これは文法的に間違っていないし、お手上げ状態です。

よろしくお願いします。


----------------
ホームページ作成は全てが始めてです。
プロの皆様のお力をお借りしたいです。
宜しくお願いします。

seasoft
投稿日時: 2009/10/9 13:05
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: xamppでインストールする時にParse エラーが出ます
無関係かもしれませんが、ファイル末尾の「?>」は不要ですので、行削除を試すと何か変化があるかもしれません。(エラー行が1つ前になるだけかも…)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,323名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.