2011-07-22 7 views
2

私は家族のサイトにアクセスできるようにしたいので、私は家族のサイトにアクセスする特定のipsを作成することに苦労しています。あなたの人の助けが必要です。これは私がどれだけ手に入れたかで、もしipがデータベースになければwww.google.comにリダイレクトされます。は特定のipsが私の "ファミリーサイト"にアクセスすることを許可していますか?

コード:

$ip =$_SERVER['REMOTE_ADDR']; 
$result = mysql_query('SELECT * FROM `ips` WHERE `ip`="' . $ip . '"'); 

if(mysql_affected_rows($link) < 0){ 
header('location:http://google.com'); 
} 

EDIT:私はコードは、テーブルの変更や内部名が必要になりますので、文句を言わないコンピュータのMACアドレスを変更することを使用することができるかのアイデアを得ました。どのように私はそれについて行くので、ユーザーが自分のサイトにアクセスしようとすると、コンピュータのmacアドレスがgoogle.comにリダイレクトされたデータベースにあるかどうかをチェックします。

種類は、あなたのWebサーバとしてApacheを使用している場合は、YOUR_IPから許可し、すべてのから拒否しhttpd.conf設定ファイルのディレクトリノードの内容を変更することができますフレドリック

+0

IPは動的なものです。次回にネットワークに接続すると、新しいIPアドレスが割り当てられます –

+3

あなたの家族は静的なパブリックIPしか持っていませんか?うわー! – Jacob

+2

質問がありますか、コードを見せているだけですか? ;-P –

答えて

0

について。これは通常、このような制限を作成するのに適した場所です。

デフォルトのApacheアクセス<ディレクトリ/ >はAllow from Allです。つまり、ApacheはURLからマップされたファイルをすべて提供します。

<Directory /> 
    Order Deny,Allow 
    Deny from All 
    Allow from IP 
</Directory>

などのブロックでこれを変更してから、アクセスしやすいようにするためにこれを上書きしてください。

リダイレクト部分については、これをhttpd.confに追加して、禁止されている403のエラーにGoogleにリダイレクトすることができます。変更を加えた後、Webサーバーを再起動することを忘れないでください。

ErrorDocument 403 http://www.google.com

1

にmysql_affected_rowsは、INSERTのためにあるUPDATE OR 使用このDELETE:

if(mysql_num_rows($result) == 0){ 
    header('location:http://google.com'); 
} 

をそして、なぜあなたは$リンク変数を使用する代わりに$なるのですか?

+0

コードを読んでください。http://pastie.org/2252799 –

1

IPアドレスが頻繁に変更されるため、1日アクセスできる可能性があります。次回以降はIPアドレスが変更され、特権が失われます。

ログインシステムを作成する方がよいでしょう。この方法で、どこからでも共有したい情報にアクセスできます。

+0

彼は静的IPを持っていると言いました。つまり、とにかくログインシステムを作るのが良いアイデアです。 –

+0

スタティック、私は仮定、家からのみ動作します。しかし、ログインシステムではどこからでもアクセスできます – Ibu

+0

はい。私が言ったように。 –

1

また、htaccessでこれを行うことを検討することもできます。 stupid htaccess tricksをチェックしてください。

htaccessのパスワードhere's a free toolを使用する方が良い場合がありますが、設定が非常に簡単です。

また、影響を受ける行をチェックする代わりに、コードで返される行数を確認する必要があります。チェックアウトするPHP manual

3

私は疑問が分かりませんが、サイトをパスワードで保護したい場合は、ユーザーに別のパスワードを生成させたくない場合は、試してみてください。 LightOpenIDライブラリー。こうすることで、あなたの家族は自分が選んだOpenID識別子でログインすることができます。識別子のリストを保持するだけです。これはおおよそStackOverflowで使用される認証システムです。

Google、Yahooまたは他の多くのサイトを使用している場合、OpenIDアカウントについてはすでにアカウントがあります。

+0

+1はい、悪人を保つためにユーザーとアカウントを使用してみませんか?あなたの家族はあなたのサイトにログインするためにGoogleアカウント/ツイッター/フェイスブックを使用するように設定することもできます。 –

関連する問題