• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP-Seite in der Zelle von einer Tabelle laden ???

Original geschrieben von Microkotz
Eine kurze Zwischenfrage, von einem, der von PHP auch zimlich wenig Ahnung hat: Wieso?

Beim Aufruf der Funktion include() wird der Inhalt der Datei "datei" ausgelesen und - wenn vorhanden - der PHP-Code ausgeführt. Kommt die Funktion in einer Schleife vor, wird jedesmal erneut die Datei ausgelesen (im Gegensatz zu require()). Die Variablen in der Hauptdatei können auch in der "included"-Datei verwendet werden, und umgekehrt.

Eine Datei kann nur lokal aufgerufen werden.
 
@microkotz & julian:
http://de.php.net/require sagt:
require() und include() sind in jeder Hinsicht gleichwertig mit der einen Ausnahme: der Umgang mit Fehlern. include() erzeugt ein Warning während require() in einem Fatal Error endet. Mit anderen Worten: scheuen Sie sich nicht, require() zu benutzen, wenn Sie möchten, dass eine fehlende Datei die Ausführung ihres Skripts beendet. include() verhält sich anders, ihr Skript wird weiterhin ausgeführt.

@julian:
Es würde nicht schaden mal das Manual zu lesen.
Wenn "URL fopen wrappers" in PHP aktiviert sind (in der Standardkonfiguration ist das der Fall) können Sie als Pfad der einzubindenden Datei auch eine URL (via HTTP oder anderen unterstützen Wrappern - eine Liste der unterstützen Protokolle finden Sie unter Anhang I) statt einer lokalen Pfadangabe angeben.

@hawk:
Das heißt noch mehr. Man kann eine beliebige Datei mit eigenem PHP-Code einbinden welche auf Deinem Server ausgeführt wird. Ich kann quasi alles machen, was Du machen kannst.
 
Zuletzt bearbeitet:
Naja, ich weiss ja nicht was du heute für ne Laune hast, aber den Text oben habe nicht ich geschrieben, sondern der steht bei www.php4-forum.de unter Include(). Falls du mit dieser Erklärung ein Problem hast, kannst du ihnen ja mal schreiben und ihnen empfehlen, dass sie doch mal das Manual lesen sollten.
 
Dann solltest Du diese Seite meiden und in Zukunft das Manual befragen.
 
Dann verat' uns halt was genau Du nicht verstanden hast. Dann helfen wir Dir auch weiter.

Aber ich würde Dir sehr stark empfehlen Juliens Methode nicht zu nutzen.
 
Hi
Ich weiß z.B. nicht wie und wo man die einzelnen Codesnipsel in der HP einbauen muss.
Das mit dem Link ist klar, aber der Rest ...

cya
 
Angenommen, du möchtest Die Seite in folgendem <DIV> einbinden:

PHP:
<div><?php

	$pages = array(
		'inhalt0.html',
		'inhalt1.html',
		...,			// das hier ist jetzt kein Code
		'inhaltn.html');

	if (isset($pages[$_GET['id'])) {
		require_once($_GET['id']);
	} else {
		echo 'Fehler';
	}

?></div>

Und ein Link guckt dann z.B. so aus: index.php?id=0
 
Hi
Hab das so in meine HP eingebaut:
PHP:
<HTML> 
<HEAD> 
<TITLE>...</TITLE> 
</HEAD> 
<BODY> 
...
<a href="index.php?id=0">Link</a>  
...
<TD ...>
<?php
    $pages = array(
        'news0.php',
        'forum1.php');
    if (isset($pages[$_GET['id'])) {
        require_once($_GET['id']);
    }  else {
 include 'contact.php'; }
?>
</TD> 
...
</BODY> 
</HTML>

Die Seiten heißen "forum.php" und "news.php". Die Hauptseite mit dem Menü und wo das alles angezeigt werden soll, heißt "index.php".
 
so funktionierts:
PHP:
<HTML>
<HEAD>
<TITLE>...</TITLE>
</HEAD>
<BODY>
...
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?id=0">Link</a>
...
<TD ...>
<?php
    $pages = array();
    $pages[0] = "news0.php";
    $pages[1] = "forum1.php";
    if (isset($pages[$_GET['id']]) == TRUE) {
        require_once($pages[$_GET['id']]);
    }  else {
 include 'contact.php'; }
?>
</TD>
...
</BODY>
</HTML>
Wegen der übersichtilichkeit habe ich die Arraybelegung "entzerrt".
 
@microkotz ich sehe da keinen signifikanten Unterschied, ausser das einige unnötige sachen drinn sind.

Ich glaube Hawk hat kein PHP installiert.

@Hawk:
mach mal eine test.php mit folgendem Inhalt:
PHP:
<?php

echo 'PHP ist an';

?>

Und ist PHP an?

Wenn ja, dann verat uns doch, was PHP gemeckert hat (da wo es nicht ging).

Hmm.. vielleicht liegt's auch daran, dass die Seite forum.php und news.php heißen, aber in Deinem Array heißen sie forum0.php und news1.php.
 
@kutiku
doch: Da ist sogar ein wesendlicher Unterschied:

Dein Script (Ausschnitt)
PHP:
require_once($_GET['id']);
Meine Änderung
PHP:
require_once($pages[$_GET['id']]);
Du willst die Arraynummer per require_once einladen.
Ich lade die Seite ein, die sich uner dieser Nummer verbirgt.
Probiers doch einfach mal aus
 
Zuletzt bearbeitet:
stimmt, das war ein Flüchtigkeitsfehler. Ich hab' halt nur die Änderungen wie (isset() == true) gesehen.
 
Hi
Jetzt hab ich jedoch ein anderes Problem.
Eigentlich müssen die Seiten ja alle in einem Verzeichnis liegen (da wo auch die "index.php" drin ist), aber das ist bei meiner HP nicht so. Da ist z.B. die "forum.php" im Ordner "forum" oder die "news.php" im Ordner "scripte" etc. Ich hab also jede Seite in nem extra Ordner, da ich sonst keinen Überblick mehr hab. Bei jeder Seite sind ja auch noch Bilder und Stylesheets etc. dabei.
Was kann ich machen, damit die Seiten trotzdem geladen werden ???

cya
 
PHP:
<HTML>
<HEAD>
<TITLE>...</TITLE>
</HEAD>
<BODY>
...
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?id=0">Link</a>
...
<TD ...>
<?php
    $pages = array();
    $pages[0] = "news/news0.php";
    $pages[1] = "scripte/forum1.php";
    if (isset($pages[$_GET['id']]) == TRUE) {
        require_once($pages[$_GET['id']]);
    }  else {
 include 'contact.php'; }
?>
</TD>
...
</BODY>
</HTML>
 
Zuletzt bearbeitet:
Hi
Wenn ich jetzt die Seite in der index.php laden lasse, werden z.B. keine Bilder angezeigt, weil die Seite ja jetzt nicht mehr aus dem Ordner heraus angezeigt wird, sondern in einem Verzeichnis davor, da wo auch die "index.php" drin ist und da bei der URL der Bilder nicht die komplette Adresse steht (z.B. www.meinedomain.de/ordner/bild.jpg) sondern nur (bild.jpg), werden jetzt auch keine Bilder mehr angezeigt. Und da ein Forum ja auch aus mehreren PHP Dateien zusammengesetzt ist, wird das Forum auch nicht angezeigt.
 
Zurück
Oben