2013-08-02 111 views
1

我正在构建一个简单的错误跟踪工具。 登录后,您可以创建一个新项目,当您创建一个新项目时,您将重定向到项目页面。为每个项目页面创建一个独特的页面

我的问题是,我怎样才能给每个项目一个独特的页面? 我知道我只需要创建1个页面(projectpage.php),然后为每个项目创建一个独特的页面。我必须从每个项目中获取ID。

您在表单中创建一个新的填写项目后,该表格将张贴到这个网页:

project.class.php

$name  = $_POST['name']; 
$descr  = $_POST['description']; 
$leader  = $_POST['leader'];  
$email  = $_POST['email']; 

$sql="INSERT INTO projects (name, description, leader, email, registration_date) 
VALUES ('$name', '$descr', '$leader', '$email', NOW())"; 
$result = mysql_query($sql); 

if($result){ 
header('Location: ../projectpage.php'); 
} 
else { 
echo "Oops, there is something wrong. Try again later."; 
} 

mysql_close(); 

这将数据存储在MySQL数据库。

那么,我怎样才能为每个项目制作一个独特的页面? 这样做的最好方法是什么?

在此先感谢!

+1

您正在使用[**的**过时的数据库API(http://stackoverflow.com/q/12859942/19068),并应使用[现代更换]( http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻击](http://bobby-tables.com/)**,现代的API会使[防御]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己从。 – Quentin

+0

不要以每个项目的唯一页面来考虑它。这将可怕地缩放。事实上,你用不同的数据填充同一页面,这就是服务器端编程的美妙之处。 – christopher

回答

2

您有一个PHP文件,通过查询字符串(或URL的其他部分)获取项目id并查询数据库以获取与该id相关的数据。然后,使用该数据为项目页面生成HTML。

0

首先,mysql_ *功能已过时,你应该使用PDO ...

你应该有一个PHP脚本,由它的ID数据库中获取的项目。您的表格中可能应该有一个ID列。这里是一个示例代码:

if($result){ 
    header('Location: ../project.php?id='.mysql_insert_id()); 
} 

mysql_insert_id返回最后插入的ID。请参阅documentation。 然后,project.php:

<?php 
if (!isset($_GET['id']) || empty($_GET['id']) { 
    echo "error : bad url"; 
    exit(); 
} 

$cn = new PDO(...); // Check PDO documentation for this 

$sql = "SELECT * FROM projects WHERE project_id = :id"; 
$stmt = $cn->prepare($sql); 

$stmt->bindParam(":id", $_GET['id']); 
$stmt->execute(); 

$project = $stmt->fetch(PDO::FETCH_OBJ); 

// $project will behave like an Object, you can display for example the project name 
echo $project->name; 

// or the project date... 
echo $project->registration_date; 
相关问题