MysqlとPHPでショッピングサイトを構築しております。
データベースへの接続のIDとパスワードは別ファイル(dbpass.txt)にしてデータベースに接続しています。通常ですと、public_html以下には置かないようにしているのですが、今度のレンタルサーバではtelnetも使えませんし、public_html以下しかファイルを置くことができません。
なにかよい方法はないでしょうか?
.htaccessの設定でできるかなとも思ったのですが、よくわかりません。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

.htaccessが使えるのなら下記の一行を入れてみてはいかがでしょうか?



AddType application/x-httpd-cgi .txt
要は拡張子txtはcgiですよ と指定してしまうわけです。

それかこう書いてみる

<Files ~ "dbpass.txt">
Order allow,deny
Deny from all
</Files>

これは.htaccessファイル自体を見せなくする時などに使う手です。

googleあたりで".htaccess 隠す"で検索するとヒットします。
    • good
    • 0
この回答へのお礼

有難うございます。
<Files ~ "dbpass.txt">
Order allow,deny
Deny from all
</Files>
の指定を.htaccessにするとばっちり消えました。

お礼日時:2001/08/08 18:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qサーバー内のファイルは、public_html配下でないとだめ?

サーバー内にファイルを保存するテストプログラムを
作成しています。
C:┬public_html ←公開用

└Temp     ←非公開
公開したディレクトリ配下にファイルを保存する事は
できるのですが、非公開のディレクトリに保存すると
アクセスできないとエラーが出力されます。
テキストファイル等スクリプト中で作成されるファイ
ルは、公開されているディレクトリ配下でないといけ
ないのでしょうか?
もし公開されいているディレクトリ配下の場合、皆さ
んはどのようにアクセスされないように対策している
のでしょうか?

-----テストプログラムです。-----
<?php
// OK
// $filename = "moji.dat";
// NG
// $filename = "C:\Temp\moji.dat";

$str = "文字列";

$fp = fopen($filename,"w");
fputs($fp, $str);
fclose($fp);

$fp = fopen($filename,"r");
$str = fgets($fp, 512);
fclose($fp);

print("$str");
?>
-----テストプログラムです。-----

サーバー内にファイルを保存するテストプログラムを
作成しています。
C:┬public_html ←公開用

└Temp     ←非公開
公開したディレクトリ配下にファイルを保存する事は
できるのですが、非公開のディレクトリに保存すると
アクセスできないとエラーが出力されます。
テキストファイル等スクリプト中で作成されるファイ
ルは、公開されているディレクトリ配下でないといけ
ないのでしょうか?
もし公開されいているディレクトリ配下の場合、皆さ
んはどのようにアクセスされないように対...続きを読む

Aベストアンサー

書き方が不味かったかな。

php.iniは
safe_mode = Off
doc_root =
open_basedir =
でかまいません。
Document_rootと前回書いたのは、
Apacheのhttpd.conf側の話です。

php側では、safe_mode = Offのみで
全ファイルへのアクセスが可能です。

あと、arisa5さんのアドバイスに対する補足で
OSがWindows2000Proとなってますので、
phpの実行ユーザ(Apacheの実行ユーザ)に
対し、ファイルアクセス権を与える必要がありますが
そちらは大丈夫ですか?

Qpublic_htmlと同じ階層にあるフォルダの画像ファイルにアクセスできない。

共有サーバーを利用していますが、

public_html/index.php より 一つ上のpublic_htmlの階層にあるimageフォルダの中のファイル(phpファイルとjpgファイル)にアクセスしたいのですが、phpファイルは読み込めるのですが、画像ファイルを読み込むことができません。原因が分かりません。もし何か気付きましたら教えてください。よろしくお願いします。( imgaeフォルダと画像ファイルのパーミッションは777にしています。phpファイルは644です。)

<!--index.php->
<?php
require_once("../image/HelloWord.php");
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
</head>
<body>
<img src="../image/HelloWorld.jpg"/>
</body>
</html>

Aベストアンサー

> imageフォルダに同様に入れたHelloWorld.phpにechoでHello World> を書きましたが、それの場合は、public_html/index.phpのほうで読
> み込むと、表示される
当然です。
それはPHPとしてサーバ側の処理であって、HTMLがブラウザで解釈されてクライアントからアクセスされるURLとは別物です。

> 仮にバイナリーデータで得たものをHtmlに出力するという形になる
> と、どのような形が考えられますでしょうか?
画像ファイルのバイナリデータを表示する方法は、以下ページのような方法を取ります。
http://kaworu.jpn.org/kaworu/2008-04-06-1.php

ただし、当たり前ですが、画像の種類によってバイナリデータは異なりますし、その画像をバイナリデータとして表示するということは、そもそも公開して構わない情報ということになります。
また、jsファイルもファイル内容を読み込んで全てechoするというなんとも無意味な実装を取ることになります。

Q複数のtxtファイル内のデータを抽出して、別のtxtファイルを作成

登録者に対して、メールを送信するスクリプトを組もうと考えています。

登録はtxtファイルを作成する形式で、作成されるファイルは
20070927_190756.txt
のようなものです。

この中には、メールアドレスだけが記述されています。

dataディレクトリ内にこのファイルが登録者の数だけ格納されているのですが、これらの登録者に対して一斉にメールを配信する際に、これらのファイルからメールアドレスを抜き出して例えば「members.txt」を作成し、配信しようと考えています。

登録の部分、送信の部分につきましては、独力でなんとかできたのですが、この「ファイルからデータを抽出して別ファイルにする」ということができないので困っています。

どなたかお知恵を拝借できないでしょうか。
よろしくお願い致します。

Aベストアンサー

foreach( glob("*.txt") as $filename )
{
$file = file( $filename );
echo $file[0];
}


効率が悪そうですが。ご参考まで

Qstr_get_htmlがこける原因を知りたい

よろしくお願いします。

PHP であるサイトをスクレイピングしているのですが、str_get_htmlが特定?のページだけ処理が失敗します。

例えば、1ページ~10ページ目までをスクレイピングしているときに、8ページ目だけ失敗します。

str_get_htmlの処理に失敗する原因って何々あるんでしょうか?

以下は、サーバ・PHPの情報になります。
・サーバ:さくらのレンタルサーバ スタンダード
・PHP -v 5.4.22
・ソース
$HTML = file_get_contents($url);
$encode_HTML = mb_convert_encoding($HTML, 'UTF-8', 'CP932');
$Dom = str_get_html($encode_HTML);
// ここで$Domに値がはいっていないのを確認しました。
// print_r($encode_HTML); はHTMLソースにはなってました。
if ($Dom){
echo "OK";
}else{
echo "NG";
continue;
}

よろしくお願いします。

PHP であるサイトをスクレイピングしているのですが、str_get_htmlが特定?のページだけ処理が失敗します。

例えば、1ページ~10ページ目までをスクレイピングしているときに、8ページ目だけ失敗します。

str_get_htmlの処理に失敗する原因って何々あるんでしょうか?

以下は、サーバ・PHPの情報になります。
・サーバ:さくらのレンタルサーバ スタンダード
・PHP -v 5.4.22
・ソース
$HTML = file_get_contents($url);
$encode_HTML = mb_convert_encoding($HTML, 'UTF-8', '...続きを読む

Aベストアンサー

再帰上限の問題でしょうか?
http://tips.recatnap.info/error_recursion_run_100_simple_html_dom_parser/

【代替案1: DOMDocument::loadHTMLFile】
http://php.net/manual/ja/domdocument.loadhtmlfile.php

$dom = new DOMDocument;
@$dom->loadHTMLFile($url);

【代替案2: preg_match】
http://php.net/manual/ja/function.preg-match.php

こちらは正規表現の知識が必要となります。

Qsession_set_save_handler と session_regenerate_id は同時に使えない?

session_set_save_handlerを利用してセッションデータをDBに格納しているのですが、session_regenerate_idを使用するとIDが毎回変わるため、session_set_save_handler での UPDATEやDELETEなどが出来なくなってしまいます。

DELETE FROM session WHERE sid = ".session_id()."の為。

どのようにすれば両方同時に使用できるのでしょうか?

Aベストアンサー

session_set_save_handler関数は、
設定可能な各、open/close/read/write/destroy/gcに
引数として付加する値がありまして、
writeだった場合は、第一引数にセッションのIDが与えられます。
この値を元に値を格納すればよいのではないかと思いますが、いかがでしょうか。

質問者さんの例文はdestroyなので、destroyの例を下記に。
<?php

function _destroy($session_id){
global $DBCON;

mysql_query($DBCON, "DELETE FROM session WHERE sid = '".$session_id."'");
return true;
}

?>
上記はmysqlを使用している場合の一例です。
session_id関数を参照するのではなく、引数として与えられてきたセッションのIDを参照しています。
また、PHP5.1.0以降をお使いであれば、session_regenerate_id(true)と引数にtrueを入れてやれば、古いセッションはregenerateされたときに削除されることを補足しておきます。

直、そのほかの関数に関して、全体的にどのように書くかは
http://yuubiseiharukana.blog.shinobi.jp/Date/20090316/1/
上記URLのブログのエントリでまとまっておりましたので参考にされると良いかも知れません。

session_set_save_handler関数は、
設定可能な各、open/close/read/write/destroy/gcに
引数として付加する値がありまして、
writeだった場合は、第一引数にセッションのIDが与えられます。
この値を元に値を格納すればよいのではないかと思いますが、いかがでしょうか。

質問者さんの例文はdestroyなので、destroyの例を下記に。
<?php

function _destroy($session_id){
global $DBCON;

mysql_query($DBCON, "DELETE FROM session WHERE sid = '".$session_id."'");
return true;
}

?>
上記...続きを読む


人気Q&Aランキング

おすすめ情報