PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Includes per Link wechseln?


DKoT-alias-Neo
02.06.2002, 13:08:12
Hi Leutz!
Ich wollte mal fragen ob mir hier jemand ausführlich erklären kann, was ich beim link angeben muss um einen Include meinetwegen in der mittleren spalte einer tabelle zu wechseln? Ich bräuchte den Link dafür und den Quellcode für die mitlere spalte wo die includes stehen müssen!

wäre nett wenn ihr mir da weiterhelfen könntet...

|Coding
02.06.2002, 14:12:21
hi,

das kannst du ganz einfach mit einer switchanweisung erledigen.

nehmen wir mal an du hast eine datei namens "index.php" dann schreibst du da rein:

<?
switch ($page_id)
{
case "1":
$to_include = "pfad/zu/inlude/datei.php";
break;
case "2":
$to_include = "pfad/zu/inlude/datei2.php";
break;
case "3":
$to_include = "pfad/zu/inlude/datei3.php";
break;
}


und in der tabelle wo die seite angezigt werden soll schreibst du:


<? include '$to_include'; ?>


jetzt kannst du über diesen link die seiten includieren:

www.deine-domain.de/index.php?page_id=1
www.deine-domain.de/index.php?page_id=2
www.deine-domain.de/index.php?page_id=3


wenn du eine datei standartgemäß angezeigt haben willst, dann schreib das in das switch...


.
.
.
default:
$to_include = "pfad/zu/standart/inlude/datei.php";
break;
.
.
.


du kannst es auch kombinieren z.b. seite 1 und default sind beispielsweise deine hauptseite.


.
.
.
case "1":
default:
$to_include = "pfad/zu/inlude/datei.php";
break;
.
.
.


alle seiten die andefault gekoppelt sind müssen nicht aufgerufen werden, den beim parsen der datei wird der default wert logischerweise als standart genommen. das switch von oben kannst du beliebig erweitern.

ich hoffe ich konnte dir weiter helfen.


P.S.

willkommen im SELFPHP forum :-)

DKoT-alias-Neo
02.06.2002, 17:11:01
hmm das ganze funzt leida nicht :( der sagt mir folgenden fehler an:
Warning: Failed opening '$to_include' for inclusion (include_path='.;c:php4pear') in c:webserverindex.php on line 314

woran kann das liegen?

P.S.: vielen dank für diesen herzlichen empfang!!! freu mich schon auf weitere diskussionen :D

|Coding
02.06.2002, 17:17:13
hi,

sorry ist mein fehler.

es muss


<? include $to_include; ?>


heißen und nicht


<? include '$to_include'; ?>


entschuldige noch mal, ich wollte dich nicht in die irre treiben.

DKoT-alias-Neo
02.06.2002, 19:45:34
hmm ufnzt immer noch nicht findste noch irgendeinen fehler?

<?
switch ($page_id)
{
case "1":
$to_include = "pfad/zu/inlude/datei.php";
break;
case "2":
$to_include = "pfad/zu/inlude/datei2.php";
break;
case "3":
$to_include = "pfad/zu/inlude/datei3.php";
break;
}

ach so und bei dem code fehlt da zufällig am ende noch das
"?>"???
und was is wenn ich bei dem case anstatt einer 1 nen wort eingebe wie "news" geht das auch?
ja und bei dem pfad reicht das wenn ich da nur home.php angebe wenn die datei im selben ordner liegt oder wie?

hast mich net verwirrt hab schon soviel gelesen was gar nicht funzte da gwöhnt man sich dran (aber höchst wahrsacheinlcih is es nur meine blödheit :-()

|Coding
02.06.2002, 20:11:21
hi,

ja, am code ende fehlt "?>".
sicher kannst du auch worte nehmen anstatt der zahlen im case
wenn die dateinen im selben verzeichnis liegen, kannst du auch nur den dateinamen angeben


das script scheint aber in ordnung, kann sein das du vielleicht irgendwo anders einen fehler gemacht hast...

zum letzteren: ich glaube wohl kaum, dass das wass mit blödheit zu tun hat :-)

DKoT-alias-Neo
02.06.2002, 20:44:55
hmm dann vieleicht mit unverständnis :D

so funzt leider immernoch nicht :( wo muss ich denn den teil mit den case etc. hintun? genau über das include oder in den header oder wo?

|Coding
02.06.2002, 21:48:40
hi,

so das:

<?
switch ($page_id)
{
case "1":
$to_include = "pfad/zu/inlude/datei.php";
break;
case "2":
$to_include = "pfad/zu/inlude/datei2.php";
break;
case "3":
$to_include = "pfad/zu/inlude/datei3.php";
break;
}
?>
schreibst du ambessten direkt nach <body>

also

<body ...>
<?
switch ($page_id)
{
case "1":
$to_include = "pfad/zu/inlude/datei.php";
break;
case "2":
$to_include = "pfad/zu/inlude/datei2.php";
break;
case "3":
$to_include = "pfad/zu/inlude/datei3.php";
break;
}
?>


das: <? include $to_include; ?>


schreibst du dahin wo die neue seite includiert werden soll

DKoT-alias-Neo
02.06.2002, 22:27:52
sorry aber dass funktioniert auch nicht :(
der php server is aber on und sonst funktioniert auch alles an php scripten offline :(

hmm ich weiss auch nicht woran es liegt hab alles so gemacht wie du es mir gesagt hast :(

aber in deiner seite scheint es ja auch zu funktionieren :( allerdings heisst es im link bei dir nur index.php?id=1 etc. :(


weisst du noch was?

|Coding
03.06.2002, 18:07:19
hi,

also das script ist korrekt, vielleicht hast du doch irgendwo nen fehler oder in der include datei ist ein fehler.

kriegst du irgendeine fehlermeldung?

DKoT-alias-Neo
03.06.2002, 19:20:37
nee fehlermeldung zeigt er nicht aber er zeigt dann immer wieder die default datei an: home.php


:(
ich wollte dich mal per icq adden damit wir so besser quatschen können aber das scheint nicht zu funzen :(


hier der code

------------------------------------------------------------------------
<?php
switch ($page_id)
{
case "homepage":
$to_include = "home.php";
break;
case "newspage":
$to_include = "news.php";
break;
case "forumpage":
$to_include = "forum.php";
break;
}
?>
------------------------------------------------------------------------

so und dann zeigt der mir folgenden fehler:

------------------------------------------------------------------------
Warning: Failed opening '' for inclusion (include_path='.;c:php4pear') in c:webserverindex.php on line 281
------------------------------------------------------------------------

und da steht folgendes:

------------------------------------------------------------------------
<?php
include ($to_include);
?>
------------------------------------------------------------------------

haste ne ahnung woran das liegen könnte?

|Coding
03.06.2002, 20:26:55
hi,

ist klar das er nichts includieren kann, weil du das default rausgenommen hast und somit ist die variable $to_include nicht geladen.

versuch das mal, sollte gehen... wenn gott will :-)



<?
switch ($page_id)
{
default:
case "homepage":
$to_include = "home.php";
break;
case "newspage":
$to_include = "news.php";
break;
case "forumpage":
$to_include = "forum.php";
break;
}
?>

DKoT-alias-Neo
03.06.2002, 21:08:17
funktioniert irgendwie immernoch net :(

hast du vieleicht noch ne idee oder weisst jetz vieleicht auch nimma worans liegt?
hab das default rein getan funzt aber immernoch net :(

Viper
08.06.2002, 02:41:48
Hi!

Wahrscheinlich möchtest Du es in etwa so machen:

http://www......./home.php?seite=newspage


<?php
if(empty($_REQUEST["seite"])) {
$seite = "startseite" ;
}else{
$seite = $_REQUEST["seite"] ;
}
if(file_exists("./includes/".$seite.".inc.php")) {
include("./includes/".$seite.".inc.php"); echo "
" ;
}else{
include("./includes/startseite.inc.php");
}
?>

Die zu "includierenden" Dateien sind im Unterordner /includes gespeichert (www...../includes/newspage.inc.php)
Wenn also kein http:.../?seite=... angegeben ist wird die startseite.inc.php includiert. Wenn http:.....?seite=newsseite dann wird die newsseite.inc.php includiert.

Vielleicht ist es so einfacher!?

Gruss, Viper

DKoT-alias-Neo
08.06.2002, 11:46:08
hey wunderbar!!!

vielen dank! jetzt funzt das endlich!!! SUPA *froi*

vielen dank nochma viper!!!
den andern natürlich auch einen dank dafür das sie sich damit auseinandergesetzt haben...

m4ddin
31.01.2006, 17:01:12
Hallo,
ich hoffe ich bin hier richtig. Habe eigentlich das selbe problem wie mein vorgänger.

Also, ich habe mit HTML und CSS ein einfaches 3-Spalten-Layout erstellt.
Oben der Banner, links die Navigation und daneben den Raum für meinen Inhalt.

Das sieht dann so aus:

<body>

<?
switch ($page_id)
{
default:
case "inhalt":
$to_include = "inhalt.php";
break;
}
?>

<div id="banner">Banner</div>
<div id="links"><a href="index.php?page_id=inhalt">Link 1</a></div>
<div id="mitte">

<? include($to_include); ?>

</div>

</body>

Das ganze habe ich dann als index.php abgespeichert und die datei die ich aufrufen will, als inhalt.php

Was muss ich da noch machen bzw. was mache ich da falsch, denn die inhalt.php wird nicht angezeigt.

Danke schonmal im Vorraus

JT
31.01.2006, 21:56:01
Hi,

versuchs mal andersrum:

<body>

<?
switch ($page_id)
{
case "inhalt": $to_include = "inhalt.php"; break;
default: $to_include="andere.php"; break;
}
?>

<div id="banner">Banner</div>
<div id="links"><a href="index.php?page_id=inhalt">Link 1</a></div>
<div id="mitte">

<? include($to_include); ?>

</div>

</body>

Wobei ich mir lieber eine Funktion erstellen würde, denn sonst wird deine Index bei mehreren Seiten unübersichtlich.

TobiZ
01.02.2006, 00:53:02
versuchs mal so so mach ich es bei mir

<?php
if (!isset($_GET['section'])) {
$_GET['section']="inc/start";
}
if (file_exists($_GET['section'].".php")) {
include($_GET['section'].".php");
} else {
include "inc/start.php";
}
?>

die links sehen dann so aus

<a href="?section=inc/start">Startseite</a><br />



wobei du aber beachten musst das dann die seiten die er laden soll in dem ordner inc stehen

m4ddin
01.02.2006, 11:43:15
Danke für die Antworten.

Mein Code war schon richtig, das habe ich aber erst gemerkt, als ich es auf meinen Webserver hochgeladen habe.

Ich hab wohl bei der Installation meines Apache Servers einen Fehler gemacht, weshalb er das Script nicht korrekt ausgeführt hat.