我对 Web 开发非常陌生(我对 HTML 的经验有限)。我正在创建一个辩论网站。目前,每场辩论都存储在 MySQL 数据库中。当用户将信息提交到数据库时,我希望创建一个新页面,其中包含他们的辩论,以及评论和评分的能力。
我遇到的问题是,从我迄今为止所做的研究来看,我没有找到解决方案来为每次辩论建立一个新的网页。有人对如何将数据写入独特的网页有任何建议吗?
谢谢,乔治
假设您使用的是 PHP 和 MySQL。
我将保持这个非常简单,可能在一个基本示例中需要这些文件以及您希望的解释性 SQL 表(辩论、评论等)。
形成辩论的表格
<form action='debateprocessor.php' action='POST'>
<input type='hidden' name='action' value='create'/>
<input type='text name='debate_name'/>
/// Other inputs - debate topic, debate author, subject etc? same as above
</form>
然后将表单数据发送到debateprocessor.php,我们将在其中进行清理和预处理。
$_GET['action']="create" #这告诉我们我们正在创建辩论 $_GET['debate_name']="SomeDebate"
辩论处理器.php - 你想把它拉进来:
if (mysql_real_escape_text($_GET['action'])) == 'create'){
$debate_name = mysql_real_escape_text($_GET['debate_name']);
//sanitize other variables as above
//Insert debate name
mysql_query=("INSERT INTO debates (debate_id,debate_name) VALUES ('$debate_name'");
}
注意动作 if($action == 'foo'){ //do something; } 声明 - 这将允许您在一个文件中处理所有更新(评论、编辑辩论名称等)。表单中的其他操作值可能是“编辑”、“添加评论”等 - 您可以使用单独的文件来完成所有这些操作,但这允许您全部完成。您所要做的就是为每个操作添加上面的 elseifs 或其他 if 语句来修改表。
因此,显示您的辩论,您会在表格中获得类似辩论的主列表,假设您有
辩论列表.php
<?
$getDebates = mysql_query("SELECT * FROM debates";);
$rowNum = 0;
while($row = mysql_fetch_array($getDebates))
{
$thisDebate = $row['debate_name'];
$thisDebateID = $row['debate_id'];;
echo
"
<tr>
<td>
<a href='debate_detail.php?debateid=$thisDebateID'>
$thisDebate
</a>
</td>
</tr>
";
$rowNum++;
}
这将输出一个带有 ea 链接的辩论名称列表。PK 拉取的给定辩论的debate_detail.php 页面,辩论ID。在该文件中,您将使用类似的 SELECT 组合(仅使用 'WHERE辩论ID ='xyz',并且可能会在辩论 ID ='zyx' =辩论_id ='zyx'上加入评论等表。
有一个脚本来查看请求的 URI(查询字符串是最简单的地方查看foo.php?debate=1
→ $_GET['debate']
)并使用它来获取一条唯一标识您想要的辩论的信息(例如,您用于主键的列的值在数据库表中)。
在数据库中查找该行,并将内容输出到页面。
(确保以一种防御 SQL 注入的方式将数据发送到数据库,并且在没有转义或清理它以防御 XSS 的情况下,不会将用户输入回显到 HTML)。
您需要使用模板引擎,例如 PHP。对于每个辩论,您传递一个不同的查询字符串,例如您可能有的辩论 id 1
www.example.com/debates?id=1
然后,在您的 php 代码中,您可以检查此查询参数的值并使用它从数据库中提取正确的信息,从而允许您动态创建页面。