仮想ドメイン名で遊んでみる ◎+ .
最近、インターネット上で新しい現象を発見したかどうかはわかりませんが、一部の Web サイトが「username@server」の仮想ドメイン名サービスを提供し始めています。 「@」の魅力に応募者が続出 「私もこんなサービスができたらいいのに!」 この記事ではその「謎」を解き明かしていきます。の「@」をみんなにベールで、みんなも「@」に来てね! (今日 @ しますか?)
心配しないでください。これは電子メール アドレスではなく、仮想ドメイン名です。信じられない場合は、ブラウザで「bbs@zphp.com」にアクセスしてください。友人の中には、ブラウザのアドレスバーに「パスワード:ユーザー名@サーバー」と入力するだけで、IE が自動的に FTP サーバーにログインする、Http 1.1 プロトコルの Http アクセス認証機能を使用している人もいるでしょう。形式も「password:username@server」と規定されており、「password:」は省略可能です。 「bbs@zphp.com」にアクセスすると、実際にはbbsとして「zphp.com」というサーバーにアクセスします。
その後、特定の URI を PHP プログラムに送信し、データベース内で実際の URL リダイレクトを検索するだけです。
まず、URI を送信するページを作成する必要があります (通常は、index.htm という名前のサーバーのデフォルトのドキュメントとして)。この関数は、JS の Window オブジェクトに実装できます。以下は、index.htm のソース コードです。
< script>
this.location = 'gotourl.php?url=' + this.location.href;
上記のコードは、変数 $url を渡します。 QueryString 現在の URI を割り当てます。
URI を PHP プログラムに正常に渡した後、データベースに入って実際の URL を見つけることができます。 SQL データベースに対応するテーブルの構造は次のとおりです。
CREATE TABLE domain(
Id int(3) UNSIGNED DEFAULT ' 0' NOT NULL, # ドメイン名 ID
Domain char(20) NOT NULL, # ドメイン名
Gotourl char(255) NOT NULL, # 実際の URL
); テーブルを作成したら、gotourl.php の記述を開始できます。プログラムは 3 つの部分に分かれています:
1. URL を分析します:
$url = preg_replace("/^http:\/\//I", "", $url); // 「http://」を削除します。サイズに関係なく URL の前に " を記述します
$url = preg_replace("/@.+$/", "", $url); // "@" 以降の部分を削除します
すると、残りの URL のみが表示されます「ユーザー名」の部分が含まれています。
データベースに適用するには、Minggan 文字を処理する必要があります:
$url = addlashes($url);
2. 実際の URL を検索します:
プログラムの汎用性を実現するために、データベース操作が必要です。ここでは (PHPLib からの) class (modification) を使用して SQL データベースを操作します。
$db = new dbSql(); // データベースに接続します
$queryString = sprinf("SELECT gotourl FROM domain WHERE domain='%s'; ", $url); // クエリ文字列を生成します
$gotourl = $db->result($queryString); // クエリを実行して結果を取得します
3. リダイレクト:
PHP でブラウザをリダイレクトする方法はたくさんあります。これを実現するために、比較的単純な HttpHeader を使用します:
header(“location: $gotourl”);
Attachment
実際、NetEase のような「username.yeah.net」の仮想ドメイン名サービスは実装に似ています。 「@」のメソッドですが、「.」で終わる必要があります。200 元相当の DNS 解決を犠牲にして、「@」に必要なものは次のとおりです。
1. PHP/SQL データベースの権限。 DNS によって解決された名前。
NetEase のポップアップ ウィンドウなどの仮想ドメイン名サービスに広告を追加する必要がある場合は、リダイレクト部分を次のように変更できます。
<script> <br>window.open("url","nease","width=) Windth,height =height"); <br></script>
著者は「天地の良心」に恥じないよう、合併後に完全なプログラムを追加しなかった(原稿料を騙し取った?)、怠け者であれば、完全なコード (追加などを含む) が必要です。http://zphp.com または http://bbs@zphp.com で入手できます。皆様の訪問件数が多くなることを願っています。
http://www.bkjia.com/PHPjc/315226.html