2012-09-20 22 views
0

我已經做了一個PHP的MySQL網站,用戶可以註冊。我想修改htaccess文件(或任何php代碼來完成此操作),只有以ip x.y.z.v(其中v不等)開頭的連接才能註冊到該網站,但每個人都可以查看該網站的公共數據。大多數用戶將通過無線連接訪問網站,因爲我在共享的大學網絡中。 [這是註冊URL] [1]Htaccess文件修改,以便具有特定模式開始IP的用戶只能註冊,但每個人都可以查看網站

http://localhost/register.php 

現在它是不是在服務器上,所以你可以參考一下這個網址。

+0

什麼是註冊URL? –

+2

我想如果你把這段代碼放到你的PHP中,它最終會變得更健壯。 – Matthew

+1

是的,這絕對應該是你的應用程序的一部分。 – Brad

回答

1

在PHP中,您可以使用$_SERVER['REMOTE_ADDR']獲取當前用戶的IP地址。只需將此值與您的「批准」地址進行比較即可。例如,如果你想檢查用戶的IP與10.10開始,你可以這樣做:

$allowed = (strpos($_SERVER['REMOTE_ADDR'], "10.10") == 0); 

不過,我會強烈反對使用基於IP的訪問控制,除非你確定的「有效」 IP地址將不是更改。由於多個用戶似乎具有相同的IP地址(由於network address translation),並且IP地址通常可以重新分配,所以此解決方案對於任何真實世界的系統都是非常安全的,不是而是。 (電子郵件令牌,批准的註冊請求或註冊碼將會大大提高。)

+0

我需要允許註冊給學生,只有我的大學工作人員和外部沒有人,所以我認爲有人使用大學無線IP地址很可能是我大學的成員,所以我認爲使用IP比較是最好的答案爲了我。 正確的我如果我錯了先生,你可以建議一個更好的方法。 –

+0

您的大學是否有每個學生和教職員工的登錄系統,或某種可驗證的信息來證明某人已通過身份驗證? (例如 - 您可以在中央數據庫中查找學生號碼。) –

+0

是的,大學對每個學生和員工都有uid,但他們不允許任何第三方應用程序訪問數據庫。 –

0

指定您的註冊頁面(如目錄或位置),並且可以將其鎖定下來:

order deny,allow 
allow from x.y.z. 
0

如果你想使用htaccess的,你在這個添加到htaccess文件您的文檔根目錄,最好超過您可能在其中存在的任何其他重寫規則:

RewriteEngine On 
RewriteCond %{REMOTE_ADDR} !^x\.y\.z\. 
RewriteRule ^register\.php - [L,F] 
相關問題