-1

これは非常に自由で、おそらく単純な質問です。あらかじめお詫び申し上げます。

別のWebページを作成するリンク(またはボタンなど)を含むWebページを作成しようとしています(呼び出されるたびにページを生成するサーバーにインストールされたプログラムを使用)。問題は、サーバーがそれをユーザーがディレクトリに書き込もうとしていると解釈し、ユーザーがツリーへの書き込みアクセス権を持っていないことです。ページを作成する関数も stddout に出力できますが、ユーザー (および Web ページ) のディレクトリへの書き込みアクセスを拒否しながら、その関数でページを生成してブラウザにロードする方法を探しています。

アドバイスをいただければ幸いです。参考までに、私が使用しているプログラムは Pygments と呼ばれ、ボタンがクリックされるたびに色分けされた Web ページを生成しようとしています。デフォルトでは、Pygments は stddout に書き込みますが、実際には通常、読み込まれる HTML ファイルを生成するために使用されます。

4

2 に答える 2

0

ページを生成する 1 つのスクリプトと、存在しないページへの要求をそのスクリプトに送信する .htaccess ファイルを用意します。例: フォルダは次のようになります。

myfolder/
  .htaccess
  index.php

.htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f #this rule skips the rewrite if the requested file actually exists
RewriteCond %{REQUEST_FILENAME} !-d #this rule skips the rewrite if the requested directory actually exists
RewriteRule ^(.*)$ index.php?req=$1 [L,QSA]

index.php

<?php
if( !isset($_GET['req']) ) {
  die("no page requested.");
  // or whatever you want the default to be...
}

switch($_POST['req']) {
  case 'dogs.html':
    echo "dogs!";
    break;
  case 'cats.html':
    echo "cats!";
    break;
  default:
    echo "I don't know about that...";
}

http://mysite.com/myfolder/cats.htmlそのため、実際にそのディレクトリにファイルを書き込む必要なくリクエストできます。

于 2013-05-31T20:10:55.770 に答える
0

http://php.about.com/od/advancedphp/ss/file_write_php.htm

ファイルが既に存在する場合は、CHMOD 777 する必要があります。PHP だけでフォルダに書き込む際に特に問題はありません。

于 2013-05-31T20:08:03.083 に答える