0

質問はタイトルにあります。

webrootのphpファイルでアクセスできます$_COOKIE['blah']が、セキュリティ上の理由から、webrootの外部にアクセスできないインクルードがあります。

/home/wwwroot/index.php$_COOKIE['blah']を読み取ることができます

フルパスはどこになりますかhttp://www.mydomain.com/index.php

/home/scrape/process.php$ _COOKIE ['blah']を読み取れません

ただし、これはWebルートの外部にあり、scrapeフォルダーはサーバーの外部からアクセスできません。

Index.phpは、Cookieに保存されている値をエコーでき、その値を含むタイムスタンプをログファイルに書き込みます。これは機能します。

すべてのコードを投稿せずに、これをシンプルにしようとすると、次のようになります。

<?PHP
include '../scrape/process.php'; // THIS FILE IS OUTSIDE THE WEBROOT
$cook=$_COOKIE['blah'];

echo "Cookie value is : " . $_COOKIE['blah'] ;
error_log('['.date("F j, Y, g:i a e O").']'.$cook."<br /> \n", 3,  $phperrorPath);
?>

<?PHP
echo 'Outer cookie is : ';
echo outer_cookie();
?>

Process.php関数はindex.phpから呼び出され、Cookieの値を返します。また、タイムスタンプとCookieの値を含む独自のログファイルを書き込みます。これは動作しません。ログファイルには値のないタイムスタンプのみがあり、index.phpには何も返されません。

function outer_cookie() 
{ 
    $cook=$_COOKIE['blah'];
    error_log('['.date("F j, Y, g:i a e O").']'.$cook."<br /> \n", 3,  $phperrorPath);
    return $cook; 
} 

process.phpにCookieデータを読み取らせるにはどうすればよいですか?私は明らかにウェブルートの外にあるものにクッキーパスを設定することはできません、そして私ができたとしても、それはウェブルートのすべてにアクセスできないでしょう...

$_SESSIONクッキーと一緒に使用する必要がありますか?私は仕事を複製しなければならないのは嫌だ...

4

1 に答える 1

0

これを機能させるには、両方のファイルを1つのドメインまたは1つのドメインのサブドメインに含める必要があります。

index.phpWebアクセス権がなく、ブラウザによって解析されないファイルに設定されているCookieにアクセスすることはできません。

php.netを確認してください:

Cookieは、リモートブラウザにデータを保存し、リピーターを追跡または識別するためのメカニズムです。CookieはHTTPヘッダーの一部であるため、出力をブラウザに送信する前にsetcookie()を呼び出す必要があります。

于 2012-08-20T12:41:07.430 に答える