PHP and CSS

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Hallo,

Ik zit met een vraagje:Ik heb gelezen dat je een aantal .php files kunt maken die je dan in elke andere .php file kan gaan includen om overal dezelfde opmaak te hebben. Maar is dat ook niet wat CSS doet. De opmaak verzorgen voor al je website files (of kan je CSS enkel gebruiken bij (X)HTML).

Ik vroeg me bij deze dus af, welke manier het beste is, en hierbij ook het beste resultaat kan geven i.v.m. de opmaak van je website.
 
PHP zorgt alleen voor de (x)HTML-code, met CSS zul je die dan moeten opmaken.

Wat jij over PHP waarschijnlijk hebt gelezen is dat je 1 bestand hebt voor het uiterlijk en meerdere bestanden voor de inhoud qua tekst.

Dat kun je vergelijken met een IFRAME
 
Ik heb het gelezen in deze context:

Je hebt bijvoorbeeld page_header.php en page_footer.php en die laat je dan includen in al je andere files.

PHP:
<html>
<head>
  <title>TLA Consulting Pty Ltd</title>
  <style type="text/css">
    h1 {color:white; font-size:24pt; text-align:center;
        font-family:arial,sans-serif}
    .menu {color:white; font-size:12pt; text-align:center;
           font-family:arial,sans-serif; font-weight:bold}
    td {background:black}
    p {color:black; font-size:12pt; text-align:justify;
       font-family:arial,sans-serif}
    p.foot {color:white; font-size:9pt; text-align:center;
            font-family:arial,sans-serif; font-weight:bold}
    a:link,a:visited,a:active {color:white}
  </style>
</head>
<body>

  <!-- page header -->
  <table width="100%" cellpadding="12" cellspacing="0" border="0">
  <tr bgcolor="black">
    <td align="left"><img src="logo.gif" alt="TLA logo" height="70" width="70"></td>
    <td>
        <h1>TLA Consulting</h1>
    </td>
    <td align="right"><img src="logo.gif" alt="TLA logo" height="70" width="70" /></td>
  </tr>
  </table>

  <!-- menu -->
  <table width="100%" bgcolor="white" cellpadding="4" cellspacing="4">
  <tr >
    <td width="25%">
      <img src="s-logo.gif" alt="" height="20" width="20" />
      <span class="menu">Home</span></td>
    <td width="25%">
      <img src="s-logo.gif" alt="" height="20" width="20" />
      <span class="menu">Contact</span></td>
    <td width="25%">
      <img src="s-logo.gif" alt="" height="20" width="20" />
      <span class="menu">Services</span></td>
    <td width="25%">
      <img src="s-logo.gif" alt="" height="20" width="20" />
      <span class="menu">Site Map</span></td>
  </tr>
  </table>

Dus moet je normaal gezien alleen maar dit bestand aanpassen, als je je layout wilt aanpassen. Voor zover ik zie staat er geen php code in, alleen maar HTML. Toch slaat hij hem op onder .php

Dus was mijn vraag is eigenlijk of je het nu op dergelijke manier doet, of beter CSS, omdat er toch alleen maar HTML of XHTML code instaat.

Mijn eerste post was misschien wat onduidelijk. Mijn excuses:o
 
Het gaat er volgens mij om dat het bestand waarin je de include uitvoert een php bestand is, je doet namelijk:
PHP:
<?php
include('header.php');
?>
Maar volgens mij hoeft het bestand dat je include niet perse een .php bestand te zijn, ik zou zeggen probeer het eens! Verander de extensie van header.php eens naar header.html en doe dan dit:
PHP:
<?php
include('header.html');
?>

Het zou beide het zelfde resultaat moeten geven (er staat namelijk precies hetzelfde in het bestand.) Stel je eens voor dat je later toch een klein .php script in je footer wil, dan kan je als nog alle extensies van de includes gaan zitten veranderen (en dan vergaat het idee van een footer een beetje.) Ik zou het zelf safe spelen en een .php extensie gebruiken...

Groetjes,
Niels
P.s Correct me if I'm wrong ;)
 
Laatst bewerkt:
Maar CSS zal hier dan nooit aan te pas komen, ofwel snap ik de bedoeling van CSS niet helemaal en kan iemand me dit eens kort verklaren?

In ieder geval veel bedankt!
 
In principe heeft .css niet zoveel te maken met een .php include...
Deze is alleen om inhoud (bijv. html of php) van één bestand in meerdere bestanden te zetten, handig als het het zelfde moet zijn...

Je kan natuurlijk een header file maken en daar je alle css inzetten.
Maar je kan beter in je header een verwijzing zetten naar een extern stylesheet...

Het idee van .css is dat je een style (meestal doormiddel van een stylesheet) op elke pagina waar dit moet hetzelfde houdt door één bestand aan te passen...

Het idee van een php include is dat je delen van pagina's die qua inhoud (html of php) het zelfde moeten zijn, denk aan een menu, met één bestand kan aanpassen.

Met beide maak je eigenlijk een wijziging in een bestand die effect heeft op één of meerdere andere bestanden, maar er is weldegelijk een verschil.

Is het zo duidelijk?
Anders hoor ik het wel.

Met vriendelijke groet,
Niels
 
Laatst bewerkt:
In principe heeft .css niet zoveel te maken met een .php include...
Deze is alleen om inhoud (bijv. html of php) van één bestand in meerdere bestanden te zetten, handig als het het zelfde moet zijn...

Je kan natuurlijk een header file maken en daar je alle css inzetten.
Maar je kan beter in je header een verwijzing zetten naar een extern stylesheet...

Het idee van .css is dat je een style (meestal doormiddel van een stylesheet) op elke pagina waar dit moet hetzelfde houdt door één bestand aan te passen...

Het idee van een php include is dat je delen van pagina's die qua inhoud (html of php) het zelfde moeten zijn, denk aan een menu, met één bestand kan aanpassen.

Met beide maak je eigenlijk een wijziging in een bestand die effect heeft op één of meerdere andere bestanden, maar er is weldegelijk een verschil.

Is het zo duidelijk?
Anders hoor ik het wel.

Met vriendelijke groet,
Niels

Eens en vooral bedankt voor een zeer degelijke uitleg.:thumb:

Je maakt dus gewoon bijvoorbeeld een page_header.php en daarnaast maak je dan nog een extern stylesheet (waar dus al je opmaak trulala instaat) en dat moet je daar moet je dan naar verwijzen in je page_header.php file? Het is dus eigenlijk een combinatie van de 2 dat je zal gaan maken. En uiteindelijk include je page_header.php en zo onrechtstreeks ook je extern stylesheet.
 
Laatst bewerkt:
Ja zo kan je het zien ja.
Alleen lijkt het mij niet erg efficient om een include te maken voor alleen een header met stylesheet. Meestal wordt een include gebruikt voor menu's, banners, footers, maar ok forms die meerdere keren terug komen. (Maar hopelijk begreep je dat al.)

Het bestand header_include.php ziet er dan bijvoorbeeld zo uit:
PHP:
<html>
	<head>
		<link href="style.css" rel="stylesheet" type="text/css" />
		<title><?php echo $page_title; ?></title>
	</head>
	<body>
(Een kort voorbeeldje.... Ik weet ook niet zeker of de verwijzing naar stylesheet goed is, dat deed ik even uit m'n hoofd, maar wist het niet 100%.)

Je index.php zo er dan bijvoorbeeld zo uitkomen te zien:
PHP:
<?php
$page_title = "test voorbeeld";
include('header_include.php');
include('menu.php');
?>
Site
Site
Site
<?php
include('footer.php');
?>
(Er vanuit gaande dat je ook menu.php en footer.php aanmaakt.
In dit voorbeeld is het belangrijk dat je de variabele "$page_title" aanmaakt voordat je de header include, in de header moet deze variabele al geset zijn...

O,ja nog twee dingen waar ik php includes vaak voor gebruik: terug komende variabelen en terug komemde (zelf geschreven) functies.

Het is natuurlijk mogelijk dat je een keer je MySQL wachtwoord veranderd... Je hebt dan geen zin om dit in alle bestanden te wijzigen, maak een config.php bestand aan, zet daarin in de variabele $mysql_pass en geef daar je wachtwoord op. Include dit bestand op alle pagina's waar het nodig is en gebruik deze variabele als wachtwoord zeg maar. (Note!: zet niet alle terug komende variabelen in een eigen bestand, ze mogen allemaal in het zelfde (config.php) bestand.)

Terugkomende functies is eigenlijk het zelfde idee, maar dan gaat het over functies, je kan deze ook (onderaan) de config.php zetten, maar het is natuurlijk overzichtelijker om deze in een apart bestand te zetten (functies.php)

Ik hoop dat je het nu helemaal begrijpt.
 
Ik snap het!:p:thumb::cool:

Ik heb ondertussen nog wat opgezocht en gelezen over PHP en Mysql, en zat nog met een klein vraagje. Overal raden ze aan om een connection.php bijvoorbeeld aan te maken met daarin je hostname, wachtwoord, ... en dan zeggen ze telkens 'that you have to put your connection file outside the document tree'. Als ik Engels snap wil dat zeggen dat ik ze niet in de map 'htdocs' van mijn Apache mag staan.

Mijn vraag is dan: Je mag hem waarschijnlijk overal zetten, maar hoe link je dan die connection file aan al je ander php files die wel in je 'htdocs' staat? Moet je eerst aangeven waar je connection.php staat en dan includen? Of doe je dit nog op een heel andere manier?
 
Je kunt die file het best een map "hoger" zetten. Dan is die file nooit te benaderen door gebruikers met ... slechte intenties en je roept hem op door:

PHP:
include('../db_connection.php');
 
Ik zou het zo doen:


PHP:
config.php:
<?php
## Array genaamd "config" met alle config info.
$config['mysql_host'] = 'localhost';
$config['mysql_user'] = 'root';
$config['mysql_pass'] = '';
$config['mysql_daba'] = 'voorbeeld';

//En
//Nog
//Veel
//Meer
//Config
//Variabelen
?>

PHP:
connection.php:
<?php
if (!$con = mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_pass']))
{
    header("Location:fout.php?fout=1");
}
else
{
    if (!$db = mysql_select_db($config['mysql_daba'],$con))
    {
        header("Location:fout.php?fout=2");
    }
}
?>

PHP:
fout.php:
<?php
if ($_GET['fout'] = 1)
{
    echo 'Kon niet verbinden met server.';
}
elseif ($_GET['fout'] = 2)
{
    echo 'Kon niet verbinden met database';
}
else
{
    header("Location:index.php");
}
?>

PHP:
index.php:
<?php
include('../config.php');
include('../connection.php');
?>
Site
Site
Site

Dit is maar even een voorbeeld zoals het zou kunnen...
Ik heb het trouwens niet getest en heel snel getypt dus er zullen wel wat fouten inzitten...

Ik zet meetal mijn config.php en andere bestanden waar andere mensen niks in hebben te zoeken een mapje hoger dan de root direction, zodat mensen die iets naar willen doen er niet zo makkelijk bij kunnen... (In dit voorbeeld staan index.php en fout.php dus in de root directory van m'n site, en config.php en connection.php een mapje hoger.)

Snap je het idee nu?

Groet,
Niels

P.s Zoals je hopelijk ziet is dit niet helemaal valid html ;)
 
Oeps, de reactie van Erik had ik niet gezien, en is misschien wel een wat simpelere uitleg die makkelijker te begrijpen is.

Je kan bepaalde bestanden natuurlijk ook beveiligen met een .htaccess bestand...
 
Laatst bewerkt:
Ik heb je pagina van .htaccess doorgenomen en hierbij quote ik een aantal regels vanop hun website:

Kanttekeningen:

* Niets is ooit 100% veilig. Er kunnen altijd veiligheidsproblemen optreden.
* De gebruikersnaam en het wachtwoord worden verstuurd als gewone tekst. Ze zijn dus niet versleuteld.

Nu was mijn vraag welke het veiligste van de 2 is: gewoon je belangrijke bestanden een mapje hoger zetten of gebruik maken van .htaccess om toegang tot die bestanden te verhinderen door een dergerlijk gebruikersnaam en wachtwoord test ?

Mag ik dan ook stellen dat je alleen .htaccess kunt gebruiken voor je bestanden die in mijn htdocs staat of eigenlijk ook die in mijn 'mapje hoger' staat en dan heb je in principe een dubbele beveiliging?
 
Laatst bewerkt:
Ik denk dat een mapje hoger zetten het veiligst is, maar .htaccess is erg interessant, dus ik dacht ik meld het even.

Quote van de site:
Code:
RewriteEngine On 
RewriteBase / 
RewriteRule ^\.htaccess$ .htaccess  [F]

Met deze regel is het onmogelijk voor gebruikers om ons .htaccess bestand te bekijken. Ditzelfde kun je natuurlijk met allerlei andere bestanden doen.

Je zou op deze manier ook je belangrijke bestanden kunnen beveiligen...
Dan wel de bestandsnaam letterlijk lijkt mij, want anders worden alle .php bestanden geblokkeerd (weet niet 100% zeker hoe dit werkt, ik ben nog vrij nieuw met .htaccess.) Er zijn vast mensen op dit forum die je hiermee kunnen helpen.

Ik denk trouwens niet dat je .htaccess effect kan laten hebben op een hoger gelegen map, maar ook dit weet ik niet zeker.

Groet,
Niels
 
Ik wil je bij deze erg bedanken voor de uitgebreide uitleg die je gegeven hebt!!!!:thumb::p:D:cool::)
 
Was dat voor mij bedoeld?

In dat geval erg graag gedaan...
Zo niet, als nog graag gedaan.
 
In principe voor beide, maar aangezien jij zoveel en goed geantwoord hebt eigenlijk jou. K'heb gezien dat ik de naam vergeten was te vermelden.:o Ze zouden hier nog eens moeten een waarderings button zetten op dit forum. Van mij had je hem zeker verdiend.:thumb:
 
Ik denk dat een mapje hoger zetten het veiligst is, maar .htaccess is erg interessant, dus ik dacht ik meld het even.

Quote van de site:


Je zou op deze manier ook je belangrijke bestanden kunnen beveiligen...
Dan wel de bestandsnaam letterlijk lijkt mij, want anders worden alle .php bestanden geblokkeerd (weet niet 100% zeker hoe dit werkt, ik ben nog vrij nieuw met .htaccess.) Er zijn vast mensen op dit forum die je hiermee kunnen helpen.

Ik denk trouwens niet dat je .htaccess effect kan laten hebben op een hoger gelegen map, maar ook dit weet ik niet zeker.

Groet,
Niels

Heeft iemand toevallig een antwoord op deze vraag
 
.htaccess heeft in principe effect op de map waarin het geplaatst staat en diens submappen, tenzij anders gespecificeerd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan