mysqlを使ってweb上からの投稿データをサーバー上にhtmlファイルとして生成、保存しようとしたわけです。
生成先のフォルダのパーミッションを777にして作成。
htmlファイルの生成自体はテンプレ作って、それ利用して作り出すだけだったんで簡単なんですが、問題は生成されたファイルにあったわけです。
ファイルの所有者がapacheになっていて、他のphpファイルを読み出せないみたいなんですね。
モジュール版phpで作成されたらユーザー名がApacheになるのかな。
さて、困ったということでweb上をうろついてたらこんなん見つけたんで覚書。
XREAなど、chownを完全に制限しているサーバーの場合は、生成したファイル自体の再作成を行う必要があるらしい。
サーバー上のファイルを一旦、自分のパソコンに保存して、サーバー上のファイルを消してから保存しておいたファイルをFTPでアップロードすればとりあえずは解決する。
ただ、面倒くさすぎるのでCGIで再作成をしたいわけです。
手順はこんな感じらしい。
モジュール版PHPでApache権限のファイルのパーミッションを666などにする。
CGIでファイルをメモリに読み出し、ファイルを削除する。
同じ名前のファイルを作成して書き込み、パーミッションを適切に直す。
CGIはhttpから呼び出す必要があって、cronなどでジョブ化するのが普通だそうで。
追記。
むしろ最初からphpをCGIとして動作させてhttpから呼び出してファイル生成すれば問題ないですね。
生成先のフォルダのパーミッションを777にして作成。
htmlファイルの生成自体はテンプレ作って、それ利用して作り出すだけだったんで簡単なんですが、問題は生成されたファイルにあったわけです。
ファイルの所有者がapacheになっていて、他のphpファイルを読み出せないみたいなんですね。
モジュール版phpで作成されたらユーザー名がApacheになるのかな。
さて、困ったということでweb上をうろついてたらこんなん見つけたんで覚書。
XREAなど、chownを完全に制限しているサーバーの場合は、生成したファイル自体の再作成を行う必要があるらしい。
サーバー上のファイルを一旦、自分のパソコンに保存して、サーバー上のファイルを消してから保存しておいたファイルをFTPでアップロードすればとりあえずは解決する。
ただ、面倒くさすぎるのでCGIで再作成をしたいわけです。
手順はこんな感じらしい。
モジュール版PHPでApache権限のファイルのパーミッションを666などにする。
CGIでファイルをメモリに読み出し、ファイルを削除する。
同じ名前のファイルを作成して書き込み、パーミッションを適切に直す。
CGIはhttpから呼び出す必要があって、cronなどでジョブ化するのが普通だそうで。
追記。
むしろ最初からphpをCGIとして動作させてhttpから呼び出してファイル生成すれば問題ないですね。
スポンサーサイト
getAllはデータベース内のテーブル内容を取得する。
//総データを配列で取得
$dbh->setFetchMode(DB_FETCHMODE_ASSOC);
$result = $dbh->getAll('SELECT no,data,name FROM tablename');
こんな感じで記述。
no,data,nameはテーブル内のキーワード。
tablenameはそのままテーブルの名前。
setFetchMode(DB_FETCHMODE_ASSOC)はフェッチモードといって配列の取得の仕方を変えるような感じ。
これをしない場合、
echo $result[0][0];
echo $result[0][1];
という感じで読み取ることになる。
これがフェッチモードで指定すると、
echo $result[0][no];
echo $result[0][data];
という感じで読み取れる模様。
//総データを配列で取得
$dbh->setFetchMode(DB_FETCHMODE_ASSOC);
$result = $dbh->getAll('SELECT no,data,name FROM tablename');
こんな感じで記述。
no,data,nameはテーブル内のキーワード。
tablenameはそのままテーブルの名前。
setFetchMode(DB_FETCHMODE_ASSOC)はフェッチモードといって配列の取得の仕方を変えるような感じ。
これをしない場合、
echo $result[0][0];
echo $result[0][1];
という感じで読み取ることになる。
これがフェッチモードで指定すると、
echo $result[0][no];
echo $result[0][data];
という感じで読み取れる模様。