Home arrow PHP arrow Page 4 - Project Management: The Application

Code Explained - PHP

The main project management application that we will examine deals with maintaining user state (tracking users) and all major events that make the application useful, such as adding, removing, and editing projects. It will also enable users to assign tasks and add or remove project staff, as well as maintain files for a particular project.

TABLE OF CONTENTS:
  1. Project Management: The Application
  2. The SQL
  3. The main.php script
  4. Code Explained
By: David Web
Rating: starstarstarstarstar / 5
June 02, 2008

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

The script itself is not so complicated; it merely retrieves the project's name, status, and date of creation. So let's take a closer look. The very first lines of the php portion of the script should be familiar to you by now; they include the database connection file and the functions file. The script also initializes variables, if needed. I initialize the variables because in some versions of PHP, you get an error message saying 'variable not defined.' Initializing variables avoids this problem. 

<?php

include "dbcon.php";

include "functions.php";

//initialize variables


The next bit of code is at the heart of the main script. First of all, it checks to see whether the user ID session variable is set. If it is set, then we know the user is properly logged in and should be on this page:


// retrieve information based on the user id, that we set in the login page:

if(isset($_SESSION['uid'])){


Since our intention is to retrieve the list of projects belonging to this user, we have to escape the variables that we are going to use in the query concerned. At the same time, we also give the level session variable a shorter name. This will make it easy for us to check the value of the $level variable for comparison later on:

//here you could check if the session var is indeed numeric, just as a extra security precaution

$uid=mysql_escape_string($_SESSION['uid']);

//echo $uid;

$level = $_SESSION['level'];

Now we check whether the value contained in the $level variable is 'admin' or 'normal' and based on the outcome, we run specific queries. If the value turns out to be 'admin,' then we need to retrieve ALL projects in the database. At this point, you can also set conditions on the query by retrieving only those projects that are not overdue or only those projects that are pending. It is entirely up to you and your situation as to what you want the administrator to see at this point:


//if the access level is admin, then you need to retrieve all the projects in the database

if($level == "admin"){

$getprojects = "SELECT * from projects ORDER by pid";

$results=mysql_query($getprojects);

if(!$results){

echo mysql_error();

}else{

$num_admin = mysql_num_rows($results);

}


The result of the query is stored in the $num_admin variable. It will hold the number of projects that are returned by the query. The value in that variable ($num_admin) is of type integer. If the value in the $level variable contains 'normal,' then we run a query to retrieve only projects that are registered in the logged-in user's name:


}else{//level does not contain admin


//otherwise extract only the projects belonging to the currently logged in user

$getprojects = "SELECT * FROM projects WHERE u_id = '".$uid."'";

$result=mysql_query($getprojects);

if(!$result){

echo mysql_error();

}else{

$num_normal = mysql_num_rows($result);


}

}


The first line of the query specifies that only projects that have the logged-in user's user id should be retrieved:


$getprojects = "SELECT * FROM projects WHERE u_id = '".$uid."'";

If the user id session variable is not set, then the user should not be on this page, since this means that he or she was not logged in. We redirect the user to the login page:


}else{

//user did not login and should not be on this page

//redirect to login page

header("location:login.php");

}//end session check


Conclusion

In the next article, we will look at the HTML portion of the main.php application. The HTML part will consist of a dynamic table that will be mixed in with PHP variables.



 
 
>>> More PHP Articles          >>> More By David Web
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: