views:

68

answers:

3

Problems

Project1.php does not show: CSS, thumbs and sidebar navegation

I do not know what is wrong with it?

Site Structure:

giving
   | - - css
   | - - footer.inc.php
   | - - header.inc.php
   | - - index.php
   | - - portfolio
               | - - print
                       | - - images.inc.php
                       | - - img
                              | - - main
                                      | - - project1.jpg
                                      | - - project2.jpg 
                              | - - thumbs
                                      | - - project1.png
                                      | - - project2.png            
                       | - - project1.php
                       | - - project2.php
               | - - print.php

         | - - web
                | - - images.inc.php
                | - - img 
                ....
                | - - web.php

                | - - consulting
                | - - consulting.php

                | - - illustration
                | - - illustration.php

The Index.php looks like:

<?php    
                $page = $_GET['page'];

                if (!$page) {
                 $page = 'page';
                }          

            include("header.inc.php");
            include("portfolio/".$page.".php");
            include("footer.inc.php");
?>

The Thumbs linking to pages:

<ul id="thumbs">

  <?php
  $dir = 'portfolio/print/img/thumbs/';
  $path = 'portfolio/print/';

  $fileTypes = array( '.png', '.jpg', '.gif');

  foreach( $fileTypes as $extension ) {
      foreach( glob($dir . '*' . $extension) as $projectImage ) {
          $projectName = basename($projectImage, $extension);
          $project = $projectName . '.php';
          echo '<li>
              <a href="'. $path . $project . '">
              <img src="' . $projectImage . '" alt="' . $projectName . '" />
              <strong>'. $projectName .'</strong>
              </a>
              </li>';
      }
  }
// Thanks to Maggie for the Help!
?>

Project1.php:

I'm including footer.inc.php / header.inc.php / images.inc.php like so:

<?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/giving/header.inc.php";
   include_once($path);
?>
<?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "giving/portfolio/print/images.inc.php";
   include_once($path);
?>
<!-- Content -->
<!-- Title - Print -->  
    <p class="title">Print <span id="clients_name">Print 1</span></p>                               
    <h2 id="img">
      <?php

        $main_dir = 'img/main/';
        $scan = scandir ($main_dir);

        echo '<img src="' . $main_dir . $scan[3] . ' "alt ="images" />';
        ?>
    </h2>
    <p class="brief">
        <span>Brief:</span> He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so that he could lift his head better; found where the itch was, and saw that it was covered with lots of little white spots which he didn't know what to make of. 
        </p>        
    <h4><a title="Go Live" href="#">Live Project</a></h4>

<?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/giving/footer.inc.php";
   include_once($path);
?>

Header.inc.php

<!DOCTYPE html> 
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Giving - 1st theme</title>
        <link href="css/layout.css" type="text/css" media="screen, projection" rel="stylesheet">
    </head>
    <body>
  <div id="portfolio">
    <div class="content">
        <h1><a href="#home" title="Panel's Home Page">Panels Logo Portfolio</a></h1>
        <div id="projects_services">
            <div id="print_section">
                <?php // $currentPage = basename($_SERVER['SCRIPT_NAME']); ?>
                <ul id="sidebar">


                  <?php

                        $sections = array("Print", "Web", "Illustration", "Consulting");

                        foreach ($sections as $row) { 
                            echo "<li><a href=\"index.php?page=$row\"";

                            if ($row == $page) { 

                                echo "class=\"selected\"";
                            }

                            echo ">$row</a></li>\n";                
                        }


                    ?>

              <!-- <li>
                <a href="print.php" <?php // if ($currentPage == 
                //                 'index.php?page=print.php') {echo 'class="selected"';} ?> title=" ">Print</a> 
              </li>           
              <li>
                <a href="index.php?page=web.php" <?php // if ($currentPage == 
                //                 'index.php?page=web.php') {echo 'class="selected"';} ?> title=" ">Web</a> 
              </li>
              <li>
                <a href="index.php?page=illustration.php" <?php // if ($currentPage == 
                //                 'index.php?page=illustration.php') {echo 'class="selected"';} ?> title=" ">Illustration</a> 
              </li>
              <li>
                <a href="index.php?page=consulting.php" <?php // if ($currentPage == 
                //                 'index.php?page=consulting.php') {echo 'class="selected"';} ?> title=" ">Consulting</a> 
              </li> -->
                </ul><!-- End sidebar-->   

Phew!

Thank you!

+3  A: 
<?php    
                $page = $_GET['page'];

                if (!$page) {
                 $page = 'page';
                }          

            include("header.inc.php");
            include("portfolio/".$page.".php");
            include("footer.inc.php");
?>

This is horrible, do some check of user input, if you don't want to someone view your /etc/passwd and other files.

If think the best way to localise your problem is to simple print to browser, where your script is looking to CSS file. Also you can output dirname(__ FILE__) and compare paths, maybe you will find difference.

killer_PL
Yes, I have heard that one before. That's why I would use <?php // $currentPage = basename($_SERVER['SCRIPT_NAME']); ?>Thanks!
Martin
I would try it. thanks again!
Martin
A: 

It's very hard to understand your code and your problem. You're not showing us your header.inc.php, where the connection to css should be.

And, does it work properly in project2.php?

Simon
I have added it Simon. Thank you for your helps
Martin
Nope. It does not. "It's very hard to understand your code" Sorry. I am new to PHP
Martin
No problem, everyone is new in the beginning. As you can see, Lèse majesté posted the right answer.
Simon
+2  A: 

Your header is linking to a relative URL (css/layout.css). Make it link to an absolute path (/css/layout.css).

Lèse majesté
It did not help.
Martin
Then you need to change the absolute path to fit your web server setup. If the application's root is `yourdomain.com/myapp/` then it needs to be `/myapp/css/layout.css`.
Lèse majesté
Thanks Lèse majesté
Martin