[PHP-users 30974] Re: Fatal error: Cannot redeclare

Kumapoo kumapoo @ zf7.so-net.ne.jp
2006年 12月 12日 (火) 14:31:34 JST


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 メーリングリストの案内