2016-09-28 65 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

相关问题