in div linken

Status
Niet open voor verdere reacties.

whitetigerck

Gebruiker
Lid geworden
8 aug 2008
Berichten
196
Ik weet dat je niet naar een div kan linken, maar is er een mogelijkheid om toch een link te maken dmv php telkens een pagina te genereren met telkens dezelfde inhoud(header, footer, navigatiebar) en de nieuwe pagina? Ik heb helaas heel weinig kennis van php (ik kan alleen includen:p) om dat te realiseren. Kunnen jullie dat doen? of is er een betere manier? (geen iframe aub).

Alvast heel erg bedankt:thumb:
 
Zorgen dat je met een $_GET-variabele werkt.

Wat je dan kunt doen is een array opbouwen met de gewenste pagina's
Links de naam van de URL, rechts de uiteindelijke pagina.

PHP:
<?php
$pages = array(
"pagina1" => "foto.php",
"pagina2" => "bestand.php"
);
?>
Vervolgens zorgen dat je links er zo uit zien
HTML:
<a href="?page=pagina1">Foto's</a>

Dat is het moeilijke gedeelte, wat je nu alleen nog nodig hebt is een index.php waarin je je layout maakt.

Uiteindelijk zal je index.php er zo uit kunnen zien
PHP:
<?php
$pages = array(
"pagina1" => "foto.php",
"pagina2" => "bestand.php"
);
?>
<html>
<head>
  <title>blablablabla</title>
</head>
<body>
<div id="header">
  <div id="headImg">&nbsp;</div>
</div>
<div id="menu">
  <ul>
    <li><a href="?page=pagina1">Foto Album</a></li>
    <li><a href="?page=pagina2">Nog iets</a></li>
  </ul>
</div>
<div id="content">
  <?php
  if(isset($_GET['page']) && array_key_exists($_GET['page'], $pages)) {
    include($pages[$_GET['page']]);
  } else {
    include("home.php");
  }
  ?>
</div>
<div id="footer">
  Copyright Helpmij.nl
</div>
</body>
</html>

Wanneer je menu-items uit 1 woord bestaan zou je het menu ook op basis van de array kunnen laten genereren maar dat lijkt mij voorlopig overbodig.
 
Top het werkt:thumb:

alleen heb ik 1 probleem met het includen, als ik een extern adres wil includen of een file dat een map hoger zit dan krijg ik een foutmelding, is dat op te lossen?
 
Dit werkt niet?
PHP:
"extern" => "http://www.helpmij.nl",
"hoger" => "/map/bestand.php"
Als het nog niet werkt graag even je broncode plaatsen :)
 
Voor zover ik weet kan je geen externe adressen includen? Bij mij werkt dat ook niet.
Ik vraag me eigenlijk ook af waarom je dat zou willen..
 
Voor een map hoger is pagina 6 en voor een andere site is pagina 7
Dit is mijn site, dan kan je het met eigen ogen zien ;)
PHP:
<?php ob_start();
$pages = array(
"pagina1" => "algemene informatie.htm",
"pagina2" => "bestuur.htm",
"pagina3" => "center.htm",
"pagina4" => "kalender 0809.htm",
"pagina5" => "hwp jeugdinfo.htm",
"pagina6" => "schaakgrens/schaakgrens08 start.htm",
"pagina7" => "http://www.zeeuwseschaakbond.nl/page.php?143",
"pagina8" => "",
"pagina9" => "",
"pagina10" => "",
"pagina11" => "HWPteams.php",
"pagina12" => "toernooien.htm",
"pagina13" => "HWP partij.htm",
"pagina14" => "",
"pagina15" => "sitelinks.htm",
"pagina16" => "",
"pagina17" => "gastenboek.php",
"pagina18" => "www.hwpsasvangent.nl/forum",
"contact" => "contact.php",
"contact2" => "contact2.php",

);
?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><LINK HREF="HWP2opmaak.css" REL="stylesheet" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>HWP Testpage</title>
</head>

<body background="background.jpg">



<div id="container">

		<div id="top">
    			<div id="afb"><img src="HWPtranslogo2.gif"  style="border:1pt dashed red" width="83" height="145" />
        		</div>
			<center>
				<h1> Het witte Paard</h1>
				<h2> Sas van Gent</h2>
			</center>
		</div>
	<div id="leftnav">
	<ul>
		<li><a href="?page=pagina1">Algemene informatie</a></li>
		<li><a href="?page=pagina2">Bestuur</a></li>
		<li><a href="?page=pagina3">Nieuws</a></li>
		<li><a href="?page=pagina4">Kalender</a></li>
		<li><a href="?page=pagina5">HWP jeugdinfo</a></li>
		<li><a href="?page=pagina6">Schaakgrenstoernooi</a></li>
		<li><a href="?page=pagina7">PKJ</a></li>
		<li><a href="?page=pagina8">PKS</a></li>
		<li><a href="?page=pagina9">Verslag sturen</a></li>
		<li><a href="?page=pagina10">HWP-Landau competitie</a></li>
		<li><a href="?page=pagina11">HWP Teams</a></li>
		<li><a href="?page=pagina12">Toernooien</a></li>
		<li><a href="?page=pagina13">Partijen</a></li>
		<li><a href="?page=pagina14">Foto's</a></li>
		<li><a href="?page=pagina15">Links</a></li>
		<li><a href="?page=pagina16">Archief</a></li>
		<li><a href="?page=pagina17">Gastenboek</a></li>
		<li><a href="/forum" target="_blank">Forum</a></li>
	</ul>
				<p></p>Laatste update:<br>
					<?php
  						putenv("TZ=Europe/Amsterdam");
  						echo date( "d/m/Y H:i", getlastmod() );
					?>  
	</div>
	<div id="content">
 <?php
  if(isset($_GET['page']) && array_key_exists($_GET['page'], $pages)) {
    include($pages[$_GET['page']]);
  } else {
    include("center.htm");
  }
  ?>
	</div>
			<div id="footer">

			©Webmaster: 
				<a href="?page=contact">Steven Rademakers</a><br>

			Tips en suggesties: 
				<a href="?page=contact2">Steven Rademakers</a><br>
			Contact: 
				<a href="?page=contact">Steven Rademakers</a><br>
			</div>
</div>
 
</body>
</html>

Ik heb zelfs een hele simpele code geprobeerd:
PHP:
<?php include("http://www.zeeuwseschaakbond.nl/page.php?143"); ?>

En dat werkt beide niet

Als ik die ene regel doe dan krijg ik deze foutmelding:
Code:
Warning: include() [function.include]: URL file-access is disabled in the server configuration in /mnt/web5/20/32/51997132/htdocs/Testarea/PKJ.php on line 1

Warning: include(http://www.zeeuwseschaakbond.nl/page.php?143) [function.include]: failed to open stream: no suitable wrapper could be found in /mnt/web5/20/32/51997132/htdocs/Testarea/PKJ.php on line 1

Warning: include() [function.include]: Failed opening 'http://www.zeeuwseschaakbond.nl/page.php?143' for inclusion (include_path='.:/opt/RZphp5/includes') in /mnt/web5/20/32/51997132/htdocs/Testarea/PKJ.php on line 1

of ik het met html, body en head tags doet maakt niks uit, dan schuift alleen de regelnummer op.
 
In windows versies van PHP voor 4.3.0 is het in ieder geval niet mogelijk om met include remote-files te includen:

Warning

Windows versions of PHP prior to PHP 4.3.0 do not support access of remote files via this function, even if allow_url_fopen is enabled.

Bron: php.net
 
Maak anders een wrapper

Dus een eigen bestand maken waarin je de broncode van die pagina opvraagt. (Kan d.m.v. file())
Vervolgens die pagina aanroepen en hij zal het doen.
 
Mijn webhost ondersteund php5.0, dus daar ligt het niet aan

Met die wrapper breng ik geen css mee, dus dan zie je alleen de platte tekst van de webpagina. En kan het echt niet anders om van elke submap zo'n wrapper te maken?
 
Zolang een bestand op dezelfde site staat als je layout-bestand kun je ze gewoon oproepen. :(

Dus als het in een andere map staat moet dat geen probleem zijn.

Je zit alleen met externe bestanden. Daarvoor zou je een wrapper kunnen maken.
 
kan je niet de php setting voor externe-bestanden-includen aanzetten? Dat's allow_url_include


:thumb:
 
ik heb het opgelost door een wrapper met iframe te maken, want volgens velen is allow_url_include aan zetten heel gevaarlijk (ik weet er niks van dusja). Het is niet perfect, want ik moet telkens de height groot maken, want ik wil geen scrollbar, en noscroll invoeren is ook niet echt practisch.

Dat bestand een map hoger is ook gelukt, de mapnaam begon met een hoofdletter en die heb ik niet geschreven, van geen wonder dat ie niet werkt:eek:
 
Waarom niet gewoon een wrapper bestand maken met
PHP:
echo file("http://www.zeeuwseschaakbond.nl/page.php?143");

Volgens mij beter dan een iframe
 
als ik dat doe krijg ik alleen pagina met Array erop, dus dat werkt niet.

en als ik dit doe, dan krijg ik alleen de letters en niet de opmaak en dat is helemaal afgrijselijk:
PHP:
<?php
$homepage = file_get_contents('http://www.zeeuwseschaakbond.nl/page.php?143');
echo $homepage;
?>
 
Je hebt gelijk, ik gebruik wat vaker file() om er daarna dingen mee te doen.
file_get_contents() had ik moeten doorgeven.

De reden waarom hij alleen de tekst doet komt omdat ie geen stylesheet mee krijgt.
Je zou die ook op kunnen halen.

Wil je W3-valid blijven dan zul je wat dingen weg moeten halen aangezien je nu met een dubbele <html>, <head> en <body> komt te zitten.

Wellicht kun je er voor zorgen dat ie vanaf een bepaald punt pas gaat inladen zodat je alleen het essentiële gedeelte op je pagina krijgt :)
 
hoe zou ik die sylesheet dan mee kunnen laden? Ik ken de naam van het bestand niet, netzoals de pagina die ik probeer te linken.
Die werkt met hetzelfde principe als de phpcode die je me gaf, en daarmee kan je de pagina niet apart vinden, of je moet de naam kennen van die pagina, maar die weet ik niet:(
 
Volgens mij gaat het alleen om de gegevens in het middelste scherm nietwaar?

Ik zou kunnen kijken of ik een filtering kan toepassen zodat je alleen die "tabellen" krijgt.
 
PHP:
<?php 
$homepage = file('http://www.zeeuwseschaakbond.nl/page.php?143'); 

echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="nl" />';

echo $homepage[282];
?>
Werkt bij mij :)
 
wow, je bent geweldig:thumb:

echt super:shocked:

alleen 1 vraagje over die code, wat betekend die 282?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan