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?!

#16 Mitglied ist offline   axx 

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

geschrieben 17. Juli 2006 - 13:43

header.php und footer.php werden zwar eingebunden, nicht aber die Grafiken. Ersetze:
<img src="images/footer.jpg" width="760" height="63" />
durch
<img src="../images/footer.jpg" width="760" height="63" />

Dieser Beitrag wurde von axx bearbeitet: 17. Juli 2006 - 13:46

0

Anzeige



#17 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:50

Welchen Code möchtest Du denn noch haben? Mehr Code habe ich im Moment nicht...
0

#18 Mitglied ist offline   M-O-D 

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

geschrieben 17. Juli 2006 - 14:01

@axx: Wenn ich den Pfad wie von Dir vorgeschlagen ändere funktioniert zwar endlich die contact.php einwandfrei, jedoch die index.php, die ja ein Verzeichnis drüber liegt nicht mehr. :wink: Vielleicht sollte ich mir einfach eine andere Struktur einfallen lassen, obwohl ich das eigentlich nicht möchte...
0

#19 Mitglied ist offline   mcshadow 

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

geschrieben 17. Juli 2006 - 14:18

@Flo: es gibt kein PHP-Code, nur drei HTML-Seiten.

@M-O-D: PHP und HTML sind zwei verschiedene Paare, nur weil die Dateien die Endung php haben, sind es noch lange keine. Zur Erklärung: eine Datei mit der Endung htm oder html wird Serverseitig nicht verarbeitet sondern zum Browser geleitet, der sich darum kümmern muss.
Du hast nun versucht drei verschiedene HTML-Seiten mittels PHP zu verbinden. Deshalb logischerweise die Endung php und der kurze Code-Block, also die include-Anweisung.
Das wird tatsächlich vom Server verarbeitet (genauer gesagt nur die php-Anweisungen), der Server versucht die Dateien einzubinden und schickt das ganze als HTML zum Browser.

Das Prinzip einer include oder require - Anweisung ist folgendes: header.php wird in contact.php eingebunden und gleichzeitig Bestandteil der contact.php. Das geht bei dir nur solange gut, wie beide Dateien im selben Verzeichnis liegen. Soll heissen, alle Anweisungen in header werden in dem Verzeichnis ausgeführt, wo die contact liegt.

[root]/header.php
[root]/footer.php
[root]/index.php
[root]/images/logos/logoSites.jpg
[root]/images/background.jpg
[root]/images/footer.jpg
[root]/images/contact.jpg
[root]/Unterverzeichnis/contact.php

Includierst du header.php ist es so als ob diese unter [root]/Unterverzeichnis/contact.php arbeitet, deshalb stimmen die Pfade zu den Bildern nicht mehr.
Am einfachsten ist es wenn die die Pfade zu den Bildern nicht relativ (zur Datei header.php) sondern absolut angibt. Dann sollte es in der index.php keine Probleme geben.
0

#20 Mitglied ist offline   axx 

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

geschrieben 17. Juli 2006 - 14:21

Beitrag anzeigenZitat (M-O-D: 17.07.2006, 15:01)

Vielleicht sollte ich mir einfach eine andere Struktur einfallen lassen, obwohl ich das eigentlich nicht möchte...
Ja, das ist zu empfehlen. Vielleicht so:
index.php:
<?php 
		include ("/sites/header.php"); 

		if(isset($_GET["page"])){
			switch($_GET["page"]){
				case "files": include("/sites/files.php");
				break;
				case "pics": include("/sites/pics.php");
				break;
				case "links": include("/sites/links.php");
				break;
				case "contact": include("/sites/contact.php");
				break;
				// 404
				default: include ("/sites/missing.php");
			}
		}
		include ("/sites/footer.php"); 
?>

Kontakt rufst du in diesem Fall mit index.php?page=contact auf. Mit mod_rewrite kannst du daraus auch contact.html oder Ähnliches machen.

Darüber hinaus hast du wahrscheinlich schon gemerkt, dass in header.php die Elemente body und html geschlossen werden, wa sja so nicht sein kann. Genauso sind die öffnenden body- und html-tags falsch. Am Ende wird ja alles zu einem Dokument zusammengesetzt, also insgesamt nur ein html- und ein body-Element.
0

#21 Mitglied ist offline   M-O-D 

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

geschrieben 17. Juli 2006 - 14:53

@mcshadow: Danke für Deine Antwort! Damit konnte ich schon was anfangen. Ja muss leider zugeben, dass ich in Sachen PHP nicht wirklich was kenne... Werde das mit den Pfaden später mal ausprobieren. Hab da jetzt leider keine Zeit mehr zu.

@axx: Auch Dir nochmal danke für Deine Bemühungen! Leider konnte ich mit Deiner Antwort nicht allzuviel anfangen. Dies liegt wahrscheinlich an meinen mangelnden PHP Kenntnissen. Wenn Du Lust hast, kannst Du mir eine PM schreiben um es mir vielleicht nochmal genauer zu erklären. Dann wird dieser Thread auch nicht unnötig gefüllt.
0

#22 Mitglied ist offline   MaDDiN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 997
  • Beigetreten: 18. Juni 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stink Tönis

geschrieben 17. Juli 2006 - 19:32

Die Struktur die Dir axx da vorgeschlagen hat, ist eingentlich die simpelste -und auch beste- Struktur, die Du als Anfänger nutzen kannst...

Sieht so aus...

[root]
index.php
/bilder
/sites
/inc

[/bilder]
alle_meine_bilder.jpg

[/sites]
contact.php
info.php
...

[/inc]
header.php
footer.php
navigation.php

Du legst also alles in eigene Ordner ab, und hast somit eine schöne Struktur.
In die index.php kommt nun der Inhalt aus axx' Beitrag. Rufts Du Deine Seite nun per index.php?site=contact auf, zeigt Dir index.php nun die contact.php an, inklusive Head, Navigation (Du scheinst ein Image-Map als Navi zu nutzen, oder? Würde die Navi auch als seperate Datei speichern...) und Footer.

Um die Bilder brauchst Du Dir dann auch keine Sorgen mehr zu machen. Als Pfad gibst Du dann einfach immer "bilder/bild_1.php" an...

Nun wird halt alles aufgeteilt...

---head.php

<html>
<head>

...alles was zum head gehört, inklusive JavaScipts etc...

</head>


---body.php (falls Du umfangreiche "body"-Angaben machst, sollte man das in eine CSS-Datei auslagern...)

<body style="...">


---navigation.php

<imagemap...>


---Nun wird die eingentliche Datei per index.php?site=... includiert---

---footer.php

</body>

</html>


Ich hoffe mal, dass Du damit ein wenig was anfangen kannst, um zumindest mal zu verstehen, was axx Dir da andrehen wollte... ;)
0

#23 Mitglied ist offline   M-O-D 

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

geschrieben 17. Juli 2006 - 20:53

Nabend zusammen!

So hab nun nochmal ein bisschen rumprobiert, bin aber nicht wirklich zu einer Lösung gekommen.

@mcshadow: Der Tipp mit den absoluten Pfaden funktioniert leider auch nicht. Grafiken werden weiterhin nicht angezeigt.

@axx bzw. @maDDin: Jetzt hab ich verstanden wie axx das meinte ;) Nur lässt sich damit das Problem, das ich nun habe doch auch nicht lösen oder?! Hab das nämlich mal anhand Deiner Kurzanleitung ausprobiert. Jetzt werden zwar alle Seiten im Ordner sites richtig dargestellt, aber die index.php wieder nicht. Da liegt es wieder an den Bildern die nicht geladen werden. Vielleicht hab ich ja irgendwas noch immer nicht kapiert, was eigentlich völlig simple ist, obwohl Du eigentlich alles gut beschrieben hast... ;D Aber wie man so schön sagt "Übung macht den Meister." Dann muss ich wohl noch ein bisschen rumfummeln...
0

#24 Mitglied ist offline   MaDDiN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 997
  • Beigetreten: 18. Juni 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stink Tönis

geschrieben 17. Juli 2006 - 21:01

Deine Bilder müssten jetzt alle im Ordner "/bilder" liegen...
Nun musst Du in jeder Seite den Pfad zu den Bildern entprechend ändern. Der Pfad müsste also ungefähr so lauten: "bilder/bild1.jpg".

Das liegt daran, dass die Seite in die index.php includiert wird. Du musst als bei jeder seite vom root-Verzeichnis ausgehen.
Ansonsten bliebe Dir noch die absolute Angabe zum Bild (also http://www.meinedoma...lder/bild1.jpg).

Wie gesagt: die index.php ist jetzt Deine Hauptseite. Von dort musst Du ausgehen.

Falls es noch Fragen gibt: her damit ;)
0

#25 Mitglied ist offline   M-O-D 

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

geschrieben 18. Juli 2006 - 14:47

Die größten Probleme scheinen überwunden zu sein. Dank der aktiven Hilfe von MaDDiN steht das Grundgerüst jetzt. Vielen vielen vielen Dank dafür! Es gab ein paar kleine Fehler zu beseitigen, wie zB dass header.php und footer.php doppelt aufgerufen wurden. Naja, Fehler die man einmal macht und danach hoffentlich nicht mehr... Auch an alle anderen Danke für eure Hilfestellungen! Werde nun erstmal versuchen die anderen Seiten einzubauen. Bis dann das nächste Problem kommt... ;(
0

#26 _1158_

  • Gruppe: Gäste

geschrieben 18. Juli 2006 - 14:59

Inkludieren relativ zum Stammordner geht so:

z.B.:
<?php include_once($_SERVER["DOCUMENT_ROOT"]."/inc/kopf.php"); ?>


So ist es egal, ob die Datei, die inkludiert in einem Unterordner ist.
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

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