クッキーが取得できない理由とは?

このQ&Aのポイント
  • あるページに<IMG>タグを設置し、SCR属性にPHPページを指定して、そのPHPページでクライアントに保存してあるクッキーを取得したいのですが、思ったようにできません。
  • SCR属性に指定したURLを直接ブラウザでコールすると、期待どおりクッキーが取得できます。ファイルへの書き込みやDBへのアクセスなどは問題なくできるのですが、クッキーの取得だけができません。
  • これはセキュリティの関係で、元々できないのでしょうか?
回答を見る
  • ベストアンサー

クッキーが取得できません

あるページに<IMG>タグを設置し、SCR属性にPHPページを指定して、そのPHPページでクライアントに保存してあるクッキーを取得したいのですが、思ったようにできません。 クッキーの保存は、上記のPHPページと同じサイトにある別のPHPページで行っています。 <IMG>タグを設置するページは、全く別のサイトです。 SCR属性に指定したURLを直接ブラウザでコールすると、期待どおりクッキーが取得できます。 ファイルへの書き込みやDBへのアクセスなどは問題なくできるのですが、クッキーの取得だけ ができません。 これはセキュリティの関係で、元々できないのでしょうか? どなたかご教授いただけたらと思います。 よろしくお願い致します。

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

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

  • ベストアンサー
  • shogo0809
  • ベストアンサー率47% (25/53)
回答No.1

・img要素にscrという名前の属性はありません。 src属性ならありますが、HTMLの記述をミスしていませんか? ・cookieはどのように送信していますか? PHPならば通常setcookie()関数を使用していると思いますが。とりあえず以降そうだと仮定します。 setcookie()をどの様にコールしているかでCookieを読めるURLなどが変わってきます。 詳しくは http://jp2.php.net/manual/ja/function.setcookie.php を読んで頂くとして ・3番目の引数は指定していますか? 指定しない場合のデフォルトは30日間ですが、期限を越えるとCookieは取得できません。 ・4番目の引数は指定していますか? 指定しない場合は発行したPHPスクリプトの設置場所(URL)のカレントディレクトリとなります。 「同じサイト」の意味がよくわかりませんが、同じサーバーだとしてもこの引数を指定しないと 同じディレクトリ、または下位ディレクトリでしかそのCookieを取得することはできません(サーバーに送信されません)。 多分この辺だと思いますが……↑を読んでもダメだったら 実際のHTMLやPHPスクリプトを一部で良いので載せてもらえると回答がしやすいと思います。

Hamuuu
質問者

補足

shogo0809様 ご回答ありがとうございます。 scr属性は質問の際のタイプミスです。失礼致しました。 クッキーの書き込み、読み出し自体は問題なく行えています。 クッキーの書き込み:http://www.example.com/setcookie.php クッキーの読み出し:http://www.example.com/getcookie.php という2つのスクリプトがあり、それぞれは正常に動作します。 クッキーも期待通りの値を読み書きできます。 ところが、読み出しスクリプトを、全く別のドメイン(たとえば、 http://www.practice.com/result.html)のページに、 <img src="http://www.example.com/getcookie.php"> として埋め込むと、クッキーの読み出し処理だけが動作しません。 要は、「http://www.example.com/setcookie.php」を経由して「http://www.practice.com/result.html」にアクセスするユーザー を一意に識別したいのですが、「http://www.practice.com/」はCGIが使えないため、このような方式を考えています。 他の方法があればいいのですが、現在のところクッキーを使用する 方法しか思いつきません(^^;。IPアドレスは上記IMGタグ方式でも とれますが、完全に識別するには不安が残りますし・・・。 よろしくお願い致します。

関連するQ&A

  • JavaScriptで保存したクッキーをPHPで取得

    Javascriptのdocument.cookieで保存したクッキーの値を PHP側で取得することは可能でしょうか? 参考ページなど教えていただけると幸いです よろしくお願いします

    • ベストアンサー
    • PHP
  • クッキーの発行と取得

    現在作成しているWebコンテンツ内でCGIスクリプト(Perl)とPHPスクリプトが混在しているのですが、クッキーの処理で困っています。 CGIのほうで発行したクッキーはPHPで取得できるのですが、PHPで発行したクッキーをCGIでうまく読み込めていないようなのです。 CGIのほうは、無料配布サイトで見つけたものなのでPHP化もなかなか難しいところですし、原因と解決方法が分かりません。 一体どのようにすればいいのか、どなたかお教えいただけないでしょうか。よろしくお願いします。

    • ベストアンサー
    • PHP
  • <img src=http://にしたい

    PHPでWebページのソースを取得して そのソースの中の<img>タグの src属性がもしhttp://で始まらなかった場合 取得したURLをsrc属性に加える方法はないでしょうか? 例 URL=http://www.○○.com ソース <img src="/image/01.jpg"> ↓ <img src="http://www.○○.com/image/01.jpg"> に変更したいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • imgタグにPHPを仕掛けてリンク元の取得

    当方アフィリエイトプログラムを開発している者です。 アフィリエイトを起こしたいユーザーさんのページ(いわゆるサンクス画)に、imgタグで<img src="http://hoge/affi.php">を仕掛けた際、 このaffi.phpをサーバ側で取得して、どこのサイトのページでこのタグが踏まれたか、リンク元を取得したいのですが、可能なのでしょうか? いろいろ検証したのですが、リンク元が自分のサイトのURLを拾ってしまいます。 どなたかこういった事例の対処法をご存知の方がいましたら、解決方法やヒントなど教えていただけましたら助かります。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • クッキーの名前について

    はじめまして、PHPでクッキーを利用したいのですが、 クッキーの名前で悩んでいます。 Windowsに保存されているクッキーを見てみると、 クッキーの名前が、 Cookie:******@?????? ****:Windowsにログインしているユーザー名 ????:ドメイン となっているものがあります。 概して大手サイトより発行されたクッキーがこのようになっているように思えます。 自分で作成したPHPでクッキーを発行してみると、 setcookie()で指定したpathの部分が名前となるようです。 また、pathを指定しないと発行元のphpが存在するディレクトリ名に なります。  クッキーの名前が”Cookie:******@??????”となるのは、何か意味があるのでしょうか? セキュリティーなどにからんでこうなるとしたら、同じようにしないといけないのかな?でも、Windowsのユーザー名ということは、他のOSでは不都合が生じるのかな?と悩んでしまい、質問させていただきました。 お分かりになる方いらっしゃいましたらご回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • imgタグによる参照元からのリファラ取得について

    レンタルサービスとして運営するための、 携帯(iモード)ウェブサイト用のアクセス解析をPHP + MySQLで開発しています。 解析用タグを統一し、全てのページに同じタグを書き込むだけで解析できるように設計したいと考えています。 設計の概要: 解析用タグは <img src="./analyze.png" /> です。 .htacessのmod_rewriteで./analyze.pngにアクセスすると./analyze.phpが参照される様設定します。 ./analyze.phpにアクセスされると、リファラを取得し、そのページにおけるアクセス解析データをDBに追加します。 この設計で開発していましたが、imgタグで参照するとどうもリファラが送信されないようです。 携帯ウェブサイト用なのでjavascriptやiframeは使用できません。 この条件下でリファラ情報を取得することはできませんか?

    • ベストアンサー
    • PHP
  • 共有サーバーSSL環境下でのクッキー取得方法

    こんにちは。 共有サーバーSSL環境下の「A.html」というページでクッキーを取得して、それを同じサーバーのSSL環境下の「B.html」というページで呼び出すことはできるのでしょうか? Set-Cookieの部分のdomainの指定は無し、path=/cgibin/としてありますが、読み込むことができなかったので、domain=sslserver.netなどのようにSSLサーバーを指定してみましたが無理でした。 そもそも、SSL環境下では例え同じSSLサーバーで保存したページでも読み出すページが違うとクッキーの読み込みができないのでしょうか? どなたか、教えてください。<m(__)m>

    • ベストアンサー
    • Perl
  • URLを取得してDBに格納したいのですが、、

    環境:XAMPP ver2.5.8 やりたいこと: 特定ページにJavaScriptタグを貼って、そのページがアクセルされたときに そのページURLを取得して、mySQLのDBに取得したURLを指定フィールドに 記録したいです。 同一URLであれば、上書きを考えているのですが、そのようなことは可能でしょうか? よろしければ、JavaScriptでURLを取得して、DBに渡すやり方を教えていただけないでしょうか? よろしくお願いします。

  • クッキーが保存されずに困っています

    どなたか、詳しい方がおりましたらアドバイスをお願い いたします。私はプログラムを仕事としている者では ありませんが、独学で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
  • ExcelのVBAでHTMLのタグ数を取得するには

    VBAでHTMLソースからタグ指定で情報を取得したいのですが、そのページ内にある特定のタグ数を取得する方法で躓いています。 例えば、下記のURLの"TD"のtagNameから情報を抜き出しているのですが、他のページでは"TD"タグ数が変わってきます。ループ条件で"TD"のタグ数が必要なので、数を取得して変数として代入したいのですが、どうすれば良いでしょうか。ちなみに下のサイトの"TD"の数は71個です。 http://db.netkeiba.com/horse/ped/2010110097/