PDO 插入将文本区域上传到我的数据库
Posted
技术标签:
【中文标题】PDO 插入将文本区域上传到我的数据库【英文标题】:PDO Insert uploading a textarea into my DB 【发布时间】:2017-09-27 18:32:57 【问题描述】:几个月来,我一直在尝试找出如何修复和创建我所设想的东西,我知道这些是可以实现的,而且可能并不难。
我正在尝试将我放置在我的页面上的文本区域上传到数据库中,人们可以在其中查看他们上传的信息。这是一个例子。
Person A 将文本复制/粘贴到文本区域中: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...
?>
【问题讨论】:
你的问题是什么? 看看这个:link 您可以创建新文件并将 textarea 中的内容放入创建的文件中。您可以通过生成一些随机字符串来给您的文件一个唯一的名称。投票结束 【参考方案1】:您的表格需要两列,随机字符串和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 从数据库中检索,它只是尝试下载常规文件。您需要指向一个 PHP 脚本,该脚本从 submission
表中获取文本区域。
如果您想让它看起来像一个.txt
文件,您可以在服务器上使用重写规则,将.txt
URL 重写为等效的.php
URL。
【讨论】:
我想要做的事情的示例站点是hastebin.com 我不想做所有保存的东西,但只想使用唯一链接显示信息。 他们可能正在使用重写规则。【参考方案2】:为什么你认为你需要一个数据库呢?
<?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>
【讨论】:
该代码创建了一个扩展名为“.txt”的唯一文件名,但我仍然无法将 textareas 内容添加到数据库中。 难怪你花了几个月的时间来完成这个小任务,如果适用于所有人的代码不适合你:) 什么意思?我说代码有效,但它只是在点击提交按钮后给了我一个唯一的链接。当我点击它提供的链接时,它没有显示我在 textarea 中输入的内容。以上是关于PDO 插入将文本区域上传到我的数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 将文本区域数据从 HTML 文档发送到 MySQL 数据库?