2016-09-28 74 views
0

我正在研究一個基本的HTML表單,如下所示。PHP和HTML表格只允許發佈IP地址

<form action="#" method="post" enctype="multipart/form-data"> 
    <input name="IP" type="text" /> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

還有一個基本的PHP腳本,它將所有數據都發布在TXT文檔中,如下面的腳本。

$var = $_POST['IP']; 
file_put_contents("/example/secretfile.txt", $var . "\n", FILE_APPEND); 
exit(); 

有沒有辦法來限制什麼用戶被張貼到HTML表單中,並有PHP驗證發佈的僅僅是一個IP地址?我不希望用戶能夠發佈除IP以外的任何內容。 IP不必是真實的或連接到任何東西。我很新的PHP工作,所以我不知道如何做到這一點。

+0

你正在尋找一個 「正則表達式」它允許測試一個字符串對一個複雜的「搜索模式」:http://php.net/manual/en/function.preg-match.php – arkascha

+0

可能重複[我怎麼才能簡單地驗證一個字符串是否是一個有效的IP在PHP?](http://stackoverflow.com/questions/5827435/how-can-i-simply-validate-whether-a-string-is-a-valid-ip-in-php) – Epodax

回答

2

您可以使用FILTER_VALIDATE_IP

$var = $_POST['IP']; 
if (filter_var($var, FILTER_VALIDATE_IP) === false) die('This is not a valid IP: ' . $var); 
file_put_contents("/example/secretfile.txt", $var . "\n", FILE_APPEND); 
exit(); 

見那裏的可能標誌(例如,IPv4和IPv6是否接受等):http://php.net/manual/en/filter.filters.validate.php

+0

也可以提及此過濾器選項的可用標誌,因爲它不清楚OP希望接受哪種類型的IP地址。 – arkascha

+0

謝謝你的回答!我會測試它,應該爲我需要的東西工作。 – GrizPwnz