<form name= "create" action=".php" method = "get">
<input type="text" name="filename">
<input type="submit" value="create" />
<br>
</form>
我有这个表单接受一个名字,最终创建一个具有相同文件名的php文件。是否有可能完成?
答案 0 :(得分:3)
免责声明:允许客户创建.php
文件会构成巨大威胁,我对您服务器的损坏不负责任。
是的,这是可能的。
您的表单会将此人发送到creator.php
,并按GET
传递文件名。
creator.php
将如下所示:
<?php
file_put_contents($_GET["filename"].".php","This is my PHP file made by PHP!");
?>
但要小心,因为允许客户端自己创建文件对于黑客来说可能是一个巨大的安全漏洞。
更好的方法这样做是使用?
传递要在标题中获取的表,然后让单个页面解析查询字符串并获取正确的数据库。它将避免在您的服务器上造成混乱和破坏。
类似于data_getter.php
:
<?php
$database_name=$_SERVER["QUERY_STRING"]
// I don't know what kind of database you are using, but you
// will get the data here and put it into $database_contents.
echo $database_contents;
?>
这种方法需要更多的工作,但会更清洁,更安全。
答案 1 :(得分:1)
当然可以这样做,你可以使用以下代码创建文件,当然存储文件的目录必须具有写权限
$my_file = $_GET['filename'] + '.php';
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file);
您还可以附加,打开等文件操作
但是我必须警告你,使用这种类型的操作你会使你的服务器面临被黑客攻击的风险,人们可以写下他们想要的东西