すみません。もう何日も悩んでしまっているので、どなたかお知恵をお貸しください・・・PHP初心者なので、分かりづらい部分が多々あるかと思います。申し訳ないです。
【質問】
自分で借りているサーバーを http://www.○○○.com とします。
もうひとつ、他社で無料で会員制ショッピングカートのようなものを借りています。http://□□□.com/index.php とします。
http://www.○○○.com/index.php を作成し、ページの上部でその他社のショッピングカートではない部分(凝ったメニューや、タイトル部分)を表示させて、その後に
<?php
$flag=0;
$_GET[site] = "http://□□□.com/index.php";
$page = @file($_GET[site]);
if($page=="") die("Connection Failed");
echo "<base href='http://□□□.com/index.php'>";
while (list($num, $line) = each($page)){
if(eregi("</body",$line)){ $flag=2;}
if($flag == 1){ echo $line; }
if(eregi("<body",$line)){ $flag=1;}
}
?>
という感じで、そのショッピングカートページの<body>から</body>部分を出力させています。
カートページでは、ログインすると、ページ上部の右側にログインしました状態ですよ。という感じの表示が出ます。登録してある名前が出て、○○さん、ようこそ♪みたいな感じです。
上のようにカートページを引っ張ってきて表示させてる状態で、http://www.○○○.com/index.php からフォームよりログインしようとしても、そのログインしたよ。というような表示が出ません。
ちなみに、ログインフォームは action="http://□□□.com/index.php" でメゾットがPOSTです。
login_idとlogin_passをフォームで送信して、ログイン状態にしているようです。
どうしたら、ログインした状態のカートページを出力できますでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
まず、カートページへログインした際に発行されるセッション情報は、
ブラウザを閲覧しているあなたの情報を基に構築されます
次に、○○○.com側のindex.phpで実行される処理
> $_GET[site] = "http://□□□.com/index.php";
> $page = @file($_GET[site]);
この場合、http://□□□.com/index.phpにアクセスしたのは、
ブラウザを閲覧しているあなたではなく、○○○.com側の実行サーバです
なので、ログイン状態にする為の判別データ(あなたの情報)を
保持していない実行サーバから見たhttp://□□□.com/index.phpは
当然ログインも何もしていない状態です
その状態での出力内容を取得して、html内容として吐いてるだけなので、
○○○.comでindex.phpを見ても、あなたがログインした状態にはならないということです
//
要するに全てを可能にするには、□□□.comのカート用システムも把握(or編集)できないと無理ですよ、ということです
suzuki-_-さん、レスありがとうございます。
なるほど、納得です。
とりあえず、□□□.comのカートシステムはある程度は編集できるので、もう少しセッションについて勉強して、もう少しチャレンジしてみます。
ありがとうございました!
No.1
- 回答日時:
mihomaru さん、おはようございます。
さてご質問ですが、他社のHPの<body>~</body>部分を持ってきて、自分のところへ表示させているわけですが、残念ながら これではうまく動作しません。
http://□□□.com/index.php は、その他社サーバのその位置に置かれて初めて、正しい動作をします。にもかかわらず、<body>~</body>だけを抜き出して全然別のサーバの、別ファイルに組み込んでしまうと、動作条件が変わってきてしまいます。
あと、セッションの問題もあると思います。これについてはお手持ちの書籍などでお調べになってみてください。
…ご質問、書き方が大変スッキリとしてわかりやすく、助かりましたよ。mihomaru さんはきっと良いエンジニアになることができるでしょう。
この回答への補足
先ほどの続きです。・・・続き
http://□□□.com/index.php を表示させるとログインしているということは、表示させる段階(ページを読み込む時)でセッションを取得して情報取得→ログインとしてから、ページを出力していると思うのです。ということは、
$_GET[site] = "http://□□□.com/index.php";
$page = @file($_GET[site]);
の時には、すでにhttp://□□□.com/index.phpはログインした状態のファイルを読み込んでいることにはならないのでしょうか・・・?
また、セッションは、ページ間はずっと保たれると思うので、http://www.○○○.com/index.php からでも問題ないのでは?と思ったのですが・・・$page = @file($_GET[site]);の一文はhttp://□□□.com/index.phpの既に読み込まれて出力されたファイルを引っ張ってきているという意味にはなっていないのでしょうか?
悪あがきですみません。
分かりやすく伝えるのは本当に難しいですね;申し訳ありません!
頑張って良いエンジニア・・・になりたいです(^^;
丁寧に答えていただきありがとうございました。
hkd90011さん、ご回答ありがとうございました!
そうなのですね・・・自分でも無謀だなぁとは思っていました;
インラインフレームを利用すれば、同じような動作が問題なく動くのですが、検索(SEO)の面から見てもphpで出力したほうが、良いと思ってこの方法で何とか考えていました。
この方法はあきらめるしかないと、尚更思ったのですが、あがきでもう少し質問させてください!
例えば、http://www.○○○.com/index.php からログインすると、上記のように自分の思い通りには動かないのですが、その次に http://□□□.com/index.php を表示すると、ちゃんとログインしているのです。クッキーを削除してページを更新してもログイン状態であるし、プラウザを閉じて、また、カートページを表示させると、ログアウトしていることから、教えていただいたように、セッション?を利用しているのだと思うのですが・・・
(長くなりそうなので、次に続かさせてください;;;)・・・続く
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
__FILE__をHTMLタグ内で使う
-
OkwebとOKWeveって一緒ですか?
-
フォントの色を変えるには?
-
PHPの設定で、 エラーが発生し...
-
onedrive にexcelファイルをア...
-
Linux:PHPでTELNETによるSMTP...
-
ListViewコントロールでサムネ...
-
ボタンのクリック数を合計保存...
-
ワードプレス、Contact Form 7...
-
PHPのif文でその処理を途中で抜...
-
現在位置より2つ上のディレク...
-
別ファイルの変数を呼び出した...
-
【file_exists】ファイルが存在...
-
UWSCでファイルのアップロード...
-
PHPExcel処理速度が遅い
-
PHPで`headers already sent`と...
-
【PHP】declare命令で”Fatal er...
-
PHP8を使うと、大量のWarningが...
-
mysql_close()
-
aws cloud9というものを使って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
index.phpに入るには、どうすれ...
-
.htaccessファイルの修正がこれ...
-
PHPでグローバルナビゲーション...
-
CakePHPの表示エラーについて
-
深い階層のフォルダの作成や削...
-
特定のディレクトリだけ、phpを...
-
PHP Linux から Windowsへの移行
-
zendのcontrollersについて
-
SSLに設置したらディレクトリパ...
-
すべてのページのurlをindex.ph...
-
include_pathに関する質問
-
require_onceで読み込む場合、...
-
相対パスでrequireはできないの...
-
[PHP] 任意のDNSでIPアドレスを...
-
さくらにsmartyをセットアップする
-
$_GET 取得できない
-
世界人口白書って何ですか?
-
include時の頭の良いパス指定に...
-
値の引継ぎについて
-
万国博覧会
おすすめ情報