[PHP-users 30976] Re: Fatal error: Cannot redeclare
SevenBeat Saeki
saeki @ seven-beat.co.jp
2006年 12月 12日 (火) 14:51:27 JST
kumapoo様
佐伯です。
> 開発者のPC(PHP4.4.2)では動作し、本番サーバ(php4.1.2)でも動作し、テス
> トサーバ(既出、PHP4.4.2)で標記の「再定義エラー」が出るのが気になってい
> ます。
php.iniのエラーレベルをE_ALLにするとどの環境でも出てくるかも知れません。
テスト環境のphp.iniの設定と、本番と開発のphp.iniをあわせてみてください。
以上
----- Original Message -----
From: "Kumapoo" <kumapoo @ zf7.so-net.ne.jp>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Tuesday, December 12, 2006 2:31 PM
Subject: [PHP-users 30974] Re: Fatal error: Cannot redeclare
> kumapooです。
>
> お世話になります。(文章長くってすいません。。。)
> config.inc出すことにしました。
>
> 昨日色々思考錯誤してみましたが、、、状況変わらずです。
> > そんなプログラマは解雇(後略
> 私が、ソースを追えないなため、そんなこと言えないデス。笑
>
> 開発者のPC(PHP4.4.2)では動作し、本番サーバ(php4.1.2)でも動作し、テス
> トサーバ(既出、PHP4.4.2)で標記の「再定義エラー」が出るのが気になってい
> ます。
> -----
> Fatal error: Cannot redeclare configuration_data() (previously declared
> in
> /export/home/u/hoge-test.imjp.co.jp/public_html/agency/lib/config.inc:18)
> in /export/home/u/hoge-test.imjp.co.jp/public_html/agency/lib/config.inc
> on line 16
> -----
>
> http://eth.jp/hiki.cgi?PHP-Changes-4.4.2
> は見てみたのですが、私には???でした。
>
> http://hoge-test.imjp.co.jp/sample2/
> httpd.confにこんな感じで書いてあり、実際はindex.phpが呼ばれ、標記のエラー
> が出ます。。
> DirectoryIndex index.php index.html index.htm index.shtml index.cgi
> index.phtml
>
> $ cat -n index.php
> 1 <?php include_once "../agency/lib/fork.php"; ?>
>
> config.inc+関係の有りそうなソースを出します。
> $ cat -n ../agency/lib/config.inc
> 1 <?php
> 2 /* *** Define *** */
> 3 define(PAR_DIR, ROT_DIR."/agency");
> 4 define(TMP_DIR, PAR_DIR."/template");
> 5 define(INC_DIR, PAR_DIR."/include");
> 6 define(AGC_NAM,
preg_replace("/^.*\/([^\/]+)\/[^\/]*$/","$1",$_SERVER["REQUEST_URI"]));
> 7 define(AGC_DIR, ROT_DIR."/".AGC_NAM);
> 8 define(CMN_CSV, PAR_DIR."/csv/default.csv");
> 9 define(AGC_CSV, AGC_DIR."/csv/config.csv");
> 10 define(IMG_DIR, "../agency/img");
> 11 define(BNR_DIR, "../agency/banner");
> 12 /* *** /Define *** */
> 13 ?>
> 14 <?php
> 15 /* *** Configuration *** */
> 16 function configuration_data() {
> 17 $template_list = array(
> 18 "header" => "header_01.tmpl",
> 19 "main" => "main_{{PAGE}}_01.tmpl",
> 20 "sub" => "sub_01.tmpl",
> 21 "footer" => "footer_01.tmpl",
> 22 "fork" => "fork_01.tmpl",
> 23 "redirect" => "redirect_01.tmpl",
> 24 );
> 25 return $template_list;
> 26 }
> 27 /* *** /Configuration *** */
> 28 ?>
> 29 <?php
> 30 /* *** Include *** */
> 31 require_once PAR_DIR."/lib/class.inc";
> 32 /* *** /Include *** */
> 33 ?>
>
> $ cat -n ../agency/lib/fork.php
> 1 <?php
> 2 header("Content-Type: text/html; charset=shift_jis;");
> 3 header("Pragma: no-cache");
> 4 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
> 5 header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
> 6 header("Cache-Control: no-store, no-cache, must-revalidate");
> 7 header("Cache-Control: post-check=-1, pre-check=-1", false);
> 8 ?>
> 9 <?php
> 10 /* *** Define *** */
> 11 define(ROT_DIR, $_SERVER["DOCUMENT_ROOT"]);
> 12 /* *** /Define *** */
> 13 require_once ROT_DIR."/agency/lib/config.inc";
> 14 ?>
> 15 <?php
> 16 function output_content() {
> 17 $page = (isset($_GET["id"])) ? $_GET["id"] : "list";
> 18 $agency = new AGENCY(configuration_data(),$page,"FORK");
> 19 e($agency->output());
> 20 }
> 21 function e($str) { echo $str; }
> 22 output_content();
> 23 ?>
>
>
> > 伊東です
> >
> > > ただ、プログラマに聞いたところ、「二重定義は絶対にない」とのこと。
> > > また、プログラマの環境では動くそうです。
> >
> > そんなプログラマは解雇(後略
> >
> > > Fatal error: Cannot redeclare configuration_data() (previously
declared in
/export/home/u/hoge-test.imjp.co.jp/public_html/agency/lib/config.inc:18) in
/export/home/u/hoge-test.imjp.co.jp/public_html/agency/lib/config.inc on
line 16
> >
> > この config.inc を晒せばわかるでしょうね。
> > 晒せないなら、自己解決するしかありません。
> >
> > 2カ所に定義してるんじゃなくて、定義しているところを2回処理してるんで
しょ。たぶん
> > _______________________________________________
> > PHP-users mailing list PHP-users @ php.gr.jp
> > http://ml.php.gr.jp/mailman/listinfo/php-users
> > PHP初心者のためのページ - 質問する前にはこちらをお読みください
> > http://www.php.gr.jp/php/novice.php3
>
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
PHP-users メーリングリストの案内