Vraag in verband met include
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:
<!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>
</body>
</html>
<!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)
1
2
3
4
5
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.
*/
?>
/*
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)
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
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)
*/
?>
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
door ipv index.php alleen _inc/start.php te includen?
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 :/
Of beter: zet er 1 regel boven...
Code (php)
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
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)
*/
?>
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)
*/
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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>
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)
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