Ga naar inhoud

Probleem met favicon


Aanbevolen berichten

Offtopic:

Je stukje PHP code is erg aan de kleine kant. Op jouw manier zie je wanneer je 'pagina' getter niet geset is (oftewel: index.php) helemaal niets op je pagina. Deze is gewoon blanko.

Ook zitten er wat kinderfoutjes in, maar dat is misschien omdat je beginnend PHP programmeur bent. Er zitten namelijk ook wat controles aan vast in je PHP code. Want zou je dit uitbreiden naar database pagina's kunnen ze op die manier nieuwe waardes in je database schrijven door alleen maar een pagina te bezoeken. (zoek maar eens naar sql import by address bar. Of iets dergelijks). Maar dat is voor later.

Maar om on-topic te komen.

Een favicon MOET op elke pagina staan die je kan bezoeken.

Heb je een index.html, moet er in die index.html de code voor een favicon staan.

Heb je een pagina1.html, moet er in die pagina ook de code staan voor een favicon toe te voegen.

MAAR, gebruik je een include manier met PHP dan heb je eigenlijk een soort sjabloon.

Je maakt dan index.php En eigenlijk waar je ook op klikt, de website zal altijd op index.php blijven staan. Dit wordt namelijk dan geregeld via de GET elementen waar ik het in mijn Off-topic stukje over had.

de browser url wordt dan bijvoorbeeld: index.php?pagina=test

index.php heeft dan bijvoorbeeld de volgende code in zich staan:

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<?php
require($_GET['pagina'] . ".html");
?>
</body>
</html>

De voorbeeld code is simpel gehouden zodat je ziet wat er gebeurt.

De bron van de website zal ALTIJD die stylesheet hebben (dus bijvoorbeeld ook jouw favicon). Alleen wanneer je dan 'index.php?pagina=test' zou bezoeken. Wordt alles tussen de <body> en </body> tags vervangen door de inhoud van test.html

Hoop dat je het een beetje snapt.

Op jouw manier krijg je namelijk een totaal ander iets. Je hebt een index.html gemaakt daarin staat een stylesheet (zoals hierboven) een beetje inhoud tussen de <body> en </body> tags. En daar staat een linkje die verwijst naar "pagina3.html". De browser zal dan de volledige pagina "ontladen" en de nieuwe pagina (pagina3.html) inladen.

Alles wat in index.html stond, is de browser al helemaal vergeten. Dus bijvoorbeeld ook jouw stylesheet, of jouw favicon. Deze moet je dan in pagina3.html weer erin zetten.

Dit is erg nadelig, want wil je een plaatje toevoegen aan je website in je menu, moet je dat OVERAL toevoegen. Op de manier dat je 'include' gaat gebruiken, hoef je dit alleen nog maar op 1 plekje te doen, en staat het gelijk overal goed.

Ik hoop dat je het snapt wat iedereen een beetje probeert te vertellen, en wat de meerwaarde is van PHP en het 'include' gedeelte

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Dat is niet waar wat je zegt.

Ik heb zelfs 4 CSS styles op de eerste pagina staan.

Nu zal je denken dat ik verschillende namen gebruikt in de 4 CSS maar dat is niet zo.

Dus op geen enkel brondpagina staat CSS

Het systeem die ik gebruik kan ook een sub-pagina zijn van een geincludeerde pagina.

Of beter gezegd: onze website is zo opgebouwd.

Als je goed leest dan is index.php de eigenlijk pagina en home.php de geincludeerd pagina.

Ook gebruik ik database die ook werkt maar tijdelijk uitgeschakeld.

De kern van onze website is dat ook oude mensen heel goed kunnen werken met onze website en daar ben ik ruimschoot in geslaagd want 90% van klanten bestellen via onze website.

Ik ben daar zelfs in geslaagd om spam te verkomen zonder dat iemand ziet.

Link naar reactie
Delen op andere sites

Zeg ik ook niet dat je in de geincludeerde pagina's CSS files moet zetten... hierdoor zou hij als je inde <body> tags werkt niet door de W3 validator komen.

Ik zeg alleen hetgeen even in grotere woorden zodat het gesnapt kan worden. Iemand die totaal nog nooit PHP heeft gezien weet niet gelijk wat if functies zijn, of wat include() betekend.

En wat het verschil is wanneer je index.php?pagina=**** gebruikt of dat je redirect naar pagina.html.

Mijn websites zijn ook opgebouwd uit includes, alleen zijn deze object georienteerd geschreven. Oftewel soms kun je hebben dat een geinclude pagina opgevraagd kan worden aan de fysieke plaats op de server.

vb:

www.mijndomein.be/pages/home.php

Je zal inderdaad geen opmaak zien, alleen kant en klare tekst.

Dat is er bij mij "uitgehaald" en volledig in OOP gezet (Object Orientated Programming). Dit maakt het sowieso al veel makkelijker om dingen te wijzigen in een later stadium.

Maar wat ik bedoelde met SQL query's in de browser.

als je de volgende Query zou gebruiken:

$sql = "SELECT * FROM pages WHERE name='" .$_GET['pagina']. "'";

En je kunt SQL code afbreken net zoals je PHP code kunt afbreken met bijvoorbeeld /* en */ kun je dat ook bij SQL met een bepaalde code.

Dus breek je alles af wat ervoor staat, dit doe je ook voor hetgeen wat erachter staat.

Nu hoef je alleen nog maar een nieuwe SQL code te schrijven. Bijvoorbeeld:

DELETE FROM *

Jouw PHP code zal nu dus hetvolgende doen:

$sql = "SELECT * FROM pages WHERE name='DELETE FROM * '";

Ondergestreppte zal worden vergeten door die afsluiters en zal de inhoud van je SQL string (vetgedrukt) worden uitgevoerd. Dit heet SQL injecties (was in mijn vorig antwoord de naam ervan kwijt).

Dit is wel tegen te gaan door controles uit te voeren, of gewoon alles gecodeerd in je database te stoppen.

Maar dit is volledig off-topic, maar misschien handig voor later wanneer je pagina's wilt gaan uitlezen d.m.v. een database.

Groeten,

Leroy

Link naar reactie
Delen op andere sites

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.