PHP beginner

Status
Niet open voor verdere reacties.

ice-twirl

Gebruiker
Lid geworden
28 dec 2002
Berichten
93
Kijk, ik heb zo'n 2 jaar geleden wat leuke websites gehad enzo maar ja...ik heb allang niej meer gescript [en ook nooit echt gekunnen hoor]

Bij die sites had ik van een vriend een .php bestand gehad en dan hoefde ik alleen maar in hmtl wat te typen en dat in dezelfde map te zetten en dan was alles klaar...
Php include daar dus HTML.

http://blabla.nl/index.php?id=html

zoiets krijg je dan als adres..

In PHP heb je dan alles staan voor de layout enzo en de plaats van te teksten en links enzo.
En in het html bestand krijg je de "content" "inhoud" zeg maar van je pagina....

Kan iemand mij op weg helpen om dit weer te maken of kan iemand me een goeie tuturiol van php waar dit in staat geven?

alvast bedankt
 
Probeer eens een portal systeem zoals postnuke(www.postnuke.com)
Dit zorgt voor het hele php gebeuren zonder dat je er wat vanaf hoeft te weten. Vervolgens kan je er modules op zetten. Een daarvan is postwrap (moet je even zoeken op google) en dan kan je in het hoofdvenster de content in html laten zien.
 
dat index.php?p=pagina systeem wordt uitgevoerd dmv include()...

Ik geef even een heel simpel voorbeeldje met voorbeeld url index.php?pagina=home:

PHP:
<?
if(IsSet($_GET['pagina'])) // Bestaat de variabele [i]pagina[/i]?
{
include($_GET['pagina'].".html"); // Include de het html bestand met als naam de waarde van de var [i]pagina[/i], hier is dat dus home.html
}
?>
 
Geplaatst door chrisgeerdink
dat index.php?p=pagina systeem wordt uitgevoerd dmv include()...

Ik geef even een heel simpel voorbeeldje met voorbeeld url index.php?pagina=home:

PHP:
<?
if(IsSet($_GET['pagina'])) // Bestaat de variabele [i]pagina[/i]?
{
include($_GET['pagina'].".html"); // Include de het html bestand met als naam de waarde van de var [i]pagina[/i], hier is dat dus home.html
}
?>


Hey maar is dit dan niet dat het alleen maar de pagina:

pagina.html invoegt of geld dit script ook dat hij alle andere .html pagina's include??

en nog bednakt!
 
Alle html pagina's

?pagina=home --> home.html
?pagina=contact --> contact.html
?pagina=informatie --> informatie.html
etc.
 
Geplaatst door chrisgeerdink
dat index.php?p=pagina systeem wordt uitgevoerd dmv include()...

Ik geef even een heel simpel voorbeeldje met voorbeeld url index.php?pagina=home:

PHP:
<?
if(IsSet($_GET['pagina'])) // Bestaat de variabele [i]pagina[/i]?
{
include($_GET['pagina'].".html"); // Include de het html bestand met als naam de waarde van de var [i]pagina[/i], hier is dat dus home.html
}
?>

Ja das wel leuk maar je creëert wel een lek, dit is een veilige oplossing:

PHP:
<?php
if(isset($_GET['pagina']))
{
	if(file_exists($_GET['pagina'].'.html'))
	{
	include($_GET['pagina'].'.html');
	} else
		{
		echo '404 - pagina bestaat niet';
	}
} else
	{
	include('nieuws.html');
}
?>
 
Het was ook maar een heel simpel voorbeeldje om aan te geven hoe dat werkt met include...
 
ok blaataap bedankt

nou zal ik kijken of ik verder kom...

Als ik nog meer hulp nodig heb hoor jullie hetwel :P

echt bedankt
 
Laatst bewerkt:
nog een vraagje, sorry dak zoveel vraag maar ben niej zo'n script-genie :o

PHP:
<?php
if(isset($_GET['pagina']))
{
    if(file_exists($_GET['pagina'].'.html'))
    {
    include($_GET['pagina'].'.html');
    } else
        {
        echo '404 - pagina bestaat niet';
    }
} else
    {
    include('nieuws.html');
}
?>

Ik moet dus dit script gebruiken zeggen jullie om de html bestanden te kunnen includen bij me php...

nou ik heb het toegevoegd...alleen nou zit het zo...

Bij alle adressen:
http://members.lycos.nl/ssjproject/index.php?pagina="hierzetikiets.html"

krijg ik '404 - pagina bestaat niet' dus dat include hij wel....

alleen hij include dus geen content...moet ik nog iets aan de code veranderen of is er iets anders wa ik over het hoofd zie :confused:

bedankt
 
PHP:
<?php
if(isset($_GET['pagina']))
{
    if(file_exists($_GET['pagina'].'.php'))
    {
    include($_GET['pagina'].'.php');
    } else
        {
        echo '404 - pagina bestaat niet';
    }
} else
    {
    include('index.php');
}
?>

Nu heb ik nog een vraagje over deze code

waar moet ik deze code in plaatsen:confused:

als ik deze code in index.php plaats helemaal bovenaan

en ik gebruik als link mijndomeinnaam?pagina=artikelen

dan gaat het goed maar als ik dan op een link klik met als mijndomeinnaam?pagina=login

dan zie ik de login pagina boven in de index pagina verschijnen
dus zeg maar boven op elkaar gestapeld.

wat doe ik verkeerd
 
Je moet 'm helemaal niet gebruiken, in dat script is het lek namelijk net zo groot als in het andere script.


Zo'n soort script plaats je inderdaad op index.php, waar precies maakt niet zo heel veel uit. Gebruik iets als het volgende:

PHP:
<?php

$aPages = array('home',
				'artikelen',
				'contact');
				

if(isset($_GET['page']) && in_array($_GET['page'], $aPages)){

	if(file_exists($_GET['page'].'.html')){
	
		include_once $_GET['page'].'.html';
		
	}else{
	
		include_once '404.html';
		
	}
}else{

	include_once '400.html';
	
}

In die array staan alle mogelijke pagina's, dat 404.html kun je vervangen door iets anders, maar betekent dat er een pagina die niet bestaat wordt aangeroepen. Waar ik 400.html include wordt er een verkeerde request gedaan, omdat de variabele $_GET['page'] niet bestaat of een ongeldige waarde bevat.


EDIT:
Niet getest, misschien moet je 'm zelf nog even debuggen.
 
Jij bent echt geweldig
Ik ga ermee aan de slag :thumb:
resultaat zal ik hier posten
 
ik heb hem dus getest hij werkt super zonder foutmeldingen :thumb:

alleen 1 nadeel als ik een link maak met bijv: ?page=artikelen

dan plaatst hij die in dezelfde pagina als de index

hetzelfde gebeurt met ?page=login

hij stapelt ze boven op elkaar.

de code is nu zo omdat het allemaal php pagina's zijn

PHP:
<?php 

$aPages = array('home', 
                         'artikelen', 
                         'login'); 
                 

if(isset($_GET['page']) && in_array($_GET['page'], $aPages)){ 

    if(file_exists($_GET['page'].'.php')){ 
     
        include_once $_GET['page'].'.php'; 
         
    }else{ 
     
        include_once '404.html'; 
         
    } 
}else{ 

    include_once '400.html'; 
     
} ?>
 
Laatst bewerkt:
Dat komt omdat je waarschijnlijk een verkeerd beeld hebt van het concept. Normaal wordt deze manier van pagina's opbouwen als volgt gebruikt.

Index.php

PHP:
<html>

<head>

  <title>Bla</title>

</head>

<body>
  
  <?php

  // Mijn code.
  
  ?>

</body>

</html>


Pagina.php

HTML:
<form method="post" name="bla">

<input type="bla" />

</form>

En dat is het _enige_ in die pagina. De output wordt dan:


HTML:
<html>

<head>

  <title>Bla</title>

</head>

<body>
  
<form method="post" name="bla">

<input type="bla" />

</form>

</body>

</html>
 
Dat komt omdat je waarschijnlijk een verkeerd beeld hebt van het concept. Normaal wordt deze manier van pagina's opbouwen als volgt gebruikt.

Index.php

PHP:
<html>

<head>

  <title>Bla</title>

</head>

<body>
  
  <?php

  // Mijn code.
  
  ?>

</body>

</html>


Pagina.php

HTML:
<form method="post" name="bla">

<input type="bla" />

</form>

En dat is het _enige_ in die pagina. De output wordt dan:


HTML:
<html>

<head>

  <title>Bla</title>

</head>

<body>
  
<form method="post" name="bla">

<input type="bla" />

</form>

</body>

</html>

ik snap als ik de code ergends plaatst dat op een andere pagina de uitvoer word gegeven
maar nu zet ie alles binnen index.php

Als ik de link maak ?page=artikelen

zou ie alleen 1 en die pagina moeten weergeven maar hij zet ze boven elkaar
waar ik ook die code zet

moet ik niet iets neerzetten dat hij niet de index mee laad en of dat ie alleen de
pagina artikelen.php laat zien

ik kan daar nergends een begrijpelijke voor een leek uitleg over vinden

in ieder geval stel ik je hulp zeer op prijs dit is het laatste en dan is de website klaar.
 
Dat kun je op 2 manieren doen. De eerste is helemaal _niets_ op de index te zetten, behalve dat script. Dan wordt er niets boven elkaar gezet.

Een andere is deze:

PHP:
$aPages = array('home',  
                         'artikelen',  
                         'login');  
                  

if(isset($_GET['page']) && in_array($_GET['page'], $aPages)){  

    if(file_exists($_GET['page'].'.php')){  
      
        header('Location: '. $_GET['page'].'.php');  
          
    }else{  
      
        include_once '404.html';  
          
    }  
}else{  

    include_once '400.html';  
      
}

In dat geval mag er _helemaal geen_ output in index.php staan.
 
Dat kun je op 2 manieren doen. De eerste is helemaal _niets_ op de index te zetten, behalve dat script. Dan wordt er niets boven elkaar gezet.

Een andere is deze:

PHP:
$aPages = array('home',  
                         'artikelen',  
                         'login');  
                  

if(isset($_GET['page']) && in_array($_GET['page'], $aPages)){  

    if(file_exists($_GET['page'].'.php')){  
      
        header('Location: '. $_GET['page'].'.php');  
          
    }else{  
      
        include_once '404.html';  
          
    }  
}else{  

    include_once '400.html';  
      
}

In dat geval mag er _helemaal geen_ output in index.php staan.

Dus als ik je goed begrijp moet ik dus een index maken met alleen deze code erin en niets anders
en dan een andere pagina maken waar normaal alles in staat wat in de index hoort

:o ik voel me echt dom dat ik dit soort dingen vraag maar ik leer er een hoop van
 
Laten we het even anders doen. Post eens je huidige index.php en een willekeurige andere pagina.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan