-3
    <form name= "create" action=".php" method = "get">

        <input type="text" name="filename">
        <input type="submit" value="create" />
        <br>
    </form>

我有这个表格,它将接受一个名称并最终创建一个具有相同文件名的 php 文件。有可能做到吗?

4

2 回答 2

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;
?>

这种方法需要更多的工作,但会更清洁、更安全。

于 2013-10-08T06:23:05.887 回答
1

当然可以,可以使用如下代码创建文件,当然存放文件的目录必须有写权限

$my_file = $_GET['filename'] + '.php';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file); 

还可以追加、打开等文件操作

但我必须警告你,使用这种类型的操作会使你的服务器面临黑客攻击的风险,人们可以写任何他们想要的东西

于 2013-10-08T06:21:16.017 回答