問題:XAMPPでPEARを使用したいがソースがブラウザに表示される

このQ&Aのポイント
  • XAMPPを使用してPHPの練習をしていますが、PEARを使用する際にソースコードがブラウザに表示されてしまいます。
  • PEARとはPHPの拡張モジュールであり、データベースへのアクセスなどに使用されます。
  • DSNの設定以降のソースコードがブラウザに表示される問題が発生しており、解決策を探しています。
回答を見る
  • ベストアンサー

いつもお世話になっております。

いつもお世話になっております。 phpの練習をするためにXAMPPをインストールしました。 「作って覚えるPHP+MySQLアプリケーション」というテキストを買って進めています。 テキストとはインストールしたバージョンが少し違っていましたがなんとか下記のは動いています。 XAMPP:1.7.3 mySQL:5.1.41 PHP:5.3.1 phpMyAdmin:3.2.4 使用マシン:WIN XP 使用ブラウザ:Firefox ところが、PEARでデータベースにアクセスすることができません。 コマンドプロンプト pear list で調べると、 PEARもMDB2もstableです。 phpファイルを作って実行させるとソースがそのままブラウザに表示されます。 (テキストではP.55~56の部分です。) 素人でどう質問したらいいのかわからないのですが、 実行するphpファイル内で「MDB2クラスの組み込み」はできてるようですが、 DSNの設定以降のソースがブラウザにそのまま表示されています。 正確には、 $dsn = array( 'phptype' => は表示されておらず、以降の mysql から全部表示されています。 いろいろネット検索してるのですが、対処がわかりません。 説明もフラフラですが、助けてください。 よろしくお願いします。

  • MySQL
  • 回答数4
  • ありがとう数8

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

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

こんにちは。 えーとですね・・・、 まずエラーの画面ですが、例えば該当ファイル(ここではdbtest.php)をそのままブラウザにドラッグ&ドロップして表示させると、同じ画面になります。 次にDocumentRootですが、 C:\xampp\apache\conf\httpd.conf を編集していない、かつバーチャルホストを設定していなければ、デフォルトで、 C:\xampp\htdocs になってると思います。 C:\xampp\htdocs\sample\part2 というフォルダを作成した中に「dbtest.php」を置いているので、ブラウザから、 http://localhost/sample/part2/dbtest.php とアクセスすれば、ちゃんと表示されると思うのですが・・・。 これでも表示されない場合は、どっかおかしいので、いろいろと原因究明をしなくちゃなりません。

nikita16
質問者

お礼

できました! こんなド素人を相手していただいてありがとうございました。 感謝、感謝です。 見事表示されたときは感激しました! 今からsmartyに入ります。 わからなくなったらまた質問に投稿しますので、よろしくお願いします。

その他の回答 (3)

回答No.3

こんにちは。 きちんとサーバーで実行できてますか? ご質問の内容からは、該当ファイルを静的に表示させているだけのような感じです。 PHPが動いていない状態で表示させると、まさに仰る通りの結果となります。 xamppを入れてるので、Apacheを起動させて、DocumentRootに該当ファイルを置いて、ブラウザからアクセスするんですよ? それでもこのような表示なら、どこかがおかしいです・・・。

nikita16
質問者

補足

お返事ありがとうございます。 「XAMPP Control Pannel」でApachとMySQLをstartさせています。 すみません、ここから暗闇の世界に入っていきます。 PHPはどの段階で動くのでしょうか? XAMPPがサーバー? dbtest.phpは C:\xampp\htdocs\sample\part2 に保存してブラウザで表示させています。 本の説明では、sampleフォルダはまるごとhtdocsに保存するように指定されていました。 dbtest.phoはサンプルの中のひとつです。 DocumentRootはどこになりますか? 本ではphpが動く仕組みがまったくわからないのです・・・ よろしくお願いします。 エラーの画像です。http://so-forth.com/phperror.jpg

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

一部だけソースならその部分を <?php ?> で囲むのを忘れているのでは?

nikita16
質問者

補足

ご回答ありがとうございます。 基本的なことがよくわからない素人なもので、ご質問の意味がよくわかりません。 もし、助けていただけるなら「回答番号1」の補足につけたURLでソースをDLしてみてください。 よろしくお願いします。

回答No.1

こんばんは。 差支えなければ、ソースを載せてもらえませんか?

nikita16
質問者

補足

遅くなってすみません。 ソースが長くて文字制限を超えましたので以下でDLしてください。 http://so-forth.com/dbtest.zip 保存先は C:\xampp\htdocs\sample\part2 です。 よろしくお願いします。

関連するQ&A

  • PEARインストールについて(xampp

     こんにちは。 xamppを使いPHPの勉強をしております。 PEARインストールの段階で手が止まっており、他の質問を見ても解決せず困っております。 ・OSはWin xp(Home) ・これまでの手順  購入した本を元にPEARをインストールしようと致しましたが、うまく行かず。→購入した書籍のサイトでPEARインストールについて訂正があり、そちらも試したものの、上手くいきませんでした。  また、他のインストール方法を解説しているサイトを見てもなかなかうまくいきませんでしたが、とあるWebサイトの方法を試したところ、コマンドプロンプトにそれまでと違う表示が出てきて、いくつか段階が進みました。 【質問点】 次の結果は、インストールが無事に出来ているのでしょうか??? C:\Documents and Settings\Owner>cd C:\xampp\php C:\xampp\php>pear install MDB2 pear/MDB2 is already installed and is the same as the released version 2.4.1 install failed C:\xampp\php>pear install MDB2#mysql Skipping package "pear/MDB2", already installed as version 2.4.1 No valid packages found install failed C:\xampp\php>pear list INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE Archive_Tar 1.3.3 stable Console_Getargs 1.3.4 stable Console_Getopt 1.2.3 stable MDB2 2.4.1 stable MDB2_Driver_ibase 1.4.1 stable MDB2_Driver_mssql 1.2.1 stable MDB2_Driver_mysql 1.4.1 stable MDB2_Driver_mysqli 1.4.1 stable MDB2_Driver_oci8 1.4.1 stable MDB2_Driver_pgsql 1.4.1 stable MDB2_Driver_sqlite 1.4.1 stable Mail 1.1.14 stable Mail_Mime 1.5.2 stable Mail_mimeDecode 1.5.0 stable Net_SMTP 1.3.3 stable Net_Socket 1.0.9 stable PEAR 1.8.1 stable PEAR_Info 1.9.2 stable Structures_Graph 1.0.2 stable XML_Util 1.2.1 stable 以上です。 特に3つ目のコマンド(pear install MDB2#mysql)の結果が「上手くいってないのでは???」と首を傾げている状態です。 どなたかお分かりになる方がおられましたら、ご回答を頂けますようお願い致します。

    • ベストアンサー
    • PHP
  • いつもお世話になっております。

    いつもお世話になっております。 小生、只今WindowsXPSP3上でXAMPP1.7.1を使用し、PHPを勉強しているPHP初心者です。 今回皆様にご質問させて頂きたい内容はXAMPPにSmatyをインストールするべきかしないべきかです。 私の環境でXAMPPのフォルダ内で「smarty」というキーワードを入れ、検索してみたところ、以下のファイルが検出されました。 smarty ディレクトリ     C:\xampp\htdocs\xoops\class Smarty.class.php       C:\xampp\htdocs\xoops\class\smarty Smarty_Compiler.class.php   C:\xampp\htdocs\xoops\class\smarty Smarty-2.6.0 ディレクトリ  C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor core.assign_smarty_interface.php C:\xampp\htdocs\xoops\class\smarty\core core.smarty_include_php.php  C:\xampp\htdocs\xoops\class\smarty\core SmartyTask.php C:\xampp\php\PEAR\phing\tasks\ext smarty ディレクトリ C:\xampp\htdocs\extras\extra_languages\pt_utf8\html\class Smarty ディレクトリ C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Converters\HTML Smarty.class.php C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs Smarty_Compiler.class.php C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs HTMLSmartyConverter.inc C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Converters\HTML\Smarty core.assign_smarty_interface.php C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs\core core.smarty_include_php.php C:\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs\core 以上のファイルがあっても、XAMPPにSmartyをインストールしなければ、Smartyの機能は使えないのでしょうか?? また、上記の設定(Smartyをインストールしていない状態)でC:\xampp\sample\templatesフォルダを作成し、以下の.tplファイルを作成しました。 -----.tplファイル------ <html> <head> <title>smatyのテスト</title> </head> <body> ようこそ、($name)さん<br/> Hello World! </body> </html> そしてその上位フォルダにindex.phpを作成しました。 -----index.php----- <?php require_once "Smarty.class.php"; $smarty = new Smarty; $smarty->assign('name', '桃太郎'); $smarty->;display('index.tpl'); ?> 上記の2ファイルを作成し、http://localhost/sampleにアクセスしても、 「Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `'{'' or `'$'' in C:\xampp\htdocs\sample\index.php on line 6」のエラーが出現し、正確に表示されません。 お忙しい中、大変申し訳ございませんが、先輩方アドバイス宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PEAR::DBの利用について

    先日、LAMPのインストールが完了しました。 そこで、PHPからMySQLを操作するにPHPの拡張モジュールであるPEAR::DBを利用しようと考えました。 #sudo apt-get install pear とし、pearをインストールしたあとで、 #sudo pear install DB としてDBモジュールをインストールしました。 #sudo pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.3 stable Auth_SASL 1.0.3 stable Console_Getopt 1.2.3 stable DB 1.7.13 stable Log 1.11.6 stable Mail 1.1.14 stable Net_SMTP 1.3.4 stable Net_Socket 1.0.9 stable PEAR 1.9.0 stable Structures_Graph 1.0.3 stable XML_Util 1.2.1 stable 上記がインストールされているものです。 しかし、MySQLにどうしても接続することができません。 /* require_once("DB.php");   // 接続設定  $dbtype = "mysql";   $sv = "localhost";   $dbname = "sampledb";   $user = "root";   $pass = "*******";   // データベースに接続する   $dsn = "$dbtype://$user:$pass@$sv/$dbname";   $conn = DB::connect($dsn);   if (DB::isError($conn)) {   die("接続エラー"); } */ とくに必要な設定とかはあるのでしょうか? php.iniの設定をしなければならないなど。windowsの場合、インクルードパスにpearのインストール先絶対パスを追記したのを覚えています。 どなたか、アドバイスお願い致します。よろしくお願い致します。 環境やバージョン os Linux ubuntu 2.6.31-16-generic apache 2.2.12-1ubuntu2.1 mysql-server 5.1.37-1ubuntu5 php 5.2.10-2ubuntu6.3

    • 締切済み
    • PHP
  • pear_info.phpも表示できません

    PCをサーバーにしてPHPの練習をしている初心者です。最近PEARを入れてDBパッケージをインストールしたのですが、機能しなくて困っています。試しにpear_info.phpを作ってブラウザで開くと下記の警告がでました。 ---------------------------------------------- <?php ini_set ("display_errors", "1"); error_reporting(E_ALL); require_once ("PEAR/Info.php"); //←line 5 $info = new PEAR_Info(); $info->show(); ?>  Warning: require_once(PEAR/Info.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\pear_info.php on line 5 Fatal error: require_once() [function.require]: Failed opening required 'PEAR/Info.php' (include_path='.;c:\php\includes;C\php\PEAR;') in C:\Program Files\Apache Group\Apache2\htdocs\pear_info.php on line 5 (コピーペーストすると\になりましたが、ブラウザの表示では/の逆向きです) ---------------------------------------------- DB::connectでも同様の警告が出ます。PHPとMySQLだけだと問題なく動くのでPEARのパスを確認したのですか、原因が分かりません。助言いただけるとありがたいです。 php.iniのパス  ;***** Added by go-pear  include_path=".;c:\php\includes;C\php\PEAR;"  ;***** phpinfoのinclude_path  .;c:\php\includes;C\php\PEAR;  (コピーペーストすると\になりましたが、ブラウザの表示では/の逆向きです) コマンドプロンプトから "C:\PHP>pear list" での表示  Archive_tar  1.3.2  stable  Console_Getopt  1.2.3  stable  DB  1.7.11 stable  MDB2  2.4.1  stable  PEAR  1.6.0  stable  Pear_info  1.6.1  stable  Structure_Graph  1.0.2  stable PCの環境  Windows XP  Apache  2.0.59  PHP 5.2.3  MySQL 5.0.41

    • ベストアンサー
    • PHP
  • PEAR::MB2によるPHP+MySQLについて

    PEAR::MB2でPHP+MySQLを勉強中なのですが、特定カラムの値を取得することができません。 下記のソースコードで、変数$aaaをechoで参照すると空白となってしまいます。 大変恐縮ですがご教授のほどよろしくお願いいたします。 [環境]----------------------------------------------------------- OS: windows7(64bit) PHP: ver5.3.8 MySQL: ver5.5 Pear::MDB2  pear/MDB2 2.5.0b3 2.4.1 database abstraction layer  pear/MDB2_Driver_fbsql 0.2.0 fbsql MDB2 driver  pear/MDB2_Driver_ibase 1.5.0b3 ibase MDB2 driver  pear/MDB2_Driver_mssql 1.5.0b3 mssql MDB2 driver  pear/MDB2_Driver_mysql 1.5.0b3 1.4.1 mysql MDB2 driver  pear/MDB2_Driver_mysqli 1.5.0b3 mysqli MDB2 driver  pear/MDB2_Driver_oci8 1.5.0b3 oci8 MDB2 driver  pear/MDB2_Driver_odbc 0.1.0 ODBC Driver for MDB2  pear/MDB2_Driver_pgsql 1.5.0b3 pgsql MDB2 driver  pear/MDB2_Driver_querysim 0.6.0 querysim MDB2 driver  pear/MDB2_Driver_sqlite 1.5.0b3 sqlite MDB2 driver  pear/MDB2_Driver_sqlsrv 1.5.0b3 sqlsrv MDB2 driver  pear/MDB2_Schema 0.8.5 XML based database schema manager  pear/MDB2_TableBrowser 0.1.2 Database table abstraction library (pear list -allから一部抜粋) [ソースコード]----------------------------------------------------------- require_once("MDB2.php"); $dsn = "mysql://user:pass@localhost/db_name"; $conn = MDB2::connect($dsn); // 接続に失敗したらメッセージを表示して終了 if (MDB2::isError($conn)){ die($conn->getMessage()); } //フェッチモード設定 $conn->setFetchMode(MDB2_FETCHMODE_ASSOC); //SELECT文 $sql = <<<EOS SELECT * FROM db_table WHERE name = 'taro' EOS; //実行 $res = $conn->query($sql); //エラーチェック if (PEAR::isError($res)) { die($res->getMessage()); } //値の取得 $row = $res->fetchRow(); //変数$aaaに、別カラム値(例:miyoji)を格納 $aaa = $row['miyoji']; echo "$aaa"; //←(例)mysqlから田中といった苗字を出力したい。 //クローズ $conn->disconnect(); ----------------------------------------------------------------------- エラー出力はありません。

    • ベストアンサー
    • PHP
  • XAMPPでPearをインストールし、再起動するとエラー

    XAMPPでPearをインストールした直後は正常に動いたのですが、再起動するとエラーになります。対処方法を教えて下さい。 PEARのインストールは次の手順で行いました。 1.C:\xampp\php\go-pear.batを実行 2.C:\xampp\php\PEAR_ENV.regを実行 3.Dosプロンプトでpear lilstを実行する。 ☆この時点ではインストールされているパッケージが表示される。 4.パソコンを再起動する 5.再度Dosプロンプトでpear lilstを実行すると、次のエラーが表示される。 「 C:\xampp\php>pear list Notice: unserialize(): Error at offset 112 of 354 bytes in Config.php on line 1003 ERROR: The default config file is not a valid config file or is corrupted.」

    • ベストアンサー
    • PHP
  • pear_infoが表示出来ないです。

    いつもお世話になっております。 PEARを使いたくて、 コマンドから C:\>cd php5 C:\php5>go-pear と、インストールをしました。 最後に C:\php5>pear list INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE Archive_Tar 1.3.2 stable Console_Getopt 1.2.3 stable PEAR 1.6.2 stable PEAR_Info 1.7.0 stable Structures_Graph 1.0.2 stable と表示されたので、無事インストール出来ていると 思ったのですが・・・・。 インストールがちゃんと出来ているか確認する為に、 phpinfo とおなじような感じでpear_infoが 表示出来るという記述を見つけたのでpear_infoをインストールし <?php require_once("PEAR/Info.php"); $info = new PEAR_Info(); $info->show(); ?> と書いたphpファイルを作って表示させて見たのですが No PEAR configuration files (pear.ini or pearsys.ini) found into '/path/to/your/pear/files' directory というエラーが吐き出されております。 phpinfo();で表示される、include_pathは nclude_path .;C:\php5\pear;C:\php5\includes と表示されております。 PHP5のインストールをしなおし、一からやり直してみたのですが 同じエラーが吐き出されて途方にくれております。 気になったのは、PHP5フォルダ内にあるPEARフォルダの 中に、さらにPEARフォルダが存在し、その中にInfo.phpが 存在している事です。 ためしに、include_pathを.;C:\php5\pear\pear;C:\php5\includes と変えてみたところ、こちらは500エラーが でました。 どんな些細な事でもかまわないですので、どかご指導宜しく お願い申し上げます。 作業環境は Win XP Apache2.2 PHP5 MySQL5 です。

    • ベストアンサー
    • PHP
  • XAMPP設定後PHPのソースファイルはどこに?

    はじめて、PHPを学習しています。XAMPPをインストールしてXAMPPのApacheとMySqlは正常に起動できているようですが、PHPのソースファイルをどこのフォルダに入れてどうやって動かすかわかりません。どなたかわかりますか。

    • ベストアンサー
    • PHP
  • PEARのHTTP_Requestをインストール

    さくらのレンタルサーバーにPEARのHTTP_Requestをインストールし、 http://pear.php.net/manual/ja/package.http.http-request.intro.php にあった、「yahoo.com の内容を取得し、それを表示する」という 以下のスクリプトを実行したのですが、何も表示されません。 test_yahoo.php ---------------------------------------------------- <?php require_once "HTTP/Request.php"; $req =& new HTTP_Request("http://www.yahoo.co.jp/"); if (!PEAR::isError($req->sendRequest())) { echo $req->getResponseBody(); } ?> ---------------------------------------------------- 状態は以下の通りです。 /home/user/.cshrc set path = (~/pear/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) /home/user/www/php.ini include_path = ".:/php/includes:/home/user/pear/PEAR" %pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Console_Getopt 1.3.0 stable HTTP_Request 1.4.4 stable Mail_Mime 1.8.1 stable Net_Socket 1.0.10 stable Net_URL 1.0.15 stable PEAR 1.9.1 stable Structures_Graph 1.0.4 stable XML_Parser 1.3.4 stable XML_Util 1.2.1 stable % ブラウザからhttp://user.sakura.ne.jp/の /home/user/www/test_yahoo.php(属性:755)に アクセスしていますが、何も表示されません。 原因、または調べ方を教えてください。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • Apacheで、アクセスさせたくないファイルがある

    PHPで、「データベース接続ファイル」と「main.php」があります。 main.phpからアクセスして、DBの内容を表示するページがあります。 ・DB接続ファイル(database.php) <?php // MDB2 ライブラリの読み込み require_once("MDB2.php"); // エラー発生時の処理 PEAR::setErrorHandling( PEAR_ERROR_CALLBACK, 'handleError' ); function handleError( $error ) { die('エラーが発生しました。管理者までお問い合わせ下さい。'); } // データベースへの接続 $dsn = array( "phptype" => "mysql", "username" => "root", "password" => "", "hostspec" => "localhost", "database" => "test", ); $mdb2 =& MDB2::connect( $dsn, $options ); // 文字コードの指定 $mdb2->setCharset( "utf8" ); ?> ・main.php(DBの内容を表示) require_once("database.php");     ~処理~ 質問: 当然、main.phpからアクセスして、DBの内容を表示します。 アドレスとしては、「http://localhost/main.php」とアクセスするのですが、 「http://localhost/database.php」とアクセスしてもページの遷移が可能です。 この「http://localhost/database.php」にアクセスしソースファイルを見ることが可能で DBへの、接続ユーザー・パスワードがみられてしまうことが問題だと思っています。 この、 「一部ファイルへの直叩き」or「制限」をかけて、直接アクセスできなくなる方法を探しております。 (ただ、別のphpファイルから参照は許しておきたい。main.phpからアクセスできなくなっては意味がないの。) アパッチでどのような設定をすればいいでしょうか。 参考になるページ等をご存知でしたら ご教授お願いします。

    • ベストアンサー
    • PHP