WinFuture-Forum.de: Include Von Php Dateien - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Include Von Php Dateien Wie das Verzeichnis wechseln?!


#1 Mitglied ist offline   M-O-D 

  • Gruppe: aktive Mitglieder
  • Beiträge: 62
  • Beigetreten: 15. April 04
  • Reputation: 0
  • Wohnort:Nettetal

geschrieben 17. Juli 2006 - 02:07

Hallo!
Habe ein Problem beim include von Header und Footer auf meiner Homepage. Per include werden Header und Footer in der index.php (liegt im Hauptverzeichnis) aufgerufen und auch richtig dargestellt. Danach habe ich einen Unterordner angelegt, in dem ich die einzelnen Contentseiten ablegen möchte. Header und Footer sollen dann von den Contentseiten jeweils aufgerufen werden. Habe ein bisschen gegoogelt und bin auf DIESE Seite hier gestoßen. Unter Punkt 6 wird erklärt wie der include aus anderen Verzeichnissen bewerkstelligt werden kann. Leider klappen sämtliche Varianten bei mir nicht.

Hier mal kurz eine Übersicht meiner Verzeichnisstrukur:

www.meinepage.xy
(images)
->1000kleinebildchen.gif
(sites)
->contact.php
index.php
header.php
footer.php

Lange Rede kurzer Sinn... Ich möchte im Untervezeichnis sites Header und Footer aus dem Root Verzeichnis verwenden. Eigentlich müsste das doch dann per
<?php include ("../header.php"); ?>
funktionieren oder?! Es läuft aber nicht. Header und Footer werden nicht angezeigt. Vielleicht kann mir jemand von euch helfen?!

Danke im Voraus!

Dieser Beitrag wurde von M-O-D bearbeitet: 17. Juli 2006 - 02:37

0

Anzeige



#2 Mitglied ist offline   valeron 

  • Gruppe: aktive Mitglieder
  • Beiträge: 581
  • Beigetreten: 13. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Interessen:Computer

geschrieben 17. Juli 2006 - 06:39

machs mal ohne klammern;
include "header.php";

0

#3 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 17. Juli 2006 - 09:49

das kommt auf die struktur an. wenn du immer die index.php anzeigst und in diese index.php den content aus unterverzeichnissen auch nur includierst, dann bleibst du ja im hauptverzeichnis und brauchst das ../ nicht für header und footer.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#4 Mitglied ist offline   M-O-D 

  • Gruppe: aktive Mitglieder
  • Beiträge: 62
  • Beigetreten: 15. April 04
  • Reputation: 0
  • Wohnort:Nettetal

geschrieben 17. Juli 2006 - 11:57

Hi!

Erstmal Danke für eure Antworten!

@valeron: Also ohne Klammern funktionierts auch nicht.

@Gitarremann: Es soll nicht immer die index.php aufgerufen werden, sondern auch die Seiten aus dem Verzeichnis sites. Diese werden also nicht per include in der index.php aufgerufen.

Ich verzweifle daran... Wenn ich header.php und footer.php in den Ordner sites kopiere und in beiden Dateien alle Links anpasse, dann funktionierts wahrscheinlich wieder... Aber das kann ja auch nicht der Sinn der Sache sein. :wink:
0

#5 Mitglied ist offline   pchero 

  • Gruppe: aktive Mitglieder
  • Beiträge: 264
  • Beigetreten: 10. Dezember 05
  • Reputation: 0

geschrieben 17. Juli 2006 - 12:07

Ähm wie wäre es mit
include 'footer.php';
und
include 'sites/contact.php';
und
include '../footer.php';
glaube ich ich versteht auch net so ganz was du willst :D :P :wink:

MFG

Dieser Beitrag wurde von pchero bearbeitet: 17. Juli 2006 - 12:08

0

#6 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 17. Juli 2006 - 12:10

Von deiner Verzeichnisstruktur ausgehend müsste /sites/contact.php etwa so aussehen:
<?php include("../header.php"); ?>

<h1>Kontakt</h1>

<p>blah</p>

<?php include("../footer.php"); ?>

Das ist also ganz richtig. "../" bezeichnet einen relativen Pfad, hier eine Ebene höher.

Du solltest testweise mal einen absoluten Pfad oder einen URL benutzen, um zu sehen, ob der Fehler nicht woanders zu suchen ist. Welche Fehlermeldung gibt es?
0

#7 Mitglied ist offline   NightTiger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 701
  • Beigetreten: 19. März 06
  • Reputation: 0
  • Wohnort:Bern
  • Interessen:Webdesign -&gt; (X)HTML, CSS, ein bisschen PHP und ein bisschen JavaScript ;))

geschrieben 17. Juli 2006 - 12:14

Beitrag anzeigenZitat (axx: 17.07.2006, 13:10)

Du solltest testweise mal einen absoluten Pfad oder einen URL benutzen, um zu sehen, ob der Fehler nicht woanders zu suchen ist. Welche Fehlermeldung gibt es?


So wie ich das verstanden habe, erscheint keine Fehlermeldung. Nur wird der Header und der Footer nicht angezeigt.. :wink:
0

#8 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 17. Juli 2006 - 12:19

Beitrag anzeigenZitat (NightTiger: 17.07.2006, 13:14)

So wie ich das verstanden habe, erscheint keine Fehlermeldung. Nur wird der Header und der Footer nicht angezeigt.. :wink:

Wenn eine Datei eingebunden werden soll, diese aber nicht gefunden wird, gibt PHP eine Fehlermeldung aus. Jedenfalls, wenn man error_reporting nicht gerade abgeschaltet hat.

Dieser Beitrag wurde von axx bearbeitet: 17. Juli 2006 - 12:19

0

#9 Mitglied ist offline   M-O-D 

  • Gruppe: aktive Mitglieder
  • Beiträge: 62
  • Beigetreten: 15. April 04
  • Reputation: 0
  • Wohnort:Nettetal

geschrieben 17. Juli 2006 - 12:44

Hallo!

@pchero: Ich möchte einfach nur, dass die in sites abgelegten Seiten, den Header und Footer aus dem Verzeichnis darüber aufrufen. An den einzelnen Anführungszeichen liegt es auf jeden Fall nicht. Trotzdem Danke!

@axx: Also, Fehlermeldungen werden keine angezeigt. Deinen Tipp mit der kompletten URL habe ich auch beherzigt und siehe da: Header und Footer werden trotzdem nicht angezeigt. Also scheint der Fehler vielleicht doch wo anders zu liegen?! Dann frag ich mich aber warum es aus dem darüberliegenden Verzeichnis funktioniert... Die Index.php wird ja schließlich mit Header und Footer angezeigt.
0

#10 Mitglied ist offline   pchero 

  • Gruppe: aktive Mitglieder
  • Beiträge: 264
  • Beigetreten: 10. Dezember 05
  • Reputation: 0

geschrieben 17. Juli 2006 - 12:45

ähm wie wäre es mal wenn du deine ganzen quelltext heir mal zeigst :wink: vill hilft das ja mal weiter

MFG
0

#11 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 17. Juli 2006 - 12:52

@M-O-D: ist mir auch rätselhaft. Füge mal
error_reporting(E_ALL);
oder
ini_set ('error_reporting', E_ALL);
ein, um eine Fehlermeldung zu erhalten.

Der ablolute Pfad wäre:
<?php include("/header.php"); ?>
der URL:
<?php include("http://domain.tld/header.php"); ?>

0

#12 Mitglied ist offline   M-O-D 

  • Gruppe: aktive Mitglieder
  • Beiträge: 62
  • Beigetreten: 15. April 04
  • Reputation: 0
  • Wohnort:Nettetal

geschrieben 17. Juli 2006 - 13:28

Ich bekomme nach dem Einfügen keine Fehlermeldung. Ich erhalte beim Header nur den Platzhalter mit dem roten Kreuz für Grafiken. Sage ich dem Explorer dann, dass er die Grafik alleine anzeigen soll, dann erhalte ich eine Fehlermeldung:Not Found The requested URL /php/sites/images/logos/logoSites.jpg was not found on this server.

Ist ja auch klar, da es das Verzeichnis sites/images/logos nicht gibt. Stattdessen müsste er in php/images/logos/ suchen. Er springt als nicht ein Verzeichnis höher... Hier mal ein bisschen Code aus den einzelnen Dateien:

header.php (Links innerhalb der Map nicht angepasst):
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>graubrot.net - inside</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Tahoma;
	font-size: 12px;
	color: #666666;
}
body {
	background-color: #000000;
}
-->
</style>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>


<body>
<div align="center">
  <table width="760" border="0" cellpadding="0" cellspacing="0" background="images/background.jpg">
	<tr>
	  <td><img src="images/logos/logoSites.jpg" width="760" height="200" border="0" usemap="#Map" /></td>
	</tr>
  </table>
  
<map name="Map" id="Map"><area shape="rect" coords="25,143,126,188" href="index.html" />
<area shape="rect" coords="156,144,229,187" href="sites/files.html" />
<area shape="rect" coords="253,146,327,188" href="pics/fig/pics.html" />
<area shape="rect" coords="352,145,436,188" href="sites/links.html" />
<area shape="rect" coords="461,144,589,188" href="sites/contact.html" />
</map>

</body>
</html>


footer.php:
<html>
<style type="text/css">
<!--
body,td,th {
	font-family: Tahoma;
	font-size: 12px;
	color: #666666;
}
body {
	background-color: #000000;
}
-->
</style>
<body>
<table>
	<img src="images/footer.jpg" width="760" height="63" />
	
</table>
</body>
</html>


contact.php aus verzeichnis sites:
<?php include "../header.php"; ?>

<html>
<head>
<style type="text/css">
<!--
body,td,th {
	font-family: Tahoma;
	font-size: 12px;
	color: #666666;
}
body {
	background-color: #000000;
}
a:link {
	color: #999999;
}
a:visited {
	color: #000000;
}
a:hover {
	color: #0000FF;
}
-->
</style>

<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
	if (val) { nm=val.name; if ((val=val.value)!="") {
	  if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
	  } else if (test!='R') { num = parseFloat(val);
		if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
		if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
		  min=test.substring(8,p); max=test.substring(p+1);
		  if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
	} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>

</head>

<body>

<div align="center">
  <table width="760" border="0" cellpadding="0" cellspacing="0" background="../images/background.jpg">
	  <tr>
	  <td><table width="760" border="0" cellspacing="0" cellpadding="0">
		<tr>
		  <td width="20">&nbsp;</td>
		  <td width="630">&nbsp;</td>
		  <td width="110">&nbsp;</td>
		</tr>
		<tr>
		  <td>&nbsp;</td>
		  <td valign="top">
			<form action="mailer.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm('name:','','R','email:','','RisEmail');return document.MM_returnValue">
			<table width="630" border="0" cellspacing="0" cellpadding="5">
			  <tr>
				<td colspan="2"><div align="left">Fragen, W&uuml;nsche oder sonstige Anliegen? Dann schreibt mir einfach... </div></td>
				</tr>
			  <tr>
				<td colspan="2">&nbsp;</td>
			  </tr>
			  <tr>
				<td width="82"><div align="left">Name:</div></td>
				<td width="548"><label>
				  
					  <div align="left">
						<input name="name" type="text" id="name:" size="50" maxlength="100" />
					  </div>
				</label></td>
			  </tr>
			  <tr>
				<td><div align="left">Emailadresse:</div></td>
				<td><label>
				  
					  <div align="left">
						<input name="email" type="text" id="email:" size="50" maxlength="100" />
					  </div>
				</label></td>
			  </tr>
			  <tr>
				<td valign="top"><div align="left">Text:</div></td>
				<td><label>
				  
						  <div align="left">
								  <textarea name="text" cols="50" rows="10"></textarea>
						  </div>
				</label></td>
			  </tr>
			  <tr>
				<td><div align="left"></div></td>
				<td><div align="left"></div></td>
			  </tr>
			  <tr>
				<td><div align="left"></div></td>
				<td><label>
				  
					  <div align="left">
						<input name="senden" type="submit" id="senden" value="senden" />
					  </div>
				</label></td>
			  </tr>
			</table>
			  </form>		  <p>&nbsp;</p>			</td>
		  <td><div align="center"><img src="../images/contact.jpg" width="80" height="200" /></div></td>
		</tr>
		<tr>
		  <td>&nbsp;</td>
		  <td>&nbsp;</td>
		  <td><div align="center"><a href="impressum.html">Impressum</a></div></td>
		</tr>
	  </table></td>
	</tr>
	</table>
</div>
</body>
</html>

<?php include "../footer.php"; ?>


Vielleicht ist es auch wieder nur ein blöder Anfängerfehler, der mir einfach nur nicht auffällt.
0

#13 Mitglied ist offline   mcshadow 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 29. August 03
  • Reputation: 0

geschrieben 17. Juli 2006 - 13:29

@M-O-D: versuche mal eine von folgenden Varianten:

1. Versuch: in der header.php eine Zeile
echo "Test";
einfügen. Wird diese dann angezeigt arbeitet der include - Befehl richtig (da ja keine Fehlermeldungen erscheinen)

2. Versuch: ersetze den Befehl
include("header.php");
durch
require("header.php");

beide Befehle arbeiten identisch, reagieren aber unterschiedlich auf Fehler. require bricht bei Fehlern das komplette Script ab. Sollte deine contact.php also nicht ausgeführt werden ist das ein eindeutiges Zeiten dafür das der Pfad zur header.php nicht stimmt.

3. Versuch: überprüfe noch mal deine contact.php. Ich vermute das du PHP und HTML Code miteinander verwendest, vielleicht hast du einfach nur irgendwo vergessen einen Tag zu öffnen oder zu schliessen (also: <?php oder ?> zuviel/zuwenig)


ok, du warst wohl eine Minute schneller, ich schau mir das mal an...

Dieser Beitrag wurde von mcshadow bearbeitet: 17. Juli 2006 - 13:32

0

#14 Mitglied ist offline   M-O-D 

  • Gruppe: aktive Mitglieder
  • Beiträge: 62
  • Beigetreten: 15. April 04
  • Reputation: 0
  • Wohnort:Nettetal

geschrieben 17. Juli 2006 - 13:40

Also der echo Befehl funktioniert in der contact.php. Wird also Test angezeigt. Habe auch nochmal nachgeschaut, ob php code und html code eindeutig getrennt ist. auf den ersten blick scheint das so zu sein.

Edit: So, wenn ich den echo Befehl in die header.php einfüge, wird Test auch in der Contact.php ausgegeben. Er scheint Header und Footer also richtig aufzurufen, aber zeigt keine Grafiken an, da er diese in einem anderen Verzeichnis sucht (obwohl die Pfade denke ich richtig in header und footer eingetragen sind).

Dieser Beitrag wurde von M-O-D bearbeitet: 17. Juli 2006 - 13:46

0

#15 Mitglied ist offline   flo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 7.955
  • Beigetreten: 14. November 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 17. Juli 2006 - 13:42

Nun Poste doch endlich den PHP Quellcode , sonnst wird das mit dem helfen nix.

Dieser Beitrag wurde von Flo bearbeitet: 17. Juli 2006 - 13:42

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0