patternphpMinor
Forum Sign up and Sign in software
Viewed 0 times
andsignsoftwareforum
Problem
I would love to have your reviews of this sign in and sign up system.
You can see the main structure:
For now, I have a total of 13 files (
This is how my main page functions:
This is how my main pages (top_bar.php, header.php, container.php and footer.php) are structured:
```
Forums
Categories
Members
Sign Up
Sign In
Change Theme
Contact Us
Help
Rules
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuad
You can see the main structure:
For now, I have a total of 13 files (
index.php, top_bar.php, header.php, container.php, footer.php, sign_in.php, sign_up.php, members.php, help.php, contact_us.php, change_theme.php, rules.php and the style.css.This is how my main page functions:
index.php:
Test - Forums
Test - Members
Test - Sign Up
Test - Sign In
Test - Change Theme
Test - Contact Us
Test - Help
Test - Rules
This is how my main pages (top_bar.php, header.php, container.php and footer.php) are structured:
top_bar.php:
Home
" href=".">Forums
" href="members.php">Members
header.php:
Test
Sign Up
Sign In
container.php:```
Forums
Categories
Members
Sign Up
Sign In
Change Theme
Contact Us
Help
Rules
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuad
Solution
There's a few things wrong with this. Primarily that there is no separation of concerns - you have PHP mixed with HTML, etc. However, barring that, there are some low hanging fruit that we can nip:
Your index.php contains unnecessary mixtures of
However, seeing as you're not doing any logic on the includes - why not just have it as one page?
For top_bar.php, you can get rid of most of the php code by using this more concise version:
Again, in container.php as in index.php, a switch statement benefits you. Also, abstracting margin:15px to a CSS class is cleaner:
There are a handful of other things that are of concern (not checking for empty values, etc), but they are inconsequential in this scope.
Putting it all together, into one page, would look something like:
```
Forums';
$sidecase .= 'Categories';
} break;
case 'members': {
$sidecase .= 'Members';
} break;
case 'sign_up': {
$sidecase .= 'Sign Up';
} break;
case 'sign_in': {
$sidecase .= 'Sign In';
} break;
case 'change_theme': {
$sidecase .= 'Change Theme';
} break;
case 'contact_us': {
$sidecase .= 'Contact Us';
} break;
case 'help': {
$sidecase .= 'Help';
} break;
case 'rules': {
$sidecase .= 'Rules';
$sidecase .= 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuada lobortis tempus. Integer auctor condimentum sapien, non scelerisque eros cursus et. In vel leo elementum, iaculis tellus sit amet, vestibulum quam. Etiam dapibus pulvinar risus, vestibulum rhoncus sapien commodo vitae. Etiam sit amet ultrices dui. Suspendisse luctus fringilla eros. Nam vitae metus porttitor, sagittis arcu eleifend, malesuada odio. Aliquam erat volutpat.';
$sidecase .= 'Pellentesque id velit a elit porttitor sollicitudin et vulputate nisl. Donec eu purus non libero porta malesuada et non lorem. Vestibulum ultrices vitae elit vitae accumsan. Quisque euismod, quam sed ornare ultrices, magna mi posuere massa, vel placerat ipsum est quis erat. Aliquam non libero mauris. Etiam ligula velit, commodo et feugiat ac, porta eu orci. Donec laoreet ipsum in urna auctor, vitae malesuada nibh consequat.
Your index.php contains unnecessary mixtures of
... etc. With a switch statement, the index.php can become more concise, while retaining the same functionality. Additionally, there's not need for multiple in the includes. Just one will do:
Test -
However, seeing as you're not doing any logic on the includes - why not just have it as one page?
For top_bar.php, you can get rid of most of the php code by using this more concise version:
Home
" href=".">Forums
" href="members.php">Members
Again, in container.php as in index.php, a switch statement benefits you. Also, abstracting margin:15px to a CSS class is cleaner:
.h1_marg_b15{
margin-bottom: 15px;
}
Forums';
echo 'Categories';
} break;
case 'members': {
echo 'Members';
} break;
case 'sign_up': {
echo 'Sign Up';
} break;
case 'sign_in': {
echo 'Sign In';
} break;
case 'change_theme': {
echo 'Change Theme';
} break;
case 'contact_us': {
echo 'Contact Us';
} break;
case 'help': {
echo 'Help';
} break;
case 'rules': {
echo 'Rules';
echo 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuada lobortis tempus. Integer auctor condimentum sapien, non scelerisque eros cursus et. In vel leo elementum, iaculis tellus sit amet, vestibulum quam. Etiam dapibus pulvinar risus, vestibulum rhoncus sapien commodo vitae. Etiam sit amet ultrices dui. Suspendisse luctus fringilla eros. Nam vitae metus porttitor, sagittis arcu eleifend, malesuada odio. Aliquam erat volutpat.';
echo 'Pellentesque id velit a elit porttitor sollicitudin et vulputate nisl. Donec eu purus non libero porta malesuada et non lorem. Vestibulum ultrices vitae elit vitae accumsan. Quisque euismod, quam sed ornare ultrices, magna mi posuere massa, vel placerat ipsum est quis erat. Aliquam non libero mauris. Etiam ligula velit, commodo et feugiat ac, porta eu orci. Donec laoreet ipsum in urna auctor, vitae malesuada nibh consequat. Donec sit amet libero vitae erat rhoncus venenatis. Maecenas nec pretium justo, eget fermentum tellus. Ut aliquet tellus venenatis posuere fermentum. Fusce mattis velit et tellus suscipit consectetur.';
} break;
}
?>
There are a handful of other things that are of concern (not checking for empty values, etc), but they are inconsequential in this scope.
Putting it all together, into one page, would look something like:
```
Forums';
$sidecase .= 'Categories';
} break;
case 'members': {
$sidecase .= 'Members';
} break;
case 'sign_up': {
$sidecase .= 'Sign Up';
} break;
case 'sign_in': {
$sidecase .= 'Sign In';
} break;
case 'change_theme': {
$sidecase .= 'Change Theme';
} break;
case 'contact_us': {
$sidecase .= 'Contact Us';
} break;
case 'help': {
$sidecase .= 'Help';
} break;
case 'rules': {
$sidecase .= 'Rules';
$sidecase .= 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuada lobortis tempus. Integer auctor condimentum sapien, non scelerisque eros cursus et. In vel leo elementum, iaculis tellus sit amet, vestibulum quam. Etiam dapibus pulvinar risus, vestibulum rhoncus sapien commodo vitae. Etiam sit amet ultrices dui. Suspendisse luctus fringilla eros. Nam vitae metus porttitor, sagittis arcu eleifend, malesuada odio. Aliquam erat volutpat.';
$sidecase .= 'Pellentesque id velit a elit porttitor sollicitudin et vulputate nisl. Donec eu purus non libero porta malesuada et non lorem. Vestibulum ultrices vitae elit vitae accumsan. Quisque euismod, quam sed ornare ultrices, magna mi posuere massa, vel placerat ipsum est quis erat. Aliquam non libero mauris. Etiam ligula velit, commodo et feugiat ac, porta eu orci. Donec laoreet ipsum in urna auctor, vitae malesuada nibh consequat.
Code Snippets
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<title>Test - <?php
switch(trim($_SERVER['SCRIPT_FILENAME'])){
case "members": echo "Members"; break;
case "sign_up": echo "Sign Up"; break;
case "sign_in": echo "Sign In"; break;
case "change_theme": echo "Change Theme"; break;
case "contact_us": echo "Contact Us"; break;
case "help": echo "Help"; break;
case "rules": echo "Rules"; break;
default: echo "Forums"; break;
}?></title>
<link href="css/style.css" rel="stylesheet" type="text/css">
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
include("top_bar.php");
include("header.php");
include("container.php");
include("footer.php");
?>
</body>
</html><!-- TOP BAR -->
<div id="top_bar">
<div class="wrapper">
<div id="top_bar_links">
<ul>
<?php
$page_name = array_pop(explode("/", $_SERVER["PHP_SELF"]));
?>
<li id="home">
<a href="../">Home</a>
</li>
<li>
<a class="<?php echo ($page_name=="index.php")?"active":"";?>" href=".">Forums</a>
</li>
<li>
<a class="<?php echo ($page_name=="members.php")?"active":"";?>" href="members.php">Members</a>
</li>
</ul>
</div>
</div>
</div><style>
.h1_marg_b15{
margin-bottom: 15px;
}
</style>
<!-- CONTAINER -->
<div class="wrapper">
<div id="container">
<div id="breadcrumb_top">
<div class="breadcrumb_links">
<ul>
</ul>
</div>
</div>
<?php
switch(trim($_SERVER['SCRIPT_FILENAME']){
case 'index': {
echo '<h1 class="h1_marg_b15">Forums</h1>';
echo '<h3 id="category_title">Categories</h3>';
} break;
case 'members': {
echo '<h1 class="h1_marg_b15">Members</h1>';
} break;
case 'sign_up': {
echo '<h1 class="h1_marg_b15" style="text-align: center;">Sign Up</h1>';
} break;
case 'sign_in': {
echo '<h1 class="h1_marg_b15" style="text-align: center;">Sign In</h1>';
} break;
case 'change_theme': {
echo '<h1 class="h1_marg_b15">Change Theme</h1>';
} break;
case 'contact_us': {
echo '<h1 class="h1_marg_b15">Contact Us</h1>';
} break;
case 'help': {
echo '<h1 class="h1_marg_b15">Help</h1>';
} break;
case 'rules': {
echo '<h1 style="margin-bottom: 10px;">Rules</h1>';
echo '<p style="margin-bottom: 15px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuada lobortis tempus. Integer auctor condimentum sapien, non scelerisque eros cursus et. In vel leo elementum, iaculis tellus sit amet, vestibulum quam. Etiam dapibus pulvinar risus, vestibulum rhoncus sapien commodo vitae. Etiam sit amet ultrices dui. Suspendisse luctus fringilla eros. Nam vitae metus porttitor, sagittis arcu eleifend, malesuada odio. Aliquam erat volutpat.</p>';
echo '<p style="margin-bottom: 15px;">Pellentesque id velit a elit porttitor sollicitudin et vulputate nisl. Donec eu purus non libero porta malesuada et non lorem. Vestibulum ultrices vitae elit vitae accumsan. Quisque euismod, quam sed ornare ultrices, magna mi posuere massa, vel placerat ipsum est quis erat. Aliquam non libero mauris. Etiam ligula velit, commodo et feugiat ac, porta eu orci. Donec laoreet ipsum in urna auctor, vitae malesuada nibh consequat. Donec sit amet libero vitae erat rhoncus venenatis. Maecenas nec pretium justo, eget fermentum tellus. Ut aliquet tellus venenatis posuere fermentum. Fusce mattis velit et tellus suscipit consectetur.</p>';
} break;
}
?>
<div id="breadcrumb_bottom">
<div class="breadcrumb_links">
<ul>
</ul>
</div>
</div>
</div>
</div><?php
# Select the title
switch(trim($_SERVER['SCRIPT_FILENAME'])){
case "members": $title = "Members"; break;
case "sign_up": $title = "Sign Up"; break;
case "sign_in": $title = "Sign In"; break;
case "change_theme": $title = "Change Theme"; break;
case "contact_us": $title = "Contact Us"; break;
case "help": $title = "Help"; break;
case "rules": $title = "Rules"; break;
default: $title = "Forums"; break;
}
# Define the page name and check for empty value
$page_name = array_pop(explode("/", $_SERVER["PHP_SELF"]));
if(empty($page_name)) $page_name = "index.php";
# Select the sidecase
$sidecase = "";
switch(trim($_SERVER['SCRIPT_FILENAME']){
case 'index': {
$sidecase .= '<h1 class="h1_marg_b15">Forums</h1>';
$sidecase .= '<h3 id="category_title">Categories</h3>';
} break;
case 'members': {
$sidecase .= '<h1 class="h1_marg_b15">Members</h1>';
} break;
case 'sign_up': {
$sidecase .= '<h1 class="h1_marg_b15" style="text-align: center;">Sign Up</h1>';
} break;
case 'sign_in': {
$sidecase .= '<h1 class="h1_marg_b15" style="text-align: center;">Sign In</h1>';
} break;
case 'change_theme': {
$sidecase .= '<h1 class="h1_marg_b15">Change Theme</h1>';
} break;
case 'contact_us': {
$sidecase .= '<h1 class="h1_marg_b15">Contact Us</h1>';
} break;
case 'help': {
$sidecase .= '<h1 class="h1_marg_b15">Help</h1>';
} break;
case 'rules': {
$sidecase .= '<h1 style="margin-bottom: 10px;">Rules</h1>';
$sidecase .= '<p style="margin-bottom: 15px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin eu nibh turpis. Nunc sit amet auctor elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In malesuada lobortis tempus. Integer auctor condimentum sapien, non scelerisque eros cursus et. In vel leo elementum, iaculis tellus sit amet, vestibulum quam. Etiam dapibus pulvinar risus, vestibulum rhoncus sapien commodo vitae. Etiam sit amet ultrices dui. Suspendisse luctus fringilla eros. Nam vitae metus porttitor, sagittis arcu eleifend, malesuada odio. Aliquam erat volutpat.</p>';
$sidecase .= '<p style="margin-bottom: 15px;">Pellentesque id velit a elit porttitor sollicitudin et vulputate nisl. Donec eu purus non libero porta malesuada et non lorem. Vestibulum ultrices vitae elit vitae accumsan. Quisque euismod, quam sed ornare ultrices, magna mi posuere massa, vel placerat ipsum est quis erat. Aliquam non libero mauris. Etiam ligula velit, commodo et feugiat ac, porta eu orci. Donec laoreet ipsum in urna auctor, vitae malesuada nibh consequat. Donec sit amet libero vitae erat rhoncus venenatis. Maecenas nec pretium justo, eget fermentum tellus. Ut aliquet tellus venenatis posuere fermentum. Fusce mattis velit et tellus suscipit consectetur.</p>';
Context
StackExchange Code Review Q#58544, answer score: 7
Revisions (0)
No revisions yet.