>   TASYUの趣味で行っている電子工作や実験・プログラムの記録

電気技術とプログラムの世界

メイン

99素材 アーカイブ

2007年01月12日

回路図とか

TASYUがレポート等で使用する為に作った物です。ご自由に使って結構です。(使えれば^^;)

2007年01月20日

リンククッションCGI

TASYU.COMをご覧いただきありがとうございました。

これより先は外部リンクです。
(http://tasyu.com/)

こんなページがTASYU.COMでは表示される。
よく,企業やイベント系のサイトで表示されることがあるけど,自分のサイトとは関係のないことを見る人に伝えるためのページ。

これは,CGIスクリプトで簡単に作ることができるので紹介。

まず,以下のスクリプトをコピーしてlink.cgiと保存する。
*文字コードはUTF-8Nで保存してね。

#ここからコピー


#!/usr/bin/perl --
##Perlのパスをサーバーによっては直す

use CGI::Carp qw(fatalsToBrowser);
use open ":utf8";  

##CGIを使う許可
# "|"で区切る
$set_url = 'http://tasyu.com/';

&check_http_referer;
$string = $ENV {'QUERY_STRING'};
($value,$url) = split (/url=/,$string);
print "Content-type: text/html\n\n";

##ここからHTML
print <<"EOM";
<HTML lang=ja>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<TITLE>これより先は外部サイトです</TITLE>
</head>
<body>

<h3>ご覧頂きありがとうございました。</h3>
<ul><h4><a href="$url">これより先は、外部サイトになります。<br>
($url)</a><h4></ul>

EOM
##ここまでHTML

print "</body></html>";
sub check_http_referer {
if ($set_url && $ENV{'HTTP_USER_AGENT'}) {
$set_url =~ s/\./\\./g;
$SENV{'HTTP_REFERER'} = $ENV{'HTTP_REFERER'};
$SENV{'HTTP_REFERER'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($SENV{'HTTP_REFERER'} !~ /$set_url/i) {
&onError('外部サーバからの呼び出しです/Called from External Server');
}}}

sub onError #($_)
{
local($_) = $_[0];

print "Content-Type: text/plain\n";
print "\n";
print;

exit(0);
}
__END__



#ここまでコピー

で,$set_url = '' の''の中に自分のサイトのURLを書く。
*外部から勝手に使われないようにです。

UTF-8Nでlink.cgiとして保存したらCGIの動く場所にアップロードしてパーミッションを705または755に変更してlink.cgiに動作権限を与えます。

で,リンクを貼る時に href="http://tasyu.com" などと書いていたところを href="/link.cgiをアップロードした場所/link.cgi?url=http://tasyu.com/" と /link.cgiをアップロードした場所/link.cgi?url= を加えてあげれば完成です。

HTMLの部分は自由に書き直して大丈夫です。
HTML中でリンク先のURLを表示したい時は $url と書くと表示されます。
まずは,HTMLを編集しないで動かして見てください。

About 99素材

ブログ「電気技術とプログラムの世界」のカテゴリ「99素材」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリは03PCです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34
ページのトップへ
tasyu.com  - ブログ  - IFC  - 電気
Copyright © TASYU All rights reserved.