- ベストアンサー
?以下の文字列を受け取り、リンクに挿入する方法
PHPでの質問なのですが、 リンク元の、http://xxxx.yy.zz/xxxxx.php?sp=xxxxx&xxxxx という「?」以下の文字列(sp=xxxxx&xxxxx)を受け取り、 自分のサイトの中の特定のリンクに ?sp=xxxxx&xxxxx という文字列を追加するにはどうしたらよいでしょうか? http://xxxx.yy.zz/xxxxx.php?sp=xxxxx&xxxxx ↑から飛んできた人を、 自分のサイトの中のリンク <a href=http://ooooo.oo/zzzzz.php?> の「?」以下に先ほどのsp=xxxxx&xxxxxを追加したいのです。 説明が下手くそで申し訳ないのですが、どなたかご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
勘違いがあったら申し訳ないのですが・・ 「<a href="http://ooooo.oo/zzzzz.php{$str}">リンク</a>」の個所ですが コピペしてますよね? もしそうならこの掲示板の仕様で変な制御コードがかってにはいるんですよ。 それをとってください。 (httpのまえとphpの後ろ)
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
飛んできた元のパラメータを受け取るんですよね? であれば、リファラをみるとよいでしょう。 $_SERVER["HTTP_REFERER"]にリンク元のURLが格納されています。 もしリファラを継承できないような環境の場合や ダイレクトに飛んできている場合などは、もちろんパラメータは うけとれませんが・・・。 ざっと書くとこんな感じですね。 <?PHP $referer=$_SERVER["HTTP_REFERER"]; if(preg_match("/(\?.*)/",$referer,$match)) $str=$match[1]; print <<<eof <a href="http://ooooo.oo/zzzzz.php{$str}">リンク</a> eof; ?>
補足
ご回答ありがとうございます。 >飛んできた元のパラメータを受け取るんですよね? はい、その通りでした。 早速お教え下さった通りにしてみたのですが、リンク先のURLが、 http://私のサイトのURL.net/?http://ooooo.oo/zzzzz.php? というようになってしまいました。 情報の小出し・説明不足で申し訳ないのですが、リンク先は私の別のサイトになるんです・・・ http://私のサイトのURL.net/?http://ooooo.oo/zzzzz.php? となっている部分を、 http://ooooo.oo/zzzzz.php?リファラの中の「?」以下の文字列 にしたいのです。 すみません・・・
- Tasuke22
- ベストアンサー率33% (1799/5383)
xxxxx.php は sp=xxxxx&xxxxx を受取ると $spという変数にxxxxx が 入っている状態で動いています。$spを使って作業をしたら言い訳です。 &以降は、新たな変数です。この例では $xxxxx となり = が無いので 値が入っていません。
補足
すみません。 実はそれほど詳しくはないので、理解ができませんでした・・・ せっかくお教え下さったのに、すみません・・・
お礼
すみません! とても重大な勘違いをしておりました。 私がしたかったのは「リファラの参照」ではなく、いま現在アドレスバーに表示されている「?」以下の文字列を反映させるということでした。 いま試しに元のサイトのURLに「?test」と入力して、http://私のサイトのURL.net/ にアクセスしてみたところ、お教え下さった方法できちんとリンクに?testと付加されておりました。 勘違い申し訳ないです。
補足
ご指摘ありがとうございます。 いま確認してみたところ、確かに制御コードが2カ所入っていました! さっそくそのふたつを削除してやってみたのですが、今度は、 ttp://ooooo.oo/zzzzz.php とのみリンクされてしまうようになってしまいました・・・ これは、他の箇所にもなにか不要な文字列がはいってしまっているということなのでしょうか? 何度もすみません・・・(・_・、) #↑はあえて「h」を抜きました。紛らわしいので・・・