PHP & HTML in 1 website

Status
Niet open voor verdere reacties.

wesley5479

Gebruiker
Lid geworden
12 mei 2011
Berichten
115
Dag Forumlezers,

Mijn vraag is als volgt. Ik ben voor mijn bedrijf bezig om een website te bouwen. Hierin is ook een drop down menu geplaatst bovenin.
Nu heb ik meerdere dingen op de site staan die op iedere pagina terug moeten komen. Echter wist ik tot een paar dagen geleden niet dat je d.m.v. een php inlcude dit niet over hoeft aan te passen, maar alleen op je menu.php pagina. Op zich een ideale oplossing! Nu is mijn vraag of ik de gehele website dan in PHP moeten bouwen of dat het ook gewoon in HTML kan met de PHP include?
Ik maak gebruik van Dreamweaver om mijn site te bouwen. En kan ik met PHP dezelfde functies in Dreamweaver blijven gebruiken als met HTML?
Wie heeft er antwoord op mijn vraag? en daarbij als ik in PHP bouw en dan een 'preview' doe (F12) in Dreamweaver dan kan hij hem niet openen in IE Explorer. Hoe kan dat?

De code die ik op iedere pagina plaats is de volgende:

<?php
include('menu.php');
?>

Dus kort gevraagd:
* Kan ik PHP gebruiken in HTML bestanden?
* Kan ik dezelfde functies gebruiken met PHP als met HTML?
* Waarom opent hij geen PHP in preview ( F12 ) in Dreamweaver

Groeten Wesley
 
Dus kort gevraagd:
* Kan ik PHP gebruiken in HTML bestanden?
Nee je kunt alleen php gebruiken in een .php bestand.
Maar je kunt wel HTML gebruiken in een php bestand.
* Kan ik dezelfde functies gebruiken met PHP als met HTML?
PHP en HTML zijn twee heel verschillende dingen PHP is server side dat wil zeggen dat het op een server moet draaien.
HTML wordt gebruikt voor de opmaak van de website net zoals css dit wordt door de internet client uitgevoerd (internet browser).
* Waarom opent hij geen PHP in preview ( F12 ) in Dreamweaver
Om PHP te kunnen uitvoeren heb je dus een php web server nodig zoals apache.


In jou geval is PHP niet nodig je kunt namelijk ook een iframe tag gebruiken:
HTML:
<iframe src="http://www.w3schools.com"></iframe>
 
Laatst bewerkt:
@stefanz. We leven in 2014 hoor. Dan ga je mensen geen iFrame meer aanraden.

@wesley5479 PHP kent 2 varianten om bestanden in te voegen: require & include. Deze hebben beide nog een variant waarbij wordt gecheckt of een bepaalde pagina al eens eerder is geinclude. (require_once & include_once).

Wat kun je hier mee? Zoals je zelf aangeeft hoe je dan niet elke keer dezelfde code te typen. Dit kun je zelfs nog netter oplossen als je de structuur van je hele site aanpast. Gezien je ervaring zal ik het simpel houden:

Ik ga de volgende structuur opbouwen:
Code:
  - ROOT
  | - css (hierin komen alle css bestanden)
     -- style.css
  | - images (hierin komen alle plaatjes)
  | - js (hierin komen de javascripts)
  | - pages (hierin komen de pagina's)
    -- home.php
    -- about.php
    -- contact.php
   - header.php
   - index.php
   - footer.php

Stel je maakt een header.php waarin je alle header onderdelen zet (html opening, css, javascript, etc)
Code:
<!DOCTYPE html>
<head>
          <title>Mijn titel</title>
          <link type="text/css" rel="stylesheet" href="css/style.css" />
           <!-- etc -->
</head>
<body>
    <div class="page-wrapper">  <!-- kun je gebruiken om de pagina te centreren -->
     <!-- hier kom je menu: hoef je dus nooit meer te includen -->
           <nav>
                 <ul>
                     <li><a href="?p=home">Home</a></li>
                     <li><a href="?p=about">About</a></li>
                     <li><a href="?p=contact">Contact</a></li>
                  </ul>
           </nav>

Dan kunnen we alvast de footer maken

Code:
             <div id="footer">&copy; Copyright <?php echo date('Y'); ?> - All rights reserved</div>
        </div> <!-- sluit de page-wrapper -->
   </body>
</html>

Oke, we hebben nu een header (met menu) en een footer. Maar dat is nog geen website.

Nu gaan we alles samenvoegen in de index.php:

Code:
<?php
     // laadt de header
     require_once('header.php');

    // hier gaan we de content inladen:

    // kijk of er een pagina is opgevraagd en of deze bestaat (nadat we ongewenste invoer filteren)
    if(isset($_GET['p']) && file_exists('pages/' . strip_tags($_GET['p']) . '.php')){
             include('pages/' . strip_tags($_GET['p']) . '.php');
     }   
     else{
             // anders laden we de homepage in
             include('pages/home.php');
     }

     // laadt de footer
     require_once('footer.php');
?>

Wat we nu doen is als volgt: de standaard pagina die wordt opgevraagd is index.php. Deze laadt de header, content en de footer in.
Als er op een link wordt geklikt dan verandert de pagina in : index.php?p=pagina. De index pagina detecteert dat de $_GET['p'] is gezet en gaat kijken of er een bestand in de 'pages' map bestaat met die naam. Zodra dit het geval is dan laadt hij deze in.

P.s. dit is een tamelijk oude manier van het maken van een website. Maar als je het van de grond af wilt opbouwen op een simpele manier is dit een mogelijkheid.

In de map 'pages' kun je gewoon .php bestanden aanmaken welke html bevatten: voorbeeld van de home.php:

Code:
<h1>Homepage</h1>
<p>
    Dit is de homepage. De datum van vandaag is: <?php echo date('d-M-Y'); ?>
</p>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan