首先,我没有编程经验。我正在学习。
尝试这样做:我正在尝试使用从html表单提交的新IP地址更新文件,以允许访问我的代理(squid)。它应该使用旧IP地址(搜索和替换)更新squid配置文件。
问题:由于某种原因,它找不到旧的IP地址并将其替换为新的IP地址。
我已经用echo进行了一些调试,一切似乎都很好,直到应该进行实际的替换操作。我认为它与数据类型有关。也许它将iplist.txt文件中的IP地址作为一个数组加载到那个思路中?
我要更新的squid.conf部分看起来像这样:
# acl fileupload req_mime_type -i ^multipart/form-data$
# acl javascript rep_mime_type -i ^application/x-javascript$
#
#Default:
acl allowip src 192.168.1.10 #notes on who this is
#
#
# Recommended minimum configuration:
#
,iplist.txt文件如下所示:
192.168.1.8
192.168.1.9
192.168.1.10
我的代码:
<html>
The IP address you entered is <?php echo $_POST["IPaddress"]?>
<?php
$newip = $_POST["IPaddress"]; // new IP address from the form
$file = "/home/kloos/iplist.txt";
$data = file($file);
$oldip = $data[count($data)-1]; //find the last IP address used from iplist file
?>
<br>
The old ip address was <?php echo $oldip;?>
<?php
$squidproxy = "/home/kloos/testfile.txt";
$file_contents = file_get_contents($squidproxy); //get contents of the squid.conf file
$file_contents = str_replace($oldip,$newip,$file_contents); //replace old ip address with the one submitted
file_put_contents($squidproxy,$file_contents); //put the contents back into the file
file_put_contents("/home/kloos/iplist.txt", $newip, FILE_APPEND); //put this new ip address into the iplist file
file_put_contents("/home/kloos/iplist.txt","\n", FILE_APPEND); //put a newline character to make sure next ip address is going ot be on the last line of the iplist file
?>
</html>
你能帮助我解决我做错的事吗?我一直在努力解决这个问题,试图自己解决这个问题大约一个星期了。我需要一些帮助。感谢。