• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:これまで遷移してきたサイト内のURLを表示する方法について)

遷移してきたサイト内URLを表示する方法

このQ&Aのポイント
  • アクセス毎にセッションの配列に直前のURLを追記して、ページ間の遷移の際その情報を保持し続ける方法を教えてください。
  • 遷移してきたサイト内のURLをHTMLに表示したいが、直前のURLは表示できるものの、2つ以上前のURLを表示することができない。どのようにコーディングすれば良いかわかりません。
  • 遷移してきたサイト内のURLを表示するための方法を教えてください。特に、2つ以上前のURLを表示する方法が分からないのでアドバイスをお願いします。

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

  • ベストアンサー
回答No.1

全てのPHPファイルの先頭に、 <?php session_start(); if(isset($_SESSION['ref_history'])){ if(is_array($_SESSION['ref_history'])){ $_SESSION['ref_history'][] = $_SERVER['HTTP_REFERER']; }else{ $_SESSION['ref_history'] = array(); $_SESSION['ref_history'][] = $_SERVER['HTTP_REFERER']; } }else{ $_SESSION['ref_histroy'] = array(); $_SESSION['ref_history'][] = $_SERVER['HTTP_REFERER']; } ?> と言ったようにすればスーパーグローバル変数$_SESSIONに配列として格納されるかと思います。session_start関数は、必ず何か値の出力(HTMLやecho,printなどを表示する)前に記述します。 他にも単純にCOOKIEに落とす方法などあり、もっとよい方法があるかもしれませんので、一例として、参考まで、とお考えください。

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたソースを使用した所、意図した動作となりました。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 自分でWebサイトを作成しています。

    自分でWebサイトを作成しています。 トップページ(index.php)からリンクしてある自作のページ(link.html)を参照しようとすると、「次のファイルを開こうとしています」とダウンロードが促されてしまってこまっています。 ただ単にWebページとして参照したいだけです。 Content-Typeの記載も入れています。 ●環境 Firefox 3.6.3 IE8 では参照できています。 ●構成 index.php ----- link.html ●対象のページ記述 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> どなたか理由を知っていらしたら、教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • クッキー送信

    以下のコードでクッキーが送信できると思ったのですができません。 どこがいけないでしょうか? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>cookie</title> <script language="javascript"><!-- --></script> </head> <body onLoad="setfocus()"> <?PHP if(!isset($_COOKIE['visited']))// { //はじめての訪問 $count=1; echo"<p></p>"; } else { echo"cookie up<br />"; $count = $_COOKIE['visited']; $count++; } setcookie('visited',$count);// echo "Hello!!<br />"; echo "your ${count} visited!<br />"; echo '<a href="cookie.php">cookie</a>' ?> </body> </html>

    • 締切済み
    • PHP
  • 実体参照に置き換える方法について

    下記のソースをブラウザで閲覧した所、真っ白な画面が表示されてしまいました。 「'テスト"」の「'」を消した所、ブラウザに「テスト"」とリンクつきで表示されましたが、「'テスト"」と表示する方法が分かりませんでした。 なお、$testに入れている中身はデータベースから取得しており、ここの文言を直接触る事は出来ません。 データベースの中身の'を実体参照に置き換えた上で、$testに格納できれば大丈夫かと思ったのですが、どうすれば出来るかわからなかったため、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>title</title> </head> <body> <?php $test = '<a href="http://hoge.com/">'テスト"</a>'; $url = 'http://hoge.com/'; echo str_replace($url, '/', $test); ?> </body> </html> 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Cookieの設定について

    PHPでCookieにデータを設定しているのですが以下のエラーメッセージが出て 正常に設定できません何か悪いのでしょうか? よろしくお願いします。 ○エラーメッセージ Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\index.php:59) in C:\xampp\htdocs\index.php on line 340 Cokkie NG ○ソースの関連部分 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>SAMPLE </title> <meta http-equiv="Pragma" content="No-Cashe" /> <meta http-equiv="Cache-Control" content="No-Cache" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <link type="text/css" rel="stylesheet" href="search.css" /> <?php $r = setcookie('win_width','800',time()+3600,"/"); if ($r) { echo'<p>Cokkie OK</p>'; } else { echo'<p>Cokkie NG</p>'; } ?> </body> <HEAD> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> </HEAD> </html>

    • ベストアンサー
    • PHP
  • PHPで携帯ページに自動遷移する処理について

    PHPのsnoopyを使って携帯ページに自動遷移するプログラムを作ったのですが、遷移した先が携帯ページではなくPCのページが表示されてしまいます。 <a>タグで同じURLリンクをクリックした時は携帯ページに遷移するのですが、自動で行うとなぜかうまくいきません。 自動とクリックだと何か違うのでしょうか? (自動だとWEBサーバ側のブラウザからリダイレクトしているから??) <ソース> $agent = $_SERVER['HTTP_USER_AGENT']; $snoopy = new Snoopy; $snoopy->agent = $agent; $url="aaaa.php"; $snoopy->submit($url); echo "<a href=".$url.">test</a>"; echo $snoopy->results; よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpで数字の値を画像で表示したいのですが

    お世話になります。phpを触り出している初心者です。携帯に対応させたいのですが、phpだけでいっぱいなので助けてください. 数字が0だったら非表示 2だったら2の画像・・・というようなものを作りたいのですが imgタグの埋め込み方・記述方法がよくわかりません。 ↓数字を文字で表示する方法はこれで一応やってみました。 <?php $number1 = 0; $number2 = 2; $number3 = 3; $number4 = 4; if ($number1 == true) { echo"<p>0は非表示です。"; } if ($number2 == true) { echo"<p>1の画像です。"; } if ($number3 == true) { echo"<p>2の画像です。"; } if ($number4 == true) { echo"<p>3の画像です。"; } ?> しかし画像がうまくいかずIE6では一種類の画像だけ表示されて 他の新しいブラウザでは文字化けしてる状態です。 それぞれ違う画像を当てはめる場合 どのように数値を増やして記述したらよいのでしょう? 色々試していますがこの記述も正しいのがわかりません。 <?php $gazou = imagecreatefromgif("img/01.gif"); imagegif($gazou); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="content-Type" content="application/xhtml+xml; charset=shift_jis" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="expires" content="0" /> <title>数字で分岐して画像を表示</title> </head> <body> <div style="text-align:center;"> <?php $number1 = 0; $number2 = 1; $number3 = 2; $number4 = 3; if ($number1 == true) { echo'<img src="gazou.php" />'; } if ($number2 == true) { echo'<img src="gazou.php" />'; } if ($number3 == true) { echo'<img src="gazou.php" />'; } if ($number4 == true) { echo'<img src="gazou.php" />'; } ?> </div> </body> </html>

    • ベストアンサー
    • PHP
  • phpファイルにxhtmlを適用する方法

    phpファイルにxhtmlを適用する方法 phpファイル(index.php)でモバイルサイトを作成したのですがドコモで背景色や文字サイズなどが反映されません。 【phpファイル(index.php)】 <?php echo '<?xml version="1.0" encoding="UTF-8"?>'."\n" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> <?php header("Content-type: application/xhtml+xml;charset=utf-8"); ?> 【.htaccess】 AddType application/xhtml+xml .php とそれぞれ記述しているのですが当方の携帯sh906iでは反映されません。 どこが悪いのでしょうか・・・ HP製作会社に依頼して作ってもらったのですが、反映されない事を伝えるとその後音信不通になっていて どうにかこの辺りの知識まで来たのですがどこが悪いのか分かりません。 HP製作会社からいつか連絡が来るんでしょうがやりとりをしている感じではあまり知識が無いようで 現在も答えないのではなく答えられないんだと思います。。。。 どうかお力をお貸し下さい。

  • ファイルの構造

    ファイルの構造 ■親階層 ├■マルチドメインのドメイン毎のディレクトリ ├■htdocs ├□ga.php ├○m │├□.htaccess │├□index.html ├■hoge ├○m ├index.html ├□.htaccess となっており、 それぞれ二つのmディレクトリのindexを解析をとりたいと思っています。 サーバはx-serverの多分旧サーバになっています。 HTML自体は下記のようにしています。 PHP自体はあまり詳しくないため、差し込む位置が間違っているかも知れません。 テストとして、htdocs直下のmディレクトリの下のindexの設定で下記をやってみました。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <?php header("Content-type: application/xhtml+xml" ); // Copyright 2009 Google Inc. All Rights Reserved. $GA_ACCOUNT = "□□□□(ユーザー毎に違う部分)"; $GA_PIXEL = "../ga.php"; function googleAnalyticsGetImageUrl() { global $GA_ACCOUNT, $GA_PIXEL; $url = "http://○○○.com/"; $url .= $GA_PIXEL . "?"; $url .= "utmac=" . $GA_ACCOUNT; $url .= "&utmn=" . rand(0, 0x7fffffff); $referer = $_SERVER["HTTP_REFERER"]; $query = $_SERVER["QUERY_STRING"]; $path = $_SERVER["REQUEST_URI"]; if (empty($referer)) { $referer = "-"; } $url .= "&utmr=" . urlencode($referer); if (!empty($path)) { $url .= "&utmp=" . urlencode($path); } $url .= "&guid=ON"; return str_replace("&", "&amp;", $url); } ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>テスト</title> <style type="text/css"> <![CDATA[ a:link{color:#009933;} a:focus{color:#CC0000;} a:visited{color:#FF6600;} ]]> </style> </head> ===========中略====================== <?php $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); echo '<img src="' . $googleAnalyticsImageUrl . '" />';?> </body> </html> .htaccessの設定 AddType x-httpd-php .html AddHandler server-parsed html 上記のようになっています。 PHPのバージョンは5にアップグレードしました。 htdocsの直下は普通のPCサイトのデータを置いて、同じ階層のmディレクトリに携帯用のページのデータを置いてます。 そして、hogeディレクトリの部分に他店舗のPCサイトのディレクトリを作って、その中のmディレクトリに携帯用ページの データをアップしています。 いろいろと間違っている部分等多いかと思いますが、ご指摘をいただければ助かります。 お願い致します。

    • 締切済み
    • PHP
  • ASP記述式

    今、PHPの勉強をしているのですが・・最初の方でいきなりASPの記述式についてコードが書いていました。物凄く簡単なコードなのですが、下記のコードの中でASP記述式の「はじめまして(*^_^*) 」だけが表示されません。どうしたら表示されるのでしょうか?ご教授よろしくお願いします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>無題ドキュメント</title> </head> <body> <p> <b>基本形:</b><br> <?php echo"はじめまして(*^_^*)"; ?> <p> <b>短縮形:</b><br> <? echo"はじめまして(*^_^*)"; ?> <p> <b>スクリプト記述形:</b><br> <script language="PHP"> echo "はじめまして(*^_^*)"; </script> <p> <b>Active Server Page(ASP)式記述:</b><br> <% echo"はじめまして(*^_^*)"; %> </body> </html>

  • PHP、どうして認識しないのですか?

    現在の私のサイト(shtml)のソースは次のとおりです(甲)。これを下記(乙)のように書き換えてアップしましたが”こんにちは”の文字が現れません。 レンタルサーバーの問題ですか?ソースの問題ですか? (甲) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" > <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"> <TITLE>○○○</TITLE> (乙) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>○○○</title> </head> <body> <!--shtmlのソースの中に次を挿入しました--> <p> <?php echo "こんにちは。<br />"; echo "こんにちは。<br />"; echo "こんにちは。<br />"; echo "こんにちは。<br />"; ?> </p> ----------------------- これが表示されません。 教えて下さい。どうしてですか? 宜しくお願いします。

    • ベストアンサー
    • PHP