人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

リファラで取得したURLを自動的にQRコード作成する方法はありますでしょうか?

携帯以外のIPを全て http://ドメイン/pc_error/index.phpに飛ばすため.htaccessに以下のように記述しています。
order deny,allow
deny from all
# DoCoMo
allow from 124.146.174.0/24
省略

# Softbank
allow from 123.108.236.0/24
省略

# AU
allow from 111.86.141.128/26
省略
ErrorDocument 403 http://ドメイン/pc_error/index.php

しかしこの携帯サイトにはそれぞれの会員ページが存在します
http://ドメイン/?id=1(Aさんのページ)
http://ドメイン/?id=2(Bさんのページ)
.htaccessに上記のように記述した場合、PCからAさんのページにアクセスしてもBさんのページにアクセスしても同じ画面のhttp://ドメイン/pc_error/index.phpが表示されてしまいます。
PCからhttp://ドメイン/?id=1にアクセスした場合はhttp://ドメイン/pc_error/index.phpにリダイレクトされるがhttp://ドメイン/?id=1のQRコードを生成させて
PCからhttp://ドメイン/?id=2にアクセスした場合はhttp://ドメイン/pc_error/index.phpにリダイレクトされるがhttp://ドメイン/?id=2のQRコードを生成させるという様にリファラからQRコードを作成することは可能でしょうか?
ご教示頂けると幸いです。

PHP 5.1.6
mysql 5.0.45

●質問者: xptree
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.htaccess 24 403 ALL AU
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● あすか
●27ポイント

PHPで「QRコード クラス ライブラリ」を使えばできます。

◎質問者からの返答

リファラからURLを取得する方法がわかりません、URLを取得しqrコードを生成する具体的なソースの記述を募集しております。


2 ● y-kawaz
●27ポイント

ErrorDocumentでその書き方だとRefererは来ないと思いますが…。

以下がRefererを見てQRを表示するコードです。一応ErrorDocumentでリダイレクトされたときの用取得のコードも付けときました。

<?php
if(isset($_SERVER['REDIRECT_SCRIPT_URI'])) {
 $url = $_SERVER['REDIRECT_SCRIPT_URI'];
 if(isset($_SERVER['REDIRECT_QUERY_STRING'])) {
 $url .= '?' . $_SERVER['REDIRECT_QUERY_STRING'];
 }
} else if(isset($_SERVER['HTTP_REFERER'])) {
 $url = $_SERVER['HTTP_REFERER'];
} else {
 $url = "NO URL";
}
header("Location: http://chart.apis.google.com/chart?chs=200&cht=qr&chl=" . urlencode($url));
exit();

あと多分、ErrorDocumentの書き方を以下のようにしてやらないと元URLを取得できなかった気がします。

ErrorDocument 403 /pc_error/index.php
◎質問者からの返答

回答ありがとうございます。

残念ならがNO URLしまいました…


3 ● あすか
●26ポイント

こんな感じでしょうか。

$qr_imgには QRcode Perl CGI & PHP scripts からダウンロードしたライブラリを指定してください。

<?php
$qr_img = 'qr_img.php'; //qr_imgライブラリを指定
$dt = $_SERVER['HTTP REFERER'];
$uri = $qr_img . '?d=' . urlencode($dt) . '&e=M&t=J&s=2';

echo <<< EOF
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<img src="{$uri}" />
{$dt}
</body>
</html>

EOF;
?>
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ