phpでdbopen情報を持たせてopenする方法

このQ&Aのポイント
  • phpでwebアプリを作成しています。dbopen情報を持たせてopenする方法について教えてください。
  • includeされたファイルの変数がうまく利用できません。どのようにすれば正しく利用できるのでしょうか?
  • windowsのGetPrivateProfileStringのような方法を利用してdbアクセス情報を取得したいのですが、うまくいきません。どのようにすれば良いでしょうか?
回答を見る
  • ベストアンサー

phpの(例えば)include

phpでwebアプリを作成しています。 例えば、windowsでいうiniファイルに似たようなファイルを作成し、 そのファイルにdbopen情報を持たせてopenしたいのです。 global変数を使うということで、試しているのですが、うまくいきません。  ※postgresqlを使っています。 ・sysparm.inc <?php $inf1="1111"; $inf2="user"; $inf3="pass"; $inf4="name"; ?> ・dbaccess.php <?php include ("./include/sysparm.inc"); $dbinfo = "port=".$inf1 . " user=".$inf2." password=".$inf3." dbname=".$inf4;   ・   ・   ・ この$dbinfo 情報でopenしたいのですが、$inf1~$inf4まで何もはいってきません。 こういう場合、dbaccess.phpの $inf1~$inf4 まで”global" をつけるんでしょうか? つけて試したのですが、入ってきませんでした。 この方法は、windows版で言う GetPrivateProfileString・・・の用なことをしたくてたどり着きました。 最初はファイルを読んで、dbアクセス情報を取得していたのですが。。。 結局includeされていないのでしょうか? includeのパスの指定も dirname(__FILE__)."/include/sysparm.inc" のようにしてみてもだめでした。 どんな書き方、使い方が正解なのか、教えていただけないでしょうか? すみません、よろしくお願いいたします。

  • jg1wjz
  • お礼率91% (148/162)
  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5069/13245)
回答No.1

PHP の include は、ファイルの読み込みに失敗してもエラーになりませんので、重要なモノを読み込ませる場合は require を使いましょう。 require に変えてみてエラーが出るようなら、ファイルの読み込みに失敗していると言う事になります。

jg1wjz
質問者

お礼

t_ohtaさん、ありがとうございました。 requireにしても読み込まれていませんでした。 で、ふと パーミッションをみてみたら 0644 だったので 0777にしたら displayに表示し、読み込まれたのがわかりました。 でも、表示させたくない場合はどうしたらよいのでしょう? (これは別問題ですか?)

jg1wjz
質問者

補足

解決しました。 またまた</php ・・・を忘れていました。(--; 有難うございました!

関連するQ&A

  • php include がどうしてもできません;;

    php include がどうしてもできません;;; php、超がつく程初心者です; Windows7、Internet explorer9、Apache2.2、PHP5.4.6、現在はlocalhost上でphp動作確認、 作業しております。 サイトのメニューをPHPで作成したいと思い色々必死に調べ、htdocsフォルダ直下同士?のphpは何とか表示させることができました。(localhostですが) しかしhtdocsより下のフォルダに入っているものですと、例え同階層でも表示がされません; ↓のような感じで完全に詰まってしまいました; htdocs/index.html に htdocs/topmenu.php を表示させる↓ htdocs/index.html内で <?php include(dirname(__FILE__).'/topmenu.php'); ?> → 成功 htdocs/naiyou/naiyou1.html に htdocs/naiyou/menu.php を表示させる↓ htdocs/naiyou1.html 内で <?php include(dirname(__FILE__).'/menu.php'); ?> → 失敗 htdocs/naiyou/naiyou1.html に htdocs/topmenu.php を表示させる↓ htdocs/naiyou1.html 内で <?php include(dirname(__FILE__).'/../topmenu.php'); ?> → やっぱり失敗 htdocsフォルダ直下のみでしかできない設定に私がしてしまっているのでしょうか。 元々直下のみしか表示できないもの…? それとももっと基本的なところでひかかっているのかな… 何かのパスが間違っているのでしょうか。 htdocsフォルダの場所とDocumentRootは共に "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs" となっています; 知識不足もあり言葉が足りないこと、説明がよく分からないことも多いこともあるかと…すみません。 既出の質問等も探しているのですが同条件を中々見つけられず、もうかれこれ1ヶ月近く解決せず悩んでいます。 申し訳ありませんが、どなたかご教授ください...;

    • ベストアンサー
    • PHP
  • php インクルードincludeした時のパス

    phpにてincludeした時のパスで躓いています。 現在のツリーは以下の様になっています。 index.html common  ├header.html  ├footer.html  ├right.html  ├img   ├navi-home.jpg   ├navi-1.jpg  ├css   ├base.css salon  ├hair    ├kari     ├index.html     ├access     ├ ├index.html     ├menu     ├ ├index.html この中の../hair/kari/index.htmlの中に ../common/header.html及びfooter.htmlを <?php include_once(dirname(__FILE__).'/../../../common/header.html'); ?> にてインルードしています。(書き方あってます?dirname(__FILE__).いります?) つぎに../hair/kari/access/index.htmlの中にもインクルードします。 <?php include_once(dirname(__FILE__).'/../../../../common/header.html'); ?> という風に一つ下の階層なので../を付け足しました。 このようにページ毎にheaderまでの相対パスが違うので、そのページ毎にパスを書き換えていかなければいけないものなのでしょうか? また../始まりではなく/始まりでないと表示されません。 /始まりは絶対パスでしたっけ? この書き方は間違っているのでしょうか? そして最後に、 ../common/header.htmlの中の画像ファイルやリンクは <img src="/common/img/navi-home.jpg"> の様に書かないと、インクルードしたファイル側で表示されません。 これも同じように/始まりのこの書き方でいいのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpのrequirについてe

    php初心者です。 同じような処理をまとめて、関数にしました。 debug中なので、function()ひとつに ひとつのphpファイル名をつけています。 あとで合体するつもりで。 当然、requireの数が複数になっていますが、requireの行(冒頭)でエラーになってしまいました。 echoで1行ずつ表示して確認しました。原因がわからず順番を変えたりpath指定を変更したりしたのですが、読み込んでくれません。 なので、処理直前で必要な関数を読み込むようにしたりもしたのですが 冒頭で require (dirname(__FILE__)."/include/******.inc"); require (dirname(__FILE__)."/include/******chk.php"); require (dirname(__FILE__)."/../include/******m.inc"); require (dirname(__FILE__)."/m******.php"); require (dirname(__FILE__)."/m******andom.php"); require (dirname(__FILE__)."/m******time_client.php"); require (dirname(__FILE__)."/error_******.php"); require (dirname(__FILE__)."/log******.php"); まではクリアできました。 (path指定が混ざってますがいろいろ試したので。。。) で、ある関数を呼ぶ直前に require (dirname(__FILE__)."/lfunc*****.php"); としたのですが /lfunc*****.php に飛ばないんです。 (echoが出ない) こういうのはどのような原因があるのでしょうか? ちょっと思ったのですが、何か重複してるのでしょうか? 似たような変数名が多くなってますが、requireした中のfunctionの中なら 別の変数として扱われますよね? 一応構文チェックなどはちゃんと no シンタックスエラーを確認しています。 ログにもかかれないし。 すみません、php初心者にアドバイスお願いします。

    • ベストアンサー
    • PHP
  • PHPの includeについて?

    現在、レッツPHPさんの新着ブロガーを設置しようと試みています。 -------------------- rss/new/index.html /PEAR.php /rssup.php /XML/Parser.php /XML/RSS.php ------------------------ 上記のようなファイル構造で、index.html内に<?php include("rssup.php"); ?>を記述しているのですが、何も起きません。 ※rssup.phpは、正常に動いていてRSS情報の取得は出来ています。 設置方法通りに<?php include("rssup.php"); ?>を記述するだけでは、駄目なのですか? どなたかご教授いただけないでしょうか?

    • ベストアンサー
    • PHP
  • PHP include_once

    include_onceで読み込んだファイルが そのままテキストとして出力されてしまいます。 以下のような感じです。 インクルードするファイル fail.inc test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); ソース本体 src.php <?php include_once('./fail.inc'); 以下処理 exit(); ?> これをそのまま実行すると以下のように出力されます。 test_val = array("aaa" => "aaa111", "bbb" => "bbb222", "ccc" => "ccc333"); includeせずにそのまま走らせると正常に動きます。 httpd.confのaddtypeにincという拡張子は追加していませんが 他の同様のソースでは問題なく読み込めます。 require_onceとかも試しましたが同じようにfail.incの中身がそのままテキストとして 出力されてしまいます。 どうしたら正しく読み込めますでしょうか。 ご回答よろしくお願いしますm(_)m

    • ベストアンサー
    • PHP
  • PHP includeについて

    今、下記のようなサーバサイドのプログラムを作成しており、 解決できずに困っております。 【環境】 CentOS5 [PHP5] sakuraインターネット レンタルサーバ スタンダートプランです。 参考:http://www.sakura.ne.jp/rentalserver/matrix.html 【概要】 cronよりinclude関数を含むPHPファイルを実行、 そのPHPファイル内から他dirに保管されているテキストを参照し、 外部ASPへ文字列を送信する、という内容です。 理想としては、 cron1よりphp1を実行し、 php1に記載されている下記、 include 'phpA'; include 'phpB'; これら2行を完結させる事です。 しかしphpAは正常動作するのですが、 phpBは正常に動作せず、理想と異なる結果になります。 テストとして、下記を実行しました。 ★test1 php1のinclude関数を入れ替える。 include 'phpB'; include 'phpA'; 結果:phpBは正常動作、phpAにエラー。 ★test2 cron1よりphpAのみを実行 cron2を追加しphpBを実行 結果:phpA&B共に正常動作。 ★test3 test1と同じ構造でphp1を次のように変更。 include 'phpA'; sleep(30); session_unset(); $_SESSION = array(); session_destroy(); session_start(); include 'phpB'; 結果:phpAのみ正常動作。 上記の通り、cronを2種作成すれば理想の結果が返るのですが、 仕様上それは採用できず、あくまでphp1のみをcronより実行する 必要があります。 セッション・変数をリセットする必要があるのかと test3を試しましたが結果は同じでした。 尚、私はPGを専業としておらず質問に不適切な記載があるかと存じます。 お知恵をお借りできますと幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPでincludeから取り込んだphpファイル内の相対パスの記述方法について

    階層の異なる場所にあるphpスクリプトファイル内に記述してあるticker.phpを参照するとします。 --"sample.php" <?php include_once(dirname(__FILE__) . "/../ticker.php"); ?> ------------ --"../ticker.php" // ※一部割愛 <embed src="ticker.swf"> ------------ と、このように何の変更も加えない状態だと、ticker.php内に記述しているembedファイルがsample.phpフォルダにあると見なされ、swfファイルの読み込みに失敗します。この「ticker.swf」をきちんと参照できるようにしたいのですが、最適な方法はございますでしょうか。

    • ベストアンサー
    • PHP
  • include先でのinclude元の変数について

    度々お世話になっています。 include先でのinclude元の変数の扱いについて疑問に思ったので質問させて下さい。 include元ファイルtest.php include先ファイルinclude.phpとしてtest.php内の変数をinclude.phpに渡したいと考え以下のコードを書きました。 test.php <?php $test = "いけるかな?"; include "include.php"; ?> include.php <?php echo $test; ?> 結果、$testの値を表示する事が出来なかったのですが、$testの値を表示するためにはどのような記述方法があるのでしょうか? また、このような動作を期待している理由としてはPHP部分とHTMLを分離させたいと考えており、ユーザ定義関数に変数を引数として渡して、出力処理をユーザ定義関数内で行うという事も考えたのですが、include先に値を渡す事が出来れば、非常にわかりやすく分離出来ると考えたからです。 他に、PHP部分とHTML部分をファイル分けするやり方などありましたら教えて頂けますとうれしいです。

    • ベストアンサー
    • PHP
  • PHPファイルをincludeしてHTML表示する

    お世話になります。 PHP含めプログラム初心者の者です。 どうか知恵をお貸しください。 現在制作しているHTMLサイトがあります。レイアウトはCSSです。 そのうちのひとつのコンテンツのブログページをサイト内WordPressで更新できるようにしたいと考えています。本来なら全てのページをWordPress化したほうがいいのでしょうが、新たにまたいろいろ記述する時間がないもので、とりあえずはblog.htmlなページのコンテンツ表示領域にWordPressで作ったindex.phpが表示されたらいいなと考えております。 ネットでいろいろ調べた結果、「phpファイルをincludeする」という方法によって、それをhtmlファイルで表示する方法があるようです。そこで質問なのですが、具体的にどのようにソースを記述すればそれは可能になるのでしょうか。 (1).htaccessに「AddType application/x-httpd-php .html」と記述する。 (2)表示したいHTML部分に「include(dirname(__FILE__).'/index.php');」と記述する。 とありましたがそれだけではできませんでした。具体的にそうしればいいか教えていただけないでしょうか。(htmlの拡張子をshtmlにするとかいう情報もありましたが定かではありません。)PHPに関しては本当に初心者な者で、変な質問をしているかもしれませんがどうかよろしくお願い致します。 ※参考にした情報ソースは下記です。 http://www.yusk.org/memo/php-memo/php_include_001.html ※HTMLソースは下記です。 <body> <div id="header"> ~略~ </div> <div id="contens"> <div id="leftmenu"> ~略~ </div> <div id="rightmenu"> <div id="rightbox-inside"> <div id="rightbox-inside-txt"> <p class="title">BLOG</p> <p class="standard"> include(dirname(__FILE__).'/index.php');(←ここにブログを表示させたい) </p> </div> <div style="clear:both;"></div> <div id="rightbox-buttom"> </div> </div> </div> </div> <div id="footer"> ~略~ </div>

    • ベストアンサー
    • PHP
  • PHP PEARパッケージのincludeができない。

    PHP PEARパッケージのincludeができない。 お世話になっております。 phpのPEARパッケージのincludeができません。 行うと PHP Warning: require_once(File/CSV.php): failed to open stream: そのようなファイルやディ レクトリはありません in /var/www/httpdocs/XXXXXXXX.php on line 10 PHP Fatal error: require_once(): Failed opening required 'File/CSV.php' (include_path='.:/usr/share/pear') in /var/www/httpdocs/XXXXXXXX.php on line 10 となってしまいます。 エラーメッセージ中の/usr/share/pear上に確かに存在します。 何か他に条件などあるのでしょうか? お願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう