我正在开发一个像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文件。我该怎么做?
答案 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);
,请记住:永远不要在没有验证的情况下从互联网保存原始内容。