• ベストアンサー

PHPで違うサーバーのスクリプトでクッキーを読めますか?

サーバーAで次のようにクッキーを設定しました。 test.php <? setcookie("TEST","値"); ?> サーバーBで次のようにクッキーを読み込み ました。 test2.php <? $kekka=$HTTP_COOKIE_VARS["TEST"]; print $kekka; ?> 構想は、「値」と表示させることなのですが、 何も表示されませんでした。 上記は、何が間違えているでしょうか? どうぞよろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

クッキーはブラウザ側に保存されます。 違うサーバーからアクセスがあってもブラウザはクッキー値を返しません。 そんな事できたら、情報が漏れまくりますよ。

neo1124
質問者

お礼

なるほど。考えてみたら当たり前ですね。ということは、同じサーバーにクッキー設定と読み込みのスクリプトを置いて、<img>タグで読み込めばよさそうです。どうもありがとうございました。

関連するQ&A

  • Cookieの値の取得

    お世話になっています。 Cookieの値の取得について疑問がありますので、どなたか教えていただけないでしょうか? ------------------------------------------------------- /test/test1.php の中に <? setcookie ("test" , "hogehoge" ,time() + 86400 * 30); ?> ------------------------------------------------------- /test/test2.php の中に <? echo $HTTP_COOKIE_VARS[test]; ?> ------------------------------------------------------- /test2/test3.php の中に <? echo $HTTP_COOKIE_VARS[test]; ?> ------------------------------------------------------- というファイルを作成しました。(test3.phpのみ階層が違います) まず始めにtest.phpを表示させて、Cookieの情報を保存させます。 次にtest2.phpを表示させると、Cookieの情報を取得することが できますが、test3.phpを表示させると、Cookieの情報を取得すること ができません。これは、なぜなのでしょうか?また、取得する方法 はあるのでしょうか(無いわけは無いと思いますが・・・)? 以上です よろしく、お願い致します。 teraum

    • ベストアンサー
    • PHP
  • クッキー

    <?php setcookie(...); sleep(...); $cookiedata = $_COOKIE['...']; このようにして書き込んで間もないクッキーの値を$cookiedataに入れようとしましたがNULLが入っていました。 <?php $buf = ...; setcookie($buf); sleep(...); $cookiedata = $buf; とするのではなく、実際にクッキーから取得したいのですが、よい方法はありませんか?

    • 締切済み
    • PHP
  • phpのsetcookie()関数について 初心者なんですがわからない点があるのご返答お願いします。

    yahoo知恵袋で質問して回答も貰ったんですが その後に確認したいことがあったのですがあちらで質問の補足は200文字までという制限があったのでこちらで質問させてもらっています。 あちらでした質問が ////////////////////////////////ここからyahooでした質問///// phpの勉強をしている初心者のものですが、私の参考にしている本のsampleコードで わからない点があります。 phpの勉強をしている初心者のものですが、私の参考にしている本のsampleコードで わからない点があります。 <?php setcookie("count", true); ?> <html> <head> <title>sample<title> <body> <h2>店内のご案内</h2> <hr> <?php if(!isset($_COOKIE["count"])){ print "はじめてのおこしですね。<br />\n"; } else{ print "毎度ありがとうございます。<br />\n"; } ?> </body> </html> というコードなんですが一回目のアクセスの時にはif文のtrueが実行されて「はじめておこしですね」と 表示されて二回目以降は「毎度ありがとうございます」と表示されると本には書いているのですが 私にはsetcookieの部分で$_COOKIE["count"]にはtrueという値が与えられているからif文の条件である $_COOKIE["count"]に値がないというのはfalseでelseの文の処理がされて「毎度ありがとうございます」 と表示されるか $_COOKIE["count"]の値がtureなのでif文条件式全体がtureになり、「はじめてのおこしですね。」が 表示されるが二回目以降もその表示がされていくか のどちらかになると思うのですが、どのように考えればよいのか教えてください。 ///////////////////////ここまでyahooでした質問です。////////// と質問しそれに回答者が //////////////////////回答者が答えてくれた返答//////////////// クッキーは、ブラウザに記録され、ページにアクセスするときに自分のクッキーをサーバに渡します。 SetCookieの段階では、このクッキーはまだ有効ではありません。 SetCookie()関数はSet-Cookie:ではじまるHTTPヘッダを作ってブラウザに渡すべきクッキーを書き出すだけなのです。 順番としては、 ブラウザがページを読み出す→サーバはクッキーを添えて文書をブラウザに渡す→ブラウザはクッキーを受け取って記録する→ ブラウザが先程受け取ったクッキーを添えてページを読み出す→サーバは受け取ったクッキーがあるのでif(!isset($_COOKIE["count"]))がfalseになり「毎度ありがとうございます。」と表示する。 /////////////////////ここまで回答者の返答/////////////// と答えてくださったんですがその後に聞きたいことがあったのですが 上で書いたとおり制限があったので質問できなかったのでその質問を ここから下に書くのでよければご返答お願いします。 /////////////////////ここから答えてもらいたい質問////////// 自分なりに教えてもらったことを解釈してみたんですが、 一度目のアクセスでは、まずブラウザがページをサーバーに要求しそれに対してサーバーがページとクッキーを渡すが、 このときのブラウザに渡すページは、ブラウザからはクッキーをもらっていないのでクッキーの処理がしていないページになる。 なので一回目のif(!isse($_COOKIE["count"]))は$_COOKIEの値を定義されたページは貰っておらず値がないのでtrueとなり 一回目はサーバーからクッキー受け取ったクッキーを記録するだけにとどまる。 そして二度目のアクセスでは、ページの要求と一度目のアクセスで受け取ったクッキーをサーバーに渡すので、 サーバーは今回はクッキーの処理をしたページをブラウザに渡すのでif(!isset($_COOKIE["count"]))は$_COOKIEの値を定義されたページを貰っているのでflaseとなり 「毎度ありがとうございます」と表示される。 このようにわたしなりに解釈したんですがこのように考えてもよいでしょうか? もしよろしければ見づらい文なんですがお返事お願いします。

    • ベストアンサー
    • PHP
  • クッキーの削除がうまくいきません

    <?php setcookie("a","おいしいクッキー"); $a=$_COOKIE["a"]; print "$a"; print "<br />"; setcookie("a","",time()-60); $b=$_COOKIE["a"]; print "$b"; ?> と書いて、クッキーの設定は出来たのですが、有効期限を過去にしても クッキーが削除されずにエラーメッセージが出ます。 エラーメッセージ Warning: Cannot modify header information - headers already sent by (output started at C:\Eclipse\workspace\PHP\cookie.php:7) in C:\Eclipse\workspace\PHP\cookie.php on line 11 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpでのCookieのパスの書かれ方

    phpの初心者なのですが、Cookieでうまく情報の引き渡しができないので、アドバイス頂けないでしょうか? test1でCookieを初期設定した後に、Cookieを使ってtest2を呼び出し、 test2上で設定し直した値でCookieを書き変えてtest2を再呼び出ししています。 再呼び出しした時のCookieが読めないので、ブラウザを調べてみると、yyという名前のクッキーが2つ存在しているためだと判りました。値は確かに置き変わっているのですが、パスが違っているので読み出せないようです。 初期設定した時のパスは /tst/  → test1.phpでsetcookieで設定したもの 再設定した時のパスは /  → test2.phpの中のJavascriptで設定したもの になっていました。 ▽test1.php (/svr1/tst/) setcookie("yy",$yy,0,"./"); (略) header("HTTP/1.1 301 Moved Permanently"); header("Location: test2.php"); ▽test2.php function set_Cookie() { yy = parseInt(document.f1.ck_yy.value); document.cookie = "yy=" + yy + "; path=/"; return true; } <php? $yy = $_COOKIE['yy']; ?> <form name="f1" action="test2.php" method="post"> <input name="yy">  <input type="submit" value="実行" onClick="set_Cookie()">   </form> setcookie の引数であるパス名を最初は省略していたのですが、/tst/というパスが入ってきてしまうため、パス名をあえて ./としてみたのですが結果は同じでした。 ちなみにtest1の呼び出し元は別のサーバーで以下のように呼びだしています。 ▽test0.html (/svr0/wwwroot/) <a href="http://svr1/tst/test1.php">test1</a> パス名はどのように決まるのでしょうか?

    • ベストアンサー
    • PHP
  • クッキーが保存されずに困っています

    どなたか、詳しい方がおりましたらアドバイスをお願い いたします。私はプログラムを仕事としている者では ありませんが、独学でPHPを勉強しております。 クッキーが保存されなくて困っています。 以下の部分です。 クッキーの有効期間は設定していませんが、ブラウザを 閉じずにテストしていての情況です。 ---------------------------------------------------- ファイル名:rogin.php <?php setcookie("userck","ckdata=100"); print $_COOKIE[userck]; ?> <html> <body> <br><br><br> <center> <table border="1"> <form method="post" action="<?=*********"> <tr> <td> Email: </td> <td><input type="text" name="data1" size="30"> </td> </tr> <tr> <td> pass: </td> <td><input type="text" name="data2" size="30"> </td> <tr> <td colspan="2" align="center"> <input type="submit" name="sousin" value="送信"> </td> </tr> </form> </center> </body> </html> ---------------------------------------------------- どうしてクッキーが保存されないのか自分なりにいろいろと 調べたり、テストをしてみたりしました。 テストの内容 test1.php <?php setcookie("userck","ckdata=100"); ?> test2.php <?php print $_COOKIE[userck]; ?> 上の2つのファイルを作成して、test2.phpで出力してくるか どうかを試してみますと、問題なく「data=10」が出力されて きます。(保存されているかどうかだけを調べたいので、 parse_strは省略しています。) ところが、問題のrogin.phpでクッキーを保存して別のファイル で$_COOKIE[userck]を取得しようとしてもどうやら保存されて いないようです。 rogin.phpの内部に記載した、print $_COOKIE[userck];では ckdata=100は出力してきます。 それではと思い、test1.phpでセットしたクッキーはrogin.phpで 取得できるのかどうかをテストしてみますと、無事に取得できます。 setcookie()の前にはHTMLの出力はありません。 クッキー名にアンダーバーも使っていません。 何か、php.iniに関係するのかと思い、一応iniファイルに output_buffering = On を書き足したりもしました。 クッキーが保存されない原因で、考えられることはどんなこと なのかが知りたいです。 どなたか、お分かりになる方アドバイスをお願いできないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • クッキーの削除方法

    PHP5にて以下のようにクッキーを連想配列でセットしています。 setcookie("cookie[1]", "10", time()+600); setcookie("cookie[2]", "20", time()+600); setcookie("cookie[10]", "100", time()+600); この場合、一部のクッキー(例えばcookie[2]で設定したもの) だけを削除するにはどうすれば宜しいのでしょうか? 試しに以下の様に記述してみましたが、上手く削除されませんでした。 setcookie("cookie[2]"); また、全てのクッキー(全ての連想配列)を いっぺんに削除する方法もありましたら、お教えください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • クッキーがセットされません

    PHP初心者です。 よろしくお願い致します。 環境 レンタルサーバーを借りています PHP 5.2.9(CGI) 過去のスレッドも参考にしながら、クッキーを設定しましたが、保存されません。 ***コードはじまり*** <?php // cookie があればプラス1、無い場合は1にする if ($_COOKIE['visit']) { $count = $_COOKIE['visit'] + 1; } else { $count = 1; } setcookie("visit", $count); ?> こんにちは。 <?php print $count ;?> 回目の訪問ありがとうございます。<br> <?php print_r($_COOKIE); ?> ***コードおわり*** ***出力結果はじまり*** こんにちは。 1 回目の訪問ありがとうございます。 移動 Array ( ) ***出力結果おわり*** 何度読込なおしても、出力結果はかわりません。 よろしくお願い致します。

    • 締切済み
    • PHP
  • クッキーについて質問が御座います

    phpのクッキーについての質問です。 皆様どうぞよろしくお願い致します。 phpでのクッキーを利用したプログラムを始めて 作成しようと思っているのですが、 /* test1.php */ <form method="POST" action="cookieTest.php"> <input type="text" name="id" /> <input type="submit" value="送信" /> </form> /* cookieTest.php */ $id = $_POST['id']; setcookie("cookieId",$id, time() + 7200); // クッキーのセット echo $_COOKIE["cookieId"]; 上記のようにtest1.phpからフォームにてcookieTest.phpへPOSTにて「aaaaa」という文字を送信した場合にcookieTest.phpにて、 echoにてクッキーが表示できません。 その後ブラウザの更新ボタンを1度押すと「aaaaa」が表示されるようになります。 更新を押さなければクッキー内容が表示されないのはどのような原因が考えられますでしょうか?どうぞ皆様よろしくお願い致します。

    • 締切済み
    • PHP
  • PHPでクッキー設定がうまくいかない

    PHPでウェブアプリを開発中です。 クッキーを設定したいのですが、下記のコードでうまくいきません。 $mail = $_REQUEST['mail'] ; $result1 = setcookie('mailaddress',$mail,time() + 3600 * 24 * 30,'/') ; if ($result1){ echo "&cookie1=OK" ; }else{ echo "Content-type:text/plain; charset=UTF-8"; echo "&cookie1=NG" ; return ; } 上記を実行すると$result1にfalseが返ってきます。 もちろん、クッキーは設定されていません。 原因として何が考えられるでしょうか? やりたいのは、ログイン時にユーザーが入力したメールアドレスを クッキーに保存しておいて、次回ログイン時にはそれが自動的に メールアドレス入力フィールドに表示させることです。 よろしくお願いします。

    • ベストアンサー
    • PHP