Vraag & Antwoord

Webprogrammeren & scripting

PHP include --> 1 include met een link veranderen

23 antwoorden
  • Goede middag webprogrammeurs, Ik heb net voor het eerst een website gemaakt met PHP dmv. includen van header, menu, intropagina, copyright. Maar heb een vraag: ik wil per link alleen de content wijzigen en de rest gewoon zo als het al is bij de index, met welke functie in PHP kan dat? Dit is mijn index.php code [code:1:ff9f9d341a]<html> <head> <title>Welkom op de website van computergebruik.tk | Alles over computergebruik!</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"/> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td valign="top" colspan="2" height="49"> <?php include ("header.htm");?> </td> </tr> </table><br><br> <table border="0" color="#000000" cellpadding="0" cellspacing="0" width="100%" height="100%"> <tr> <td valign="top" width="15%"> <?php include ("menu.htm"); ?> </td> <td valign="top" width="85%"> <?php include ("intropagina.htm"); ?> </td> </tr> <tr> <td valign="top" colspan="2" height="49"> <?php include ("onder.htm"); ?> </td> </tr> </table> </body> </html>[/code:1:ff9f9d341a]Dus alleen de include ("intropagina.htm") moet verandert worden. Nog een laatste vraag: Hoe link ik er dan heen, met mijn menubalk? Oke, dat was het, ik hoop dat iemand mij wil helpen, ik kon het niet vinden op internet! EDIT: ik zie op internet ook veel van die site dat er een id nummer of naam achter index.php staat bijv. index.php?naam=intro, hoe is dat dan wel mogelijk? / EDIT
  • Gebruik een variabele, bijvoorbeeld [b:48e2036396]$pagina[/b:48e2036396] die je met behulp van je $_GET['pagina'] uit de URL haalt. Dus bijvoorbeeld: bla.php?pagina=kees de waarde van $_GET['pagina'] is dan gelijk aan kees waarde $pagina zet je in in je include. Let hierbij goed op de beveiliging. Maak bij voorkeur een array aan van alle toegestane pagina's en controleer of je get variabele in die array voorkomt dit is dan iets als [code:1:48e2036396] $valide_paginas = array('foo','bar','foobar'); if (isset($_GET['pagina'] && in_array($_GET['pagina'],$valide_paginas)) { $include_pagina = htmlentities(addslashes($_GET['pagina'])); } else { $include_pagina = 'index'; } include ("http://website.tld/".$include_pagina .".php"); [/code:1:48e2036396] Zo voorkom je dat anderen hun eigen pagina kunnen includen op jouw site. ps. Ik weet niet zeker of het concenaten in de include goed is, maar deze code geeft alvast een idee hoe je het zou kunnen doen. Ook kan het zijn dat er voor htmlentities en addslashes betere phpfuncties bestaan. Wanneer gpc_magic_quotes op [b:48e2036396]on[/b:48e2036396] staan heb je dat net nodig, maar daarover is veel documentatie te vinden op de php manual
  • [quote:fa66328736]Let hierbij goed op de beveiliging. Maak bij voorkeur een array aan van alle toegestane pagina's en controleer of je get variabele in die array voorkomt [/quote:fa66328736]Wat bedoel je hiermee?
  • Ik heb daaronder een klein voorbeeldje geven incl array Die heb je nodig omdat je niet alles zonder meer geinclude wilt hebben. stel ik heb een website met een smerige hack...zeg maar: http://website.met/smerige.hack en ik doe dit bij jouw site zonder beveilingig www.brandsrus.bla.php?pagina=http://website.met/smerige.hack Dan include jij min pagina en dat wil je niet. Regel 1 van php..vertrouw nooit input van users. Bovendien kun je nu bij een foutief getypte pagina standaard je index.php tevoorschijn toveren. Dat is veel netter.
  • Ik snap er eerlijk gezegd nog niks van! :cry: Hoe moet ik het in mijn code plaatsen? Ik heb werkelijk geen idee! Ik snap wel een beetje hoe het werkt maar hoe moet ik het toepassen!
  • [quote:7475767fbe="brandsrus"] Ik snap wel een beetje hoe het werkt maar hoe moet ik het toepassen![/quote:7475767fbe] In je menu verwijs je naar de pagina index.php, met daarachter een variabele met de paginanaam die je wilt includen. Bijvoorbeeld: index.php?pagina=meerinfo.htm En zet dan de code van Japaveh in het stukje waar je de dynamische include wilt hebben.
  • Variable hoe moet ik die dan weer uit de URL halen? $pagina en GET pagina moet hoe? Dat snap ik niet! :oops:
  • NoFi, maar dit zijn toch echt _basic_ dingen van PHP. [quote:0cf3fd14f2] Get : de gegevens die worden verstuurd, worden toegevoegd aan de url. Je kent waarschijnlijk wel die lange url's met al die vraagtekens erin ? Get is de methode die standaard wordt gebruikt. Post : de gegevens worden eveneens verstuurd, maar worden niet toegevoegd aan de URL. [/quote:0cf3fd14f2] Probeer eens een cursus php door te lezen en dit soort dingen te leren. Bovendien heb ik in mijn post hierboven uitgelegd hoe het precies werkt. Zo op het eerste gezicht is [url=http://www.essetee.be/cursusphp.php]dit[/url] een goede cursus php. of google eens op cursus en php.
  • Tja.. ik snap er echt werkelijk geen enige ruk van! Ik zal wel verder zoeken, ik kom hier ook niet verder! :oops: :-?
  • Dan adviseer ik je om onze posts van hierboven nog eens rustig te te passen en eens een testcase te maken, alleen dan snap je wat er gebeurt en wat je moet doen om jouw voorbeeld werkend te krijgen. Het is echt niet moelijk en alle relevante code staat hier bijna letterlijk in dit topic. Maar maak eens een file [b:a10cb9661d]test.php[/b:a10cb9661d] en zet daar het volgende in [code:1:a10cb9661d] <?php echo $_GET['test']; ?> [/code:1:a10cb9661d] open de file eens op de volgende manieren http://host/test.php http://host/test.php?test=foobar en zie wat er gebeurt.
  • zucht... kijk hier eens naar: http://teacher.letzebuerg.biz/test.php Daar zie je nu staan: achter de url staat: doe nu eens dit: http://teacher.letzebuerg.biz/test.php?tekst=blaaat Zie je wat er nu staat? Hetgene wat er achter de url staat, kan je opvragen dmv: [code:1:e4a6299433]<?php echo "achter de url staat: ".$_GET['tekst'].""?> [/code:1:e4a6299433] Probeer maar eens. t.
  • Ik heb het inmiddels op gelost door op de dynamische include de volgende code te plaatsen: [code:1:25eb5757b2] <? switch(strtolower($_GET['pagina'])) { case "file1": $pagina="file1.php"; break; case "file2": $pagina="file2.php"; break; case "file3": $pagina="file3.php";break; default: $pagina="intropagina.htm";break; } include($pagina); ?>[/code:1:25eb5757b2]
  • [quote:b70b4d4ad2="teacher"]zucht... kijk hier eens naar: http://teacher.letzebuerg.biz/test.php Daar zie je nu staan: achter de url staat: doe nu eens dit: http://teacher.letzebuerg.biz/test.php?tekst=blaaat Zie je wat er nu staat? Hetgene wat er achter de url staat, kan je opvragen dmv: [code:1:b70b4d4ad2]<?php echo "achter de url staat: ".$_GET['tekst'].""?> [/code:1:b70b4d4ad2] Probeer maar eens. t.[/quote:b70b4d4ad2] Nu nog htmlentities maken teacher ;) http://teacher.letzebuerg.biz/test.php?tekst=%3Cbody%20bgcolor=green%3E @Brandsrus: beter goed overgenomen dan slecht bedacht of niet [url=http://www.scriptzine.nl/scripts/show/25/?PHPSESSID=7bd1f0ae8a08a7fc76bdb7ef40ab7d5a]klik![/url]
  • hihi... jep, ik heb hem expres zo kaal mogelijk gemaakt; dus je kan een hoop f*cken met deze pagina :D
  • he, das wel een goeie, moet ik ook s controleren op mn eigen paginas Maar back-on-topic: Brandsarus, je kan die cases allemaal in eentje samen voegen met [code:1:514d73d8af] $pagina = strtolower($_GET['pagina']); include($pagina); [/code:1:514d73d8af] Dit is echter heel onveilig zoals hierboven uitgelegd. Hierboven staan ook alle oplossingen daarvoor (-tegen) uitgelegd. Als je die goed (rustig!) doorleest moet t lukken. Succes!
  • Bedankt voor de response tot nu toe! ik heb een Forum en die wil ik includen in mijn pagina, maar hoe doe ik dat? Ik heb het volgende al, maar wat doe ik fout? [code:1:cc7429993e] -- Menu.htm -- <table> <tr> <td width="100%"><a href="index(beta).php?pagina=forum" class="menulink" class==&{ns4class};>Forum</a></td> </tr> </table> -- index.php -- <? switch(strtolower($_GET['pagina'])) { case "forum": $pagina="http://brandsrus.br.funpic.org/forum/";break; default: $pagina="intropagina.htm";break; } include($pagina); ?> [/code:1:cc7429993e] [quote:cc7429993e]@Brandsrus: beter goed overgenomen dan slecht bedacht of niet klik![/quote:cc7429993e] Dat dacht ik, ik werd niet verder geholpen dus zelf wat gezocht en toen vond ik deze! [quote:cc7429993e]Brandsrus, je kan die cases allemaal in eentje samen voegen met [code:1:cc7429993e] $pagina = strtolower($_GET['pagina']); include($pagina); [/code:1:cc7429993e] Dit is echter heel onveilig zoals hierboven uitgelegd. Hierboven staan ook alle oplossingen daarvoor (-tegen) uitgelegd. Als je die goed (rustig!) doorleest moet t lukken. Succes![/quote:cc7429993e] Volgens mij is de oplossing die ik zelf heb veel veiliger toch? Maar wie kan mij nog bij het bovenstaande ding helpen?
  • [quote:2b5a032ee1="brandsrus"] Dat dacht ik, ik werd niet verder geholpen [/quote:2b5a032ee1] SORRY? :o je werd niet verder geholpen?? Echt, ga je diep schamen. :roll:
  • [quote:15f254d7f9="teacher"][quote:15f254d7f9="brandsrus"] Dat dacht ik, ik werd niet verder geholpen [/quote:15f254d7f9] SORRY? :o je werd niet verder geholpen?? Echt, ga je diep schamen. :roll:[/quote:15f254d7f9]Niet ver genoeg iig, ik zei in mijn startpost dat ik maar een beginneling was en dan verwacht ik van de mensen hier dat ze me ook zo behandelen, en niet dat je me in het diepe gooit! Goed weer on-topic, heb nog een vraag over!
  • [code:1:066c79c8f5]<tr> <td width="100%"><a href="index(beta).php?pagina=forum" class="menulink" class==&{ns4class};>Forum</a></td> </tr> </table> -- index.php -- [/code:1:066c79c8f5] In je menu-link roep je [b:066c79c8f5]index(beta).php[/b:066c79c8f5] aan, terwijl je daaronder de broncode van een [b:066c79c8f5]index.php[/b:066c79c8f5] pagina weergeeft. Roep je wel de juiste pagina aan? [size=9:066c79c8f5]en nu maar hopen dat je dit wel als hulp ziet :roll: [/size:066c79c8f5]
  • [quote:145ed6a86c="meneer_ed"][code:1:145ed6a86c]<tr> <td width="100%"><a href="index(beta).php?pagina=forum" class="menulink" class==&{ns4class};>Forum</a></td> </tr> </table> -- index.php -- [/code:1:145ed6a86c] In je menu-link roep je [b:145ed6a86c]index(beta).php[/b:145ed6a86c] aan, terwijl je daaronder de broncode van een [b:145ed6a86c]index.php[/b:145ed6a86c] pagina weergeeft. Roep je wel de juiste pagina aan? [size=9:145ed6a86c]en nu maar hopen dat je dit wel als hulp ziet :roll: [/size:145ed6a86c][/quote:145ed6a86c] Ja, dit is hulp waar ik mee verder op weg wordt geholpen! Nee een onverkomelijke typefout van mijn kant! het met index(beta).php zijn en dat had ik ook!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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