Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

opbouw php pagina

Gooly
11 antwoorden
  • Is er een soort "sjabloon"
    egel voor de opbouw van een php pagina.
    Ik begreep uit een ander onderwerp dat php-code overal binnen een html pagina te plaatsen is.

    Maar wat als de pagina geheel in php staat, moet er dan ook eerst een gewone html opbouw zijn?

    Ik vraag het vanwege dit formulier waar ik mee aan het stoeien ben. Die is zoals je kunt zien alleen opgebouwd uit php-code. Mijn php is nogal pril dus als ik via html de randvoorwaarden van die pagina kan scheppen ben ik een blij mens :P
  • Ik ben ook een beginner, maar net wat verder :-)
    Om te beginnen is het belangrijk om te weten dat PHP en HTML twee totaal verschillende functies hebben. HTML bevat instructies voor een webbrowser en deze code wordt dus in zijn geheel naar een bezoeker gestuurd. PHP bevat instructies voor een webserver en wordt dus niet naar de bezoeker gestuurd. (Ik kan dus ook niet zien dat het bewuste formulier in zijn geheel uit PHP bestaat, al kan ik het in de code wel zien aan het 'action' attribuut in de form tag)

    Als je wilt dat de bezoeker iets te zien krijgt in zijn browser, dan zul je die browser dus instructies moeten sturen en die begrijpt alleen HTML. (Nou ja, in ieder geval geen PHP) Je kunt dat op 2 manieren oplossen:
    Je kunt gewone HTML in je PHP bestand zetten en de PHP in afzonderlijke blokken zetten, of je laat de PHP de HTML code genereren. Het hangt een beetje af van wat je wilt doen, welke van de twee de beste manier is.

    Een PHP blok geef je aan door met <?php te beginnen en met ?> te stoppen. Als er enkel PHP in een bestand staat, dan zal dat bestand dus met <?php beginnen en met ?> eindigen. Als er ook html tuusen staat dan zal elke PHP blok op die manier aangegeven zijn.

    Voorbeeldje.
    Hierdriedingen die precies hetzelfde doen.

    Helemaal HTML:
    <a href ="www.homepage.nl"> Homepage</a>

    HTML en PHP gemixed:
    <a href = <?php echo "\"www.homepage.nl\""; ?>> Homepage</a>

    Helemaal PHP
    <?php
    echo"<a href =\"www.homepage.nl\"> Homepage</a>";
    ?>

    PHP kan overal staan wanneer je het mixed met gewone HTML, maar het moet dus wel op de plaats staan waar het nodig is. In dit geval drukt het het adres van de link af, dus staat het op de plek waar het link adres moet verschijnen.

    Niet alle PHP scripts vereisen ook HTML opbouw, zoals je dat noemt. Ik heb b.v. een script gemaakt dat de van oorsprong engelse maandnamen in PHP omzet naar nederlandse namen. Op het moment dat ik het nodig heb roep ik "onder water" dat scriptje aan, en die stuurt een variabele terug met daarin de nederlandse maandnaam die ik wil hebben. Daar komt geen HTML aan te pas.
    Om bij het voorbeeld van een formulier te blijven, zoals hier, kun je er voor kiezen om alles in 1 script te doen, gemengd met HTML en PHP. maar ikzelf maak zoiets meestal met twee bestanden, een puur HTML bestand met het formulier, en een PHP script dat de invoer verwerkt. Dat PHP script wordt dan weer in HTML aangeroepen m.b.v. de <form> tag. Je kunt je PHP script daar m.b.v. 'action=" aanroepen. (b.v. <form method="post" action="verwerk.php">)
  • Ik raad je aan niet te gaan mixen. Je houdt je php in een script, de vaste htnl zoveel mogelijk in templates. Voor een simpel scriptje kan het wel, maar met uitgebreidere dingen, kom je hopeloos in de problemen.
  • PHP en HTML gescheiden verdient inderdaad de voorkeur, maar soms ontkom je er niet aan. Althans, zo zie ik het. Wanneer ik b.v. een complete HTML pagina heb waar ik m.b.v. PHP alleen de actuele datum boven wil hebben (Ik noem maar wat), dan ga ik die hele lap HTML niet door PHP laten parsen. Dan voeg ik gewoon een klein PHP blokje aan de HTML toe.
    Maar toegegeven, dat zijn uitzonderingen. Bij zoiets als een formulier is het veel beter om het gescheiden te doen.

    Edit:
    Laat maar, ik moet gewoon beter lezen. Ik zie dat Gerben eigenlijk precies hetzelfde zei, maar dan korter :? :D
  • ok da's duidelijk.

    begrijp ik nu dat je dan het script extern aanroept vanuit een html pagina? net als css bijv.
    zoals ik het nu heb gedaan is het een site met louter html pagina's.

    Dan een formulier in geheel in php, zonder een letter html.
    en een link vanaf de site naar mijn "formulier.php" (alles staat overigens in dezelfde rootdirectory)

    Ik wilde het formulier in een bestaande pagina, in een bepaalde <div> laten plaatsen zodat ik controle heb over de positie. Maar eigenlijk vind ik het zo wel prima. Het werkt da's het voornaamste!

    Wat ik vreemd vond was de code van die php pagina, ik ben gewend aan een headsectie en doctypedefinities maar die php begint gewoon hup, <?php. Geen enkele definities o.i.d…

    Moet er niet iets voor om de randvoorwaarden te definieren?
  • Het klopt dat er verder niks nodig is dan met <?php beginnen en met ?> eindigen. Het zijn instructies voor de webserver, en die heeft geen behoefte aan een doctype, header of body. Dat zijn HTML specifieke dingen. (Een externe stylesheet heeft dat ook niet trouwens, maar dat terzijde). En je dient het document de extensie .PHP te geven natuurlijk.

    Zoals ik al zei, het 'linken' doe je in het geval van een formulier via de <form> element en het action attribuut. De invul velden in je formulier hebben namen en die namen kun je in je PHP script als variabelen 'importeren'. En dan heb je in je script dus alle data uit de ingevulde velden tot je beschikking. Dat formulier mag je uiteraard zetten waar je maar wilt. B.v. in een div zoals je zei.

    Voorbeeldje
    [code:1:0b8387b267]
    <form method="post" action="verwerk.php">
    <input type="text" name="voornaam" />
    <input type="text" name="achternaam" />
    <input type="submit" value="Versturen" />
    </form>
    [/code:1:0b8387b267]
    en dan je verwerk.php:
    [code:1:0b8387b267]
    <?php
    // -Importeren van de HTML velden- \\
    $lastname = $_POST["achternaam"];
    $firstname = $_POST["voornaam"];
    // -De gegevens uit het HTML formulier zitten nu in twee PHP variabelen- \\
    echo "Welkom op mijn website $firstname $lastname";
    ?>
    [/code:1:0b8387b267]
    Voor alle duidelijkheid: Het HTML voorbeeldje toont alleen het formulier dat je in een bestaande HTML document kunt verwerken. Het PHP voorbeeld is het gehele scriptje dat je bij wijze van spreken 1 op 1 over zou kunnen nemen.
  • Ah ik begin het nu te berijpen :oops:

    PHP document -> parsen op de server -> html output aan clientside.

    Dus ik begrijp dat een hele trits php in een <div> plaatsen wel kan maar niet aanbevelenswaardig is?

    Andere vraag hierover;

    Hoe werkt het andersom? kan ik binnen een brok php-code wel kleine stukjes html plaatsen door <html>code</html> te gebruiken?
  • Dat kan wel, maar dan moet je dat of in een echo doen, of eerst het php gedeelte afsluiten met ?> en dan HTML gebruiken.
  • Dus ik knip mijn php document in twee, zet daar een stuk html tussen en dan zou het moeten werken. (uiteraard knippen door netjes afsluiten ?> en weer opnieuw openen<? na het html stuk)
  • Ja, zo kan je HTML en PHP combineren. Wel nog steeds opslaan als .php, anders gaat het fout.
  • tnx!!
    Zo kan ik weer even experimenteren :P

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.