Minder pagina's gebruiken met php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Jarek Danowski

Jarek Danowski

13/06/2011 17:18:13
Quote Anchor link
Kan iemand mij helpen met de volgende code's ik weet nog steeds niet hoe ik ze moet invullen, maar eerst wat uitleg over mijn probleem. Ik wil op zo mijn mogelijk pagina's werken en niet voor ieder onderwerp een andere pagina. Dus ik wil een index pagina met een link menu en een tekst pagina met verschillende teksten die worden geselecteerd om naar index toe te gaan, ik heb begrepen dat ik zal moeten werken met $_GET
dus bijvoorbeeld (moet ik van "?pag=andere_pagina" andere_pagina veranderen in een hele url waar de tekst staat?)
<a href='www.mijnsite.nl/?pag=andere_pagina'> andere pagina </a></div>
en ik zal moeten werken met een if statement heb ik volgens mij gelezen, maar omdat ik nu zoveel heb gelezen zie ik letterlijk het bos niet meer door de bomen.
 
PHP hulp

PHP hulp

21/11/2024 13:20:22
 
- Ariën  -
Beheerder

- Ariën -

13/06/2011 17:30:45
Quote Anchor link
Het kan nog mooier met een switch

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
<?php
if(isset($_GET['pag'])) {
    switch ($_GET['pag']) {
    case
"contact":
        include "contact.php";
        break;
    case
"info":
        include "info.php";
        break;
    case
"nog_iets":
       include "nog_iets.php";
        break;
    }

}
else {

// je pagina die je normaal ziet op index.php
include "home.php";
}

?>
 
Obelix Idefix

Obelix Idefix

13/06/2011 17:32:27
Quote Anchor link
Je zorgt er voor dat de url iets is als www.jouwdomein.nl/index.php?pagina=home of www.jouwdomein.nl/index.php?pagina=contact

Via een switch (obv $_GET) bepaal je welke gegevens je gaat ophalen vanuit de database.

edit: Aar was net iets sneller.
Gewijzigd op 13/06/2011 17:33:03 door Obelix Idefix
 
Jarek Danowski

Jarek Danowski

13/06/2011 17:46:27
Quote Anchor link
Bedankt voor 2 hele snelle reacties, maar omdat ik net bezig ben met php wil ik eigenlijk niet echt voorgekouwde php codes. Ik zou graag uitleg hebben over wat ik moet doen en dat dan zelf doen, zo leer ik het beter. Maar om de moeite van de eerste 2 post niet te laten verspillen heb ik toch wat uitgeprobeerd, maar met weinig suc6.
wat ik heb gedaan is de volgende de "case" heb ik de naam gegeven van het stukje tekst (bv <div id="naam1">tekst</div> wat in tekst.php staat. De url wat ik al genoemd heb ik www.mijnsite.nl?pag=tekst. En als laatste heb ik in de php code van Aar include veranderd (2 stuks) in tekst.php
Gewijzigd op 13/06/2011 18:18:30 door Jarek Danowski
 
Erik van de Locht

Erik van de Locht

13/06/2011 18:49:02
Quote Anchor link
Als je een link hebt kun je die bijvoorbeeld laten linken naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<a href="index.php?pag=contact">Contact</a>


Dan kom je op de pagina 'index.php' terecht en heb je in je superglobal $_GET de waarde 'pag'. Aan de hand van die waarde kun je een IF statement of een switch gebruiken om de juiste pagina te includen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if ($waarde == 'iets') {
  include 'iets';
}
?>


Voordat je een pagina include, denk na waar je op wil controleren. Je wil niet dat kwaadwilligen pagina's in je website gaan includen die je niet wil. Daarom kun je bijvoorbeeld de functie file_exists() gebruiken om te kijken of het bestand bestaat. Ik doe er meestal ook nog de functie stripslashes() bij, dan kunnen gebruikers geen files uit andere directories includen omdat de slashes er uit gehaald worden.
 
Jarek Danowski

Jarek Danowski

13/06/2011 19:29:35
Quote Anchor link
dit is mijn index (stukje)

<div class='menu'>
<a href='http://mijnsite.nl/test.php?pag=tekst'> andere pagina </a></div>
<div class='content'>
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
<?php
if(isset($_GET['pag'])) {
    switch ($_GET['pag']) {
    case
"tekst1":
        include "tekst.php";
        break;
    case
"tekst":
        include "tekst.php";
        break;
    }
}
else {
// je pagina die je normaal ziet op index.php
include "home.php"; //<=die heb ik voor het gemak even weggelaten bij mij
}
?>

</div>
</div>

en dit is mijn tekst.php (heel simpel genomen)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
<div id="tekst"> wat een mooi weertje</div>
<div id="tekst1"> het regent veel te hard</div>
</body>
</html>


Maar als ik dat zo heb staan dan als ik op de link druk heb ik allebei de teksten ... wat doe ik toch fout ?
 
- SanThe -

- SanThe -

13/06/2011 19:32:30
Quote Anchor link
Include() haalt een bestand op en niet een losse regel. Zie php.net eens voor meer info.
 
- Ariën  -
Beheerder

- Ariën -

13/06/2011 19:33:29
Quote Anchor link
include doet niets anders dan bijvoegen op dezelfde pagina.
Zo is het dus ook logisch dat hele HTML-pagina opbouw's onnodig zijn.
 
Jarek Danowski

Jarek Danowski

13/06/2011 19:45:42
Quote Anchor link
ik denk dat ik mijn excusses moet aanbieden want ik heb het niet goed uitgelegd,
ik wil in mijn index pagina een php code. In de tekst pagina wil ik meerder teksten hebben waarvan maar 1 tekst word laten zien. en als ik op een link druk dan moet een andere tekst worden laten zien van dezelfde tekst pagina. (hopelijk ben ik duidelijk en niet weer mensen onnodig mij laat helpen)

even een voorbeeld (als ik goed kan uitleggen)
je start de pagina op, er staat dan al een tekst(1) uit tekstpagina
je drukt op een link, de pagina veranderd niet alleen de tekst(1) word tekst(2)
de tekst(2) word uit dezelfde "tekstpagina" gehaald als tekst(1)

of is het niet mogelijk zoiets?
Gewijzigd op 13/06/2011 19:46:41 door Jarek Danowski
 
- SanThe -

- SanThe -

13/06/2011 19:48:33
Quote Anchor link
Dan zal je de switch() boven de teksten moeten zetten en zo de juiste eruit halen.
 
Jarek Danowski

Jarek Danowski

13/06/2011 20:11:15
Quote Anchor link
dus mijn index kan zo blijven staan, toch?
en mijn tekst pagina moet ik de teksten
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
switch ($_GET['pag'])
case =
"tekst"
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
switch ($_GET['pag'])
case =
"tekst1"
?>


maar ik merk al dat ik het fout heb... en ik zie het maar niet :S
voordat iemand me hele uitleg gaat geven wat ik fout heb wilt iemand mij een goede tutorial sturen over de switch? misschien leer ik het dan zelf ( en als ik ondersteuning nodig heb kom ik terug (na flink wat uitproberen))
 
- Ariën  -
Beheerder

- Ariën -

13/06/2011 20:14:45
Quote Anchor link
Kijk eens op deze pagin/ Daar staat wel wat informatie over hoe switch() werkt.
 
- SanThe -

- SanThe -

13/06/2011 20:17:36
Quote Anchor link
Klik eens op de link in je script. Daar is de uitleg te vinden.
 
Peter dhc

peter dhc

13/06/2011 21:46:16
Quote Anchor link
Maar door al deze includes gebruik je toch evenveel, of zelfs meer pagina's? Of zie ik dat nou verkeerd.
 
Jarek Danowski

Jarek Danowski

13/06/2011 22:19:00
Quote Anchor link
Nee sorry mensen, ik snap het niet.
kan niemand mij heel simpel de 2 php kunnen geven wat ik moet hebben en uitleggen wat die daar doet. De bedoeling is om dalijk juist heel weinig pagina's te hebben. Dus waaraan ik dacht ( weet niet of het mogelijk is) is dus steeds een link van index.php naar tekstpagina.php daaruit een bepaalde tekst selecteren en op index.php laten zien in BV een iframe. Ik werk trouwen graag met tabellen dus ik heb in de juiste tabel een iframe klaarstaan met een naam om de teksten daar gelezen te krijgen.

Ik moet dus kunnen invullen=
-de naam van de tekst
-tekstpagine.php
-waar hij moet worden laten zien (BV target="iframe")

en dat allemaal op index.php de link maken lukt me wel met een target dat zal bv zijn

<a href="mijnsite.nl/tekstpagina.php" target="iframe">linknaam</a>

maar ik vraag me nog steeds af hoe ik de gedeelte tekst uit tekstpagina.php kan halen en dat die dan laat zien in de iframe
 
- Ariën  -
Beheerder

- Ariën -

13/06/2011 22:20:16
Quote Anchor link
iframes en includen zijn beiden totaal wat verschillends.
 
Jarek Danowski

Jarek Danowski

13/06/2011 22:24:50
Quote Anchor link
Maar snap je wat ik bedoel, het hoeft niet perse een iframe te zijn die is zo weer verwijderd als ik wil. Ik snap de include verhaal jammer genoeg niet ik weet niet wat ik waar moet invullen. Ik weet niet eens als ik met geluk toch uiteindelijk het goeie heb gedaan wat ik precies heb gedaan...
 
- Ariën  -
Beheerder

- Ariën -

13/06/2011 22:33:18
Quote Anchor link
Op de plek daar waar de includes staan, daar worden de pagina's geincludeerd.
 
- SanThe -

- SanThe -

13/06/2011 22:45:32
Quote Anchor link
Voorbeeld: Index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$a
= 1;
$b = 2;
echo 'blabla';
include('pagina.php');
echo 'bliep';
?>


In pagina.php staat dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if($a == $b)
{

    echo 'yesssss';
}

else
{
    echo 'noooo';
}

?>


Dan zal pagina.php in index.php worden opgenomen op de plaats van include() en zal dit als resultaat hebben:
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
<?php
$a
= 1;
$b = 2;
echo 'blabla';
if($a == $b)
{

    echo 'yesssss';
}

else
{
    echo 'noooo';
}

echo 'bliep';
?>

Dan zal php het parsen en een html output geven.
En aangezien er geen <br/> in staat is dit de output:
blablanoooobliep
 
Jarek Danowski

Jarek Danowski

14/06/2011 09:26:22
Quote Anchor link
Het is me gelukt me de codes van -SanThe-, maar uiteraard het is nog niet wat ik wou ik snap dat include de pagina laat zien. Ik hoef er dan geen opmaak erin te zetten ( in pagina.php). Als het mogelijk zou kunnen zijn wil ik via verschillende links verschillende teksten ophalen uit dezelfde pagina.php

Nu dacht ik met switch iets te proberen maar als ik het doe, krijg ik dat regel 13 fout is en dit heel simpel genomen de code die ik dan gebruik

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
switch ($_GET['pag']) { //dit is regel 13
case 'tekst1':
include 'pagina.php';
}

?>


en dit is de foutmelding te zijn :
Notice: Undefined index: .... on line 13

wat doe ik toch fout ? oja de link die boven de php code staat is als volgt
<a href="mijnsite.nl/?pag=pagina">linknaam</a>
 
The Force

The Force

14/06/2011 09:42:11
Quote Anchor link
Zet ten eerste bij elke case aan het eind (onder de include) "break;". De foutmelding geeft waarschijnlijk aan dat $_GET['pag'] niet bestaat. Ze eens op regel 12 de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_GET['pag']) {
    echo "<p>Variabele bestaat en heeft de waarde '" . $_GET['pag'] . "'.</p>";
}
else {
    echo "<p>Variabele bestaat niet.</p>";
}


//Geef de array inhoud weer.
print_r($_GET);
?>

Het resultaat van print_r is het best te bekijken in de page source.
Gewijzigd op 14/06/2011 09:42:33 door The Force
 

Pagina: 1 2 3 volgende »



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.