Vraag in verband met include

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gertjan Goetynck

Gertjan Goetynck

15/05/2013 16:41:42
Quote Anchor link
Hey!

Voor de hogeschool moet ik een php website maken gebaseerd op een startbestand gemaakt door de prof.

In dit startbestand maakt hij gebruik van een pagina Index.php die eruit ziet als een normale html/ php pagina

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
require('_inc/start.php');
?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Movie Reviews</title>
<link href="_css/main.css" rel="stylesheet">
<link rel="alternate" href="feed-rss.php" type="application/rss+xml" title="RSS feed for the latest movie reviews">
<link rel="alternate" href="feed-atom.php" type="application/atom+xml" title="Atom feed for the latest movie reviews">
</head>
<body>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
/*
Op deze pagina worden de laatste 5 reviews getoond, met telkens een link naar de detailpagina voor die review, alsook een link die rechtstreeks naar de commentaar-sectie verwijst.
*/

?>

</body>
</html>


In een ander bestand staat de volgende code:
Quote:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
require('index.php');

/*

Als de gebruiker niet is ingelogd:

    Toon een formulier waar de gebruiker zijn e-mailadres en wachtwoord kan ingeven om in te loggen.
    Toon een foutmelding indien de gebruiker het formulier verstuurt met een foutief e-mailadres/wachtwoord ingevuld.

Als de gebruiker wel is ingelogd:

    Toon een formulier waar de gebruiker een nieuwe recensie kan toevoegen. De gebruiker moet volgende informatie kunnen ingeven:

    * titel van de film
    * regisseur van de film
    * de recensie zelf (in Markdown)
    * de rating van de film volgens de recensent (van 0 tot 5)
    * link naar de IMDb-pagina voor deze film

    Zorg voor een gebruikersvriendelijke interface.

    Wanneer het formulier wordt verzonden:

        Controleer je of alle velden correct werden ingevuld (bvb. is `rating` wel een getal van 0 tot 5?). Indien niet, toon je het formulier met de ingegeven informatie + een foutmelding naast het desbetreffende veld.

        Indien alle velden correct werden ingevuld, wordt de ingegeven data naar de database weggeschreven. Vergeet hierbij volgende gegevens niet (de gebruiker geeft deze immers niet manueel in):

        * naam van de auteur van de recensie (m.a.w. de volledige naam van de ingelogde gebruiker)
        * publicatiedatum van deze recensie (m.a.w. het huidige tijdstip op het moment van toevoeging)

*/

?>



Nu is mijn vraag het volgende.

Elke keer ik naar de tweede pagina ga zie ik eerst de header,,content, footer etc van de eerste pagina (basically de hele eerste pagina), met daaronder wat er in de tweede pagina staat.

Ik snap dat dit komt doordat de include functie eerst de pagina "Index.php" oproept, en dan als het ware de tweede pagina daaronder plakt.

Hoe kan ik er echter voor zorgen dat de code van de tweede pagina in het content gedeelte komt ZONDER de php generated content van de eerste pagina ook te tonen?

Dank bij voorbaat.
Gewijzigd op 15/05/2013 16:43:38 door Gertjan Goetynck
 
PHP hulp

PHP hulp

22/12/2024 20:22:22
 
Ivo P

ivo P

15/05/2013 17:05:11
Quote Anchor link
door ipv index.php alleen _inc/start.php te includen?
 
Gertjan Goetynck

Gertjan Goetynck

15/05/2013 17:59:52
Quote Anchor link
Ivo P op 15/05/2013 17:05:11:
door ipv index.php alleen _inc/start.php te includen?


Heb ik ook aan gedacht, maar in de briefing staat dat we alle code die geschreven is door de prof niet mogen aanraken, die include moet dus blijven :/
 
Eddy E

Eddy E

15/05/2013 18:42:12
Quote Anchor link
Heel vies: gooi er een ob_start() en ob_flush() omheen. Dan verwijder je zijn zooi.
Of beter: zet er 1 regel boven...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
header("Location: je_eigen_pagina.php");
require('index.php');

/*

Als de gebruiker niet is ingelogd:

    Toon een formulier waar de gebruiker zijn e-mailadres en wachtwoord kan ingeven om in te loggen.
    Toon een foutmelding indien de gebruiker het formulier verstuurt met een foutief e-mailadres/wachtwoord ingevuld.

Als de gebruiker wel is ingelogd:

    Toon een formulier waar de gebruiker een nieuwe recensie kan toevoegen. De gebruiker moet volgende informatie kunnen ingeven:

    * titel van de film
    * regisseur van de film
    * de recensie zelf (in Markdown)
    * de rating van de film volgens de recensent (van 0 tot 5)
    * link naar de IMDb-pagina voor deze film

    Zorg voor een gebruikersvriendelijke interface.

    Wanneer het formulier wordt verzonden:

        Controleer je of alle velden correct werden ingevuld (bvb. is `rating` wel een getal van 0 tot 5?). Indien niet, toon je het formulier met de ingegeven informatie + een foutmelding naast het desbetreffende veld.

        Indien alle velden correct werden ingevuld, wordt de ingegeven data naar de database weggeschreven. Vergeet hierbij volgende gegevens niet (de gebruiker geeft deze immers niet manueel in):

        * naam van de auteur van de recensie (m.a.w. de volledige naam van de ingelogde gebruiker)
        * publicatiedatum van deze recensie (m.a.w. het huidige tijdstip op het moment van toevoeging)

*/

?>
 
Kevin Driessen

Kevin Driessen

15/05/2013 19:36:55
Quote Anchor link
De vraag is of je dan wel code mag toevoegen...

Het lijkt mij een ietwat omslachtige manier van werken, maar je zou functies (e.t. classes) kunnen gebruiken. In de index-pagina roep je in de php-code, wat tussen de body-tags staat, een functie aan. In het andere bestand heb je deze functie staan, waarin je html-code teruggeeft.

Een voorbeeld van hoe je code zou kunnen worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require('_inc/start.php');
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Movie Reviews</title>
        <link href="_css/main.css" rel="stylesheet">
        <link rel="alternate" href="feed-rss.php" type="application/rss+xml" title="RSS feed for the latest movie reviews">
        <link rel="alternate" href="feed-atom.php" type="application/atom+xml" title="Atom feed for the latest movie reviews">
    </head>
    <body>
    
<?php
/*
Op deze pagina worden de laatste 5 reviews getoond, met telkens een link naar de detailpagina voor die review, alsook een link die rechtstreeks naar de commentaar-sectie verwijst.
*/


echo getMyHtmlCode();

?>

    </body>
</html>


In een ander bestand staat de volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
require('index.php');


function
getMyHtmlCode(){
    $htmlCode = "
        <h1>Pagina-titel</h1>
        <p>Alinea-tekst</p>
    "
;

    //(je kunt voordat je de htmlCode returned natuurlijk nog op allerlei manieren bewerken)

    return $htmlCode;
}


?>


In deze context heeft php de prettige eigenschap dat de volgorde niet zodanig hoeft te zijn dat de functie is gedefinieerd voordat je 'm aanroept. Als je de tweede pagina laadt, dan wordt in die tweede pagina dus de index-pagina geladen en in die index-pagina wordt de functie uit je tweede pagina aangeroepen.
Gewijzigd op 15/05/2013 19:49:25 door Kevin Driessen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.