Handling Files for a Project Management Application (
Page 1 of 4 )
In this article we will be discussing how to handle the files that a project needs. We will also be looking at how to upload files using standard PHP functions. This article is the sixth part of a seven-part tutorial that explains how to build a project management application. Be sure to check out the other articles in the series.The first script that we will discuss is the view_files.php script. This script will be responsible for listing all the files that are used in a given project. When a user uploads a file, the name of the file and project id are stored in the database. The physical file is stored in a folder called 'p_files'.
Below is the entire code that makes up this script:
<?php
include "dbcon.php";
include "functions.php";
if(isset($_GET['pid'])){
//clean pid
if(!is_numeric($_GET['pid'])){
//the value received is not numeric. redirect the user to login
header("location:login.php");
}
//otherwise clean the received value for query use
$cpid = mysql_escape_string($_GET['pid']);
//get project name
$getname = "SELECT title FROM projects WHERE pid = '".$cpid."'";
$g_result = mysql_query($getname);
if(!$g_result){
echo mysql_error()
}else{
$rowname = mysql_fetch_assoc($g_result);
$title = $row['title'];
}
//get the files
$getfiles="SELECT * FROM files WHERE p_id = '".$cpid."' ORDER BY fid";
$result = mysql_query($getfiles);
if(!$result){
echo mysql_error();
}else{
$num=mysql_num_rows($result);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/PM_Main.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Untitled Document</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
<link href="Templates/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="100%" border="0">
<tr>
<td width="33%"> </td>
<td width="28%"> </td>
<td width="39%">Logged in: <!-- InstanceBeginEditable name="login" --><? echo $_SESSION['name'];?> | <a href="logout.php">Logout</a><!-- InstanceEndEditable --></td>
</tr>
<tr>
<td colspan="3" bgcolor="#6699CC" class="headertxt">Project Management Software </td>
</tr>
<tr>
<td colspan="3"><!-- InstanceBeginEditable name="main" -->
<table width="99%" border="0">
<tr>
<td colspan="2" class="loginheader"><?php echo $title;?> </td>
</tr>
<tr>
<td>Files used by this project: </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>File Name</strong></td>
<td><strong>Action</strong></td>
</tr>
<?php
if($num > 0){
while($row = mysql_fetch_assoc($result)){?>
<tr>
<td><?php echo $row['filename']?> </td>
<td><a href="delete_file.php?fid=<?php echo $row['fid']?> & cpid=<?php echo $cpid?> ">Delete</a></td>
</tr>
<?php
}
}else{
?>
<tr>
<td colspan="2"><p>There are no files uploaded for this project.</p></td>
</tr>
<?php }
?>
</table>
<!-- InstanceEndEditable --></td>
</tr>
<tr>
<td colspan="3"><!-- InstanceBeginEditable name="nav" --><a href="main.php">View Project List</a> | <a href="admin/login.php">Administrators Corner </a><!-- InstanceEndEditable --></td>
</tr>
<tr>
<td align="right" class="cright" colspan="3">copyright © 2007 PM </td>
</tr>
</table>
</body>
<!-- InstanceEnd --></html>