如何获取html输入并使用输入的上下文命名txt文件?

时间:2014-05-20 21:36:43

标签: php

我正在开发一个像pastebin一样的网站,我会在这里输入两个输入字段:

<form name="form1" method="post" action="paste.php">
 Title: <input type="text" name="title"><br>
 Paste: <input type="text" name="paste"><br>
 <input type="submit" name="Submit" value="Paste Me"> 
 </form>

我需要将数据写入如下文件:

<?php

$title = $_POST['title'];
$paste = $_POST['paste'];

$fh = fopen("[name variable here].txt", "w");

fwrite($fh, $paste);
fclose($fh);

print "The paste has been submitted.";

?>

但是在$ fh行中,我需要知道如何从“title”中获取输入并使用“paste”输入的内容创建一个新的txt文件。我该怎么做?

3 个答案:

答案 0 :(得分:0)

所以你想要的是:

$fh = fopen("{$_POST['title']}.txt", "w");

或:

$fh = fopen($_POST['title'] . ".txt", "w");

但这确实是一个坏主意,因为有人可以摆弄title变量并给它,你会覆盖一个重要文件!

答案 1 :(得分:0)

为了使用$_POST['title']变量作为文本文件的名称,您可以执行此操作(您已将POST数组中的值分配给$title) -

$fh = fopen($title.".txt", "w");

正如其他人提醒您的那样,请务必验证并清除用户的数据。

答案 2 :(得分:0)

我建议使用像Symfony2或Zend2这样的框架来创建您的网站。它提供了许多工具,如验证,表单控件,缓存,数据库/ orm等。但是,如果你想用纯PHP做这样的尝试$fileName = preg_replace('/[^A-Za-z0-9_\-]/', '_', $title);,请记住:永远不要在没有验证的情况下从互联网保存原始内容。