PHPでredeclareのエラーがでるのですが...

このQ&Aのポイント
  • 現在PHP4でweb作成をしています。認証はPHPLIBを使用していますが、エラーが発生しています。
  • エラーメッセージは「Fatal error: Cannot redeclare class db_sql in /usr/local/apache/phplib-7.4/php/db_pgsql.inc on line 12」です。
  • エラーの原因は、htaccessファイルでの設定が関係している可能性があります。具体的な解決策をお探しですか?
回答を見る
  • ベストアンサー

PHPでredeclareのエラーがでるのですが...

こんにちわ、 現在PHP4でweb作成をしています。それで認証はPHPLIBを使用しているのですが、 「Fatal error: Cannot redeclare class db_sql in /usr/local/apache/phplib-7.4/php/db_pgsql.inc on line 12」 というエラーがでます。 ただ、DB_Sqlというクラスはこのdb_pgsql.incでのみしか使用しておらず(class DB_Example extends DB_Sqlはlocal.inc内で使用しています)、原因が解りません。 おそらく、.htaccess内でprepend.phpをauto_prepend_fileと指定していて、そのprepend.phpのなかで、 (前略) require($_PHPLIB["libdir"] . "db_pgsql.inc"); require($_PHPLIB["libdir"] . "ct_sql.inc"); require($_PHPLIB["libdir"] . "session4.inc"); require($_PHPLIB["libdir"] . "session4_custom.inc"); require($_PHPLIB["libdir"] . "auth4.inc"); require($_PHPLIB["libdir"] . "perm.inc"); require($_PHPLIB["libdir"] . "user4.inc"); require($_PHPLIB["libdir"] . "menu.inc"); require($_PHPLIB["libdir"] . "local.inc"); require($_PHPLIB["libdir"] . "page4.inc"); : (後略) としているために、毎回db_pgsqlがよみこまれるためだとおもいますが、よくわかりません。 質問として漠然としていますが、もしもエラーについてすこしでもなにかしっている方、アドバイスの方、宜しくお願いします。 ちなみにphplib-7.4をインストールしてからかえたのは、 -- .htaccessをかえた(auto_prepend_fileをかえた) -- prepend.phpのdb_mysqlをdb_pgsqlにかえた くらいです。 宜しくお願いします。

  • PHP
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私はphplibを使ったことはないのですが、Googleで検索してみると 「php.iniと.htaccessの両方でauto_prepend_fileを指定しているから」 ということのようなので、php.iniを確認してみてはいかがでしょうか。

関連するQ&A

  • PHPLIBでのエラー

    こんばんわ, 現在自分のHPをPHPLIBを使用したセッション認証を取り入れようとしているのですが,エラーがでてしまいます。 エラーの内容は, Warning: main(db_pgsql.inc): failed to open stream: No such file or directory in /XXXXXXXXXXX/prepend.php on line 30 Fatal error: main(): Failed opening required 'db_pgsql.inc' (include_path='.:./include:./template') in /XXXXXXXXXXX/prepend.php on line 30 という内容が出ています。 そのprepend.phpの中は, 25 #ORIGINAL 26 $_PHPLIB["libdir"] = ""; 27 28 29 30 require($_PHPLIB["libdir"] . "db_pgsql.inc"); となっています。 また,同ディレクトリにある.htaccessには 3 DirectoryIndex index.php 4 5 <IfModule mod_php4.c> 6 php_value include_path ".:./include:./template" 7 8 php_value auto_prepend_file "prepend.php" 9 </IFModule> 10 11 AddType application/x-httpdphp .php .inc .ihtml となっています。 おそらく初歩的な質問だとは思いますが, よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPlib インストールエラー

    どなたか、ヘルプお願いします。 PHPlib(PHPlib-7.4-pre2)をインストールするべく、設定を終え、動作確認(login & password画面で)したところ、以下のようなエラーメッセージで行き詰まっているところです。 Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused Is the server running on host localhost and accepting TCP/IP connections on port 5432? in /usr/local/apache/phplib-7.4-pre2/php/db_pgsql.inc on line 51 Database error: connect() failed. PostgreSQL Error: 0 () Session halted. 設定の際、設定の書き込みをしたのは、  ・local.inc の $Database、$Userの設定  ・prepend.php で db_pgsql.inc の指定 のみです。 ネットでこのエラーを調べたところ「pg_hba.conf」や「postgresql.conf」に関係するエラーのようですが、PHPlibを利用するにあたり、何か設定しなければならないのでしょうか? また、エラーが表示されている「db_pgsql.inc」にも何か設定が必要なのでしょうか? ちなみに、自作PHPファイルから該当データベースへの接続には成功しています。 [環境]FreeBSD、Apache1.3、PHP4.3、PosgreSQL7.4

    • 締切済み
    • PHP
  • PHPとAPACHEのエラー「Warning: Cannot modify header information」について

    こんばんわ、 現在APACHEとPHPを使用してWEBを作成しています。 PHPLIBを使用して認証頁を作成しようとしているのですが、そのさいに下記のエラーがでます。 Warning: Cannot modify header information - headers already sent by (output started at /home/XXXXXXXXXX/include/login.inc:14) in /usr/local/apache/phplib-7.4/php/session.inc on line 479, 480, 481, 482, 483 です。 ちなみに/home/XXXXXXXXXX/include/login.inc:14には、 1 <?php 2 include ("prepend.php"); 3 page_open( 4 array("sess" => "Example_Session", 5 "auth" => "Example_auth", 6 "perm" => "Example_Perm", 7 "user" => "Example_User")); 8 ?> 9 10 11 12 13 としかなく、14行目はありません。 prepend.phpとsession.incはデータベースをpgslにかえた以外はなにもしておりません。 478 default: 479 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 480 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 481 header("Cache-Control: no-cache"); 482 header("Cache-Control: post-check=0, pre-check=0", false); 483 header("Pragma: no-cache"); 484 break; となっています。 以前までは、prepend.phpのみを.htaccessのauto_prepend_fileに指定していましたが、その部分をこのlogin.incに指定しなおしただけでこのエラーがでました。 なにがわるいのかよく解りません。なにの設定がわるいのでしょうか。 初歩的な質問ですが、宜しくお願いします。

  • PHPLIBについて

    お世話になります。 PHPLIBのインストールについて教えてください。 参考資料の通りにインストールしましたが、サンプルページを稼動させると以下のようなエラーが出ます。 Warning: This compilation does not support pg_cmdtuples() in /usr/local/apache/phplib-7.2c/php/db_pgsql.inc on line 177 当方の環境はPHP4 Postgres7.1です。 db_pgsql.incの中でSQLをコールしたときにエラーが出ているのは判りますが、その根本原因が判りません。 どなかた、同じような経験をされて、解決できた方がいらっしゃったら教えてください。 宜しくお願いします

    • ベストアンサー
    • PHP
  • .htaccessの設定で,auto_prepend_fileを画像に対応させるには。

    今PHPでWebを作成しています。 サーバーはAPACHEで,.htaccessに <IfModule mod_php4.c> php_value include_path ".:./include php_value auto_prepend_file "login.inc" php_value auto_append_file "close.inc" </IfModule> Addtype application/x-httpd-php .html .php .inc .ihtml と書いて,.htaccess以下のディレクトリのphpや.incファイルに対して入るときはauto_prepend_fileを使用してlogin.incを呼ぶようにしています。 これに.gifを加えたいのですが,そのまま, Addtype application/x-httpd-php .html .php .inc .ihtml .gif とするとauto_prependは効くのですが,.gifファイルが文字として認識されます。 .gifに対してauto_prependを効かすにはどうすればいいのでしょうか。 よろしくお願いします。

  • さくらのレンタルサーバーでDB.php読み込み失敗

    下記の環境でPHPを書いています。 ・さくらのレンタルサーバ スタンダード ・PHP 5.2.13 ・php.iniファイルパス /home/******/www/php.ini その中で、require_once("DB.php");と記述をしているのですが、 その部分で下記のエラーが発生します。 Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /home/xxx/www/class/db.class on line 6 Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/local/php/5.2.13/lib/php') in /home/xxx/www/class/db.class on line 6 2ヶ月ほど前に作成した時は間違いなく正常に動作していたのですが・・・。 久しぶりにアクセスしたらこんなエラーが出ていて途方にくれています。 推測できる原因はありますでしょうか?

    • ベストアンサー
    • PHP
  • php session_start()

    いつもお世話になっております PHP session_start()について質問させていただきます。 ブラウザで確認すると以下のワーニングが表示されます。 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ファイル名) in ファイル名 過去の質問を参考にしてphpinfo()を使用してサーバの設定を確認したところ、Session Supportはenabledとなっております。 また、余分なスペースなどが無いよう、コードを1行にまとめて試してみましたが同じ結果でした。 コードは以下のとおりです。ちなみにサーバはレンタルサーバを使用しております。 ■index.php <?php  $documentroot = dirname( __FILE__) . '/';  require_once $documentroot . '../php_libs/config/config.inc.php';  require_once("Auth/Auth.php");  require_once("HTML/QuickForm.php");  require_once("HTML/QuickForm/Renderer/ArraySmarty.php");  require_once( _SMARTY_LIBS_DIR . "Smarty.class.php");  require_once( _MODULE_DIR . "build_screen.inc.php");  require_once( _MODULE_DIR . "menu.inc.php");  require_once( _MODULE_DIR . "MYDB.inc.php");  require_once( _MODULE_DIR . "sub.inc.php");  main(_MEMBER_FLG);  exit; ?> ■main関数 <?php  function main($systemflg){   // セッション名の設定   $sess_name = ($systemflg) ? _SYSTEM_SESSNAME : _MEMBER_SESSNAME;   session_name($sess_name);   // セッション開始   session_start(); ~以下省略~ どこに問題があるかお分かりの方いらっしゃいましたら、ご回答のほどよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • クラスファイルでエラーが出てしまう

    外部クラスファイルを読みこんで実行させたいのですが、次のエラーになってしまいます。 ------------------------エラー文-------------------------------- Fatal error: Cannot instantiate non-existent class: mysql (訳) Fatal error~致命的な instantiate~定数に実数を割り当てる existent~存在する、現在の ---------------------------------------------------------------- エラーが出てる行数のコードは $mysql = new MySQL; の文です。 下記がソースです。 一応require_once("mysql.php")の呼び出しは成功しています。 mysql.php自体をブラウザで直接呼出したところ、エラーはでません。 有識者の方いらっしゃいましたらご教示宜しくお願いします。 ---------------------ソースコード------------------------------- <?php session_start(); //---------------------------------------- // ■ MySQLクラスファイルの取り込み //---------------------------------------- require_once("mysql.php"); //---------------------------------------- // ■ 変数初期化 //---------------------------------------- $sql = ""; $sql2 = ""; $sql3 = ""; $error = ""; //---------------------------------------- // ■ 変数定義 //---------------------------------------- $login_id = $_SESSION["login_id"]; $mail_address = $_SESSION["mail_address"]; $name = $_SESSION["girl_name"]; $age = $_SESSION["age"]; $gyousyu = $_SESSION["gyousyu"]; $tiiki3 = $_SESSION["tiiki3"]; $keikenn = $_SESSION["keikenn"]; $pic = ""; $koukai = $_SESSION["koukai"]; $nissuu = $_SESSION["nissuu"]; $job = $_SESSION["job"]; $address = $_SESSION["address"]; $freeword = $_SESSION["freeword"]; //---------------------------------------- // □:MYSQLクラスインスタンスの作成 //---------------------------------------- $mysql = new MySQL; ・ ・ ・ ---------------------------------------------------------------

    • ベストアンサー
    • PHP
  • どうしてもPHPのエラーが消えまえん。

    今週からPHPを勉強し始めました。 書籍を元に勉強をしているのですが、書籍通りの内容で書き、 どんなに調べても、どうしてもエラーが消えません。 お知恵をお貸し頂けると幸いです。 エラー内容はコチラです。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':20130514235839, created="2013-05-15 08:27:09"' at line 1 エラーページのコードは下記です。 <?php session_start(); require('../function.php'); if(!isset($_SESSION['sign_up'])){ header('Location: index.php'); exit(); } if (!empty($_POST)) { // 登録処理をする $sql = sprintf('INSERT INTO members SET name="%s", mail="%s", pass="%s", image=:%s, created="%s"', mysql_real_escape_string($_SESSION['sign_up']['name']), mysql_real_escape_string($_SESSION['sign_up']['mail']), mysql_real_escape_string(sha1($_SESSION['sign_up']['pass'])), mysql_real_escape_string($_SESSION['sign_up']['image']), date('Y-m-d H:i:s') ); mysql_query($sql) or die(mysql_error()); unset($_SESSION['sign_up']); header('Location: finish.php'); exit(); } 念のため、phpmyadminの画面をあげておきます。 http://cl.ly/image/3M002J1S0q0N 以上よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHP5でpostgresqlのデータベースに接続する簡単なPHPプロ

    PHP5でpostgresqlのデータベースに接続する簡単なPHPプログラムを書きました。 ローカルホストにブラウザでアクセスすると正常に動作し、 コマンドラインで実行すると、次のエラーが発生します。 PHP Fatal error: Call to undefined function pg_connect() コマンドラインでphpのバージョンを見ると以下のとおりです。 C:\>php -v PHP 5.3.0 (cli) (built: Jun 29 2009 21:25:23) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies ブラウザで、phpinfo();を実行した際の情報には postgresqlのDBドライバがあります。 pdo_pgsql PDO Driver for PostgreSQL enabled PostgreSQL(libpq) Version 8.3.3 Module version 1.0.2 Revision $Id: pdo_pgsql.c,v 1.7.2.11.2.1.2.4 2009/03/28 01:58:49 mbeccati Exp $ pgsql PostgreSQL Support enabled PostgreSQL(libpq) Version 8.3.3 Multibyte character support enabled SSL support enabled Active Persistent Links 0 Active Links 0 Directive Local Value Master Value pgsql.allow_persistent On On pgsql.auto_reset_persistent Off Off pgsql.ignore_notice Off Off pgsql.log_notice Off Off pgsql.max_links Unlimited Unlimited pgsql.max_persistent Unlimited Unlimited テストソースです。パスワード・DB名は伏せています。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>PostgreSQLテスト</TITLE> </HEAD> <BODY> <?php $db_host = "localhost"; $db_port = 5432; $db_user = "postgres"; $db_pass = "xxxx"; $db_name = "yyyy"; // PostgreSQL 接続 if (!($cn = pg_connect("host=$db_host port=$db_port dbname=$db_name user=$db_user password=$db_pass"))) { die; } // PostgreSQL 切断 pg_close($cn); // 正常終了 print "<P>正常終了</P>"; ?> </BODY> </HTML> よろしくお願いします。

    • ベストアンサー
    • PHP