PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php includen



johnpatcher
10-12-2003, 20:00
ich weiß, dass ist ne blöde frage aber ihr könnt sie doch sicher beantworten :D!!!
also ich fange grad mit php lernen an und habe heute ne homepage mit tabellen erstellt! in eine spalte davon habe ich nun den befehl:
<?php
include('probe.php')
?>
eingetippt. er zeigt jetzt auch den inhalt von probe.php an, doch wie kann ich es machen, dass wenn ich jetzt auf ein link von meiner navigationsleiste drücke zB kontakt dieser include durch probe2.php ersetzt wird?

danke im voraus!

johnpatcher
10-12-2003, 20:13
oder muss ich die ganze seite kopieren und dann einen neuen include machen? und die seite davor mit der neuen verlinken? dann hätte es aber nciht wirklich einen sinn!!!

johnpatcher

Stanislaus
10-12-2003, 20:34
Am besten ein kleines Beispiel:

Menü:


<table>
<tbody>
<tr>
<td>
<a href="index.php?page=dahumm">Dahumm</a>
</td>
</tr>
<tr>
<td>
<a href="index.php?page=pillepalle">Pillelpalle</a>
</td>
</tr>
</tbody>
</table>


Auswertung:


switch($_GET['page'])
{
case "dahumm" : include("dahumm.php");
break;
case "pillepalle" : include("pillepalle.php");
break;
default : include("default.php");
break;
}


Du kannst beide Teile in eine index.php packen und dann sollte das funktionieren.

Erklärung:
Im Menü hängst Du an den Link eine Variable namens "page" an und setzt, je nach Menüpunkt, einen Wert für die gewünschte Seite.
Wir dieser Link nun geklickt steht die Variable "page" als GET Variable zur Verfügung und kann ausgewertet werden. Diese Auswertung geschieht per switch (ist denke ich selbsterklärend). Ist page nicht gesetzt oder leer trifft der Fall default ein.

Viel Erfolg!

johnpatcher
10-12-2003, 20:57
hey danke ich werde es gleich ausprobieren, doch wie kann ich es machen, dass mein erster include durch den 2ten ersetzt wird? so wie du das beschrieben hast füge ich ja immer nur einen neuen hinzu!

sixfriends
10-12-2003, 21:30
:confused: Ich glaube, dein Problem ist, dass du du den Inhalt einer Tabelle dynamisch ändern willst? Ist das richtig? Falls ja: Das geht mit php nicht. Da php serverseitig ausgeführt wird und nur die produzierte Seite per Internet an den Browser gesendet wird, müsstest du die Seite neu laden lassen, um mit dem Benutzer interagieren zu können.
Kurz: Wenn du eine php Datei includest, dann wird das, was in der Datei steht auf dem Server geparst und das Endergebnis ausgegeben.

Wenn du den Inhalt der Tabelle ohne neuladen der Seite ändern willst, muss das clientseitig geschehen, d.h. mit JavaScript oder mit Hilfe von CSS, sonst geht nix.

sixfriends

johnpatcher
11-12-2003, 12:33
danke und wie kann ich per javascript das machen? und was für ein sinn haben denn dann php icluden??

johnpatcher

johnpatcher
11-12-2003, 13:13
ich habe es jetzt mit einer get variable realisiert jedoch bekomme ich folgenden fehler:

Fatal error: Allowed memory size of 8388608 bytes exhausted at (null):0 (tried to allocate 419 bytes) in /data/members/free/tripod/de/j/o/h/johnpatcher007/htdocs/start.php on line 19

was ist das?

was kann ich dagegen machen?

sixfriends
11-12-2003, 17:43
php Dateien includen hat folgenden Sinn:
1. Du kannst Programmteile, die du häufig verwendest auslagern und dann von jeder Datei, die es braucht includen lassen (z.B. einen einheitlichen Header, s. dieses Forum)
2. Du kannst von einer Bedingung bestimmen lassen, welche Datei included werden soll, z.B.

if (!empty($_GET['page'])) {
include_once($_GET['page'].'.php');
} else {
include_once('main.php');
}

Jedenfalls sowas in der Art.

Wie das mit JavaScript geht --> SelfHtml (http://selfhtml.teamone.de), JavaScript Forum, Google, ...

Wie hast du es geschafft, mit einem php Script über 8Mb Daten zu belegen?:eek: Gibt jetzt zwei Möglichkeiten:
1. Der Quellcode ist fehlerhaft (Produziert eine Endlosschleife oder sowas) --> Quellcode posten oder
2. Es liegt an deinem Webspace (Tripod=Lycos?) --> Da nachfragen.

sixfriends

johnpatcher
11-12-2003, 18:18
also hier der quelltext: in den zu verlinkenden datein steht das selbe drin!

hier klicken für den quelltext (http://mitglied.lycos.de/johnpatcher007/quell.txt)

ihr müsst dann nur noch auf quelltext anzeigen klicken!!
sagt mir wenn ihr fehler entdeckt!! danke!

johnpatcher

sixfriends
11-12-2003, 20:08
:confused: :confused: :confused:
Bei mir funzt es einwandfrei. Vielleicht ist der Lycos Parser einfach dümmer als meiner. Ersetz mal

<?php
switch($_GET['page'])
{
case "start" : include("start.php");
break;
case "news" : include("news.php");
break;
}
?> durch

<?php
switch($_GET['page'])
{
case "start" : include("start.php");
break;
case "news" : include("news.php");
break;
default : break;
}
?>
(Ich hoffe mal, dass das das einzige php in der Datei ist, sonst hab ich was übersehen ;) )

Wenn das auch nicht geht, würd ich mal bei Tripod nachfragen.

johnpatcher
12-12-2003, 12:41
sry aber geht immer noch net :( was kann ich denn noch machen?

sixfriends
12-12-2003, 13:37
Original geschrieben von sixfriends
Wenn das auch nicht geht, würd ich mal bei Tripod nachfragen.

siehe oben

johnpatcher
14-12-2003, 17:53
endlich habe ich es geschafft!! ich habe einfach dort wo ich die include hinhaben wollte folgendes listing eigefügt:

<?php
if (!isset($page)) { $page="start"; }
if (file_exists($page.".php")) { include($page.".php"); } else { echo " <br><b><center>Noch nicht implementiert</center></b><br> "; }
?>

und dann noch bei den links

z.B

index.php?page=start

damit wird die datei start.php and der stelle wo das listing steht includet!!