<< swfirとlightboxの連携 | main | テクノロジーの恣意的発展について >>

外部サーバーのデータベースアクセス方法

たいていのレンタルサーバーは
外部サーバーからのデータベースアクセスを禁じてますよね。
それをうまいことやる方法です。

・データが大量だと遅いです。
・セキュリティ的には甘かろうと思いますので自己責任で!


■■データベース側(ex_mysql.php)■■
<?

//データベースの接続設定
include_once('initial.php');

if($_SERVER[REMOTE_ADDR] == '123.456.789.012'){ //外部サーバー側のIP

$query = urldecode($_REQUEST[q]);
$query = stripslashes($query);
$r = mysql_query($query, $db) or die(mysql_error($db));

while($dat = mysql_fetch_assoc($r)){
$items[] = $dat;
}

if(is_array($items)){
echo base64_encode(serialize($items));
}
}

?>


■■外部サーバー側■■
<?
$query = "select * from hoge where id = 1";
$query = urlencode($query);
$str = file_get_contents("http://www.hoge.com/ex_sql.php?q=$query");

$items = unserialize(base64_decode($str));
?>

コメント
も、もう少しkwsk…

外部サーバー側のファイル名とかは何でもよいのでしょうか?

また"hoge"の部分は各自のドメインとかに代えるという意味なのでしょうか?

おしえて賢い人
  • 飛び交う妖精
  • 2009/04/09 2:08 PM
コメントありがとうございます!

外部サーバー側はなんでもいいです。
hogeのところは、各自のドメインに変更してください。

----------------------
流れをご説明すると

bbbb.com
の中にある商品データベースを参照して
aaaa.net/sinamono.php
で、商品一覧を表示させたいなら

bbbb.com/ex_sql.php
を設置して

aaaa.net/sinamono.php
から
bbbb.com/ex_sql.php?q=$query
と呼び出して、表示された結果を
file_get_contentsして、解読しちゃえば
データとれるよって流れです!

とにかくセキュリティは気をつけてくださいね!
$query = "delete from sinamono";
とかされないように!
くれぐれも自己責任で!!!!
  • ぴーれっくす
  • 2009/04/09 2:52 PM
すばやいレスありがとうございます!

実をいうとDNSラウンドロビンで負荷分散をしつつWordPressを運営できないかと…色々探し回っているのです。

わざわざ解説していただいたのですが、どうも僕には無理そうですorz。

ありがとうございました。
  • 飛び交う妖精
  • 2009/04/09 4:07 PM
コメントする









この記事のトラックバックURL
トラックバック
calendar
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< April 2017 >>
selected entries
categories
archives
recent comment
recommend
links
profile
search this site.
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM