PDO将textarea上传到我的数据库中

时间:2017-04-29 21:14:11

标签: php pdo textarea uploading

我几个月来一直试图弄清楚如何修复和创造我所想象的,我知道可以做到并且可能并不难做到。

我正在尝试将我放置在我的页面上的文本区域上传其内容到数据库中,人们可以在其中查看他们上传的信息。这是一个例子。

人员将文本复制/粘贴到文本区域:http://example.com/textarea/ 他点击上传/提交按钮并获得如下链接:http://example.com/A93KJUQ21.txt 任何有权访问该链接的人都可以点击它,它将显示上传到它的内容。无论人员A,B,C,D等上传,它都会生成一个新的信息唯一链接。这方面的例子如下:

http://example.com/A93KJUQ21.txt

http://example.com/JKO2QN498.txt

http://example.com/PMNR01NEQ.txt

依旧......

这是我目前的代码

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['upload'])) {
$textarea = $_POST['paste-area'];

//Add validations

$odb = new PDO("mysql:dbname=dbname;host=localhost", "dbusername", 
"mypasswordgoeshere");

$query = $odb->prepare("INSERT INTO submission (`textarea`) VALUES 
(:textarea)"); //I'm just making up the structures

$query->bindParam(':textarea', $textarea, PDO::PARAM_STR);

$status = $query->execute(); //$status contains true or false

//Other codes...
}
}

?>

2 个答案:

答案 0 :(得分:0)

您的表需要两列,即随机字符串和textarea内容。当用户提交表单时,您需要创建随机字符串并将其与文本区域一起插入数据库。

$string = uniqid();
$query = $db->prepare("INSERT INTO submission (id, textarea) VALUES (:string, :textarea)");
$query->bindParam(':string', $string);
$query->bindParam(':textarea', $textarea);
$query->execute();
echo "Link is <a href='http://example.com/lookup.php?id=$string'>href='http://example.com/lookup.php?id=$string</a>";

我已将链接指向PHP脚本。您无法使用.txt URL从数据库中检索,该URL只是尝试下载常规文件。您需要指向一个从submission表中获取textarea的PHP脚本。

如果您想使其看起来像.txt文件,您可以在服务器上使用重写规则,将.txt网址重写为等效的.php网址。

答案 1 :(得分:-1)

为什么你认为你需要一个数据库呢?

<?php
if (!empty($_POST['text'])) {
    $filename = uniqid().".txt";
    file_put_contents($filename, $_POST['text']);
    die("http://".$_SERVER['HTTP_HOST']."/$filename");
}
?>
<form method=post>
<textarea name=text></textarea>
<input type=submit>
</form>