PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : index.php und Links


saecker
29.03.2002, 21:08:07
Hallo,

ich habe folgendes Problem:

1. Meine Startseite lautet index.php, sie ist als Tabelle aufgebaut. In einer Spalte sollen sich die Seiten ändern. Dies habe ich mit

<?PHP
if($seite=="main") include("v2/main.php");
elseif($seite=="batch") include("v2/batch.php");
...
?>

gemacht. Jetzt zu meiner Frage, wie stelle ich es an, dass wenn nichts anderes aufgerufen wurde, die Startseite als index.php?seite=main angeziegt wird?

2. Wenn ich mit oben stehenden Skript fremde Seiten angezeigt werden sollen, sucht er die Grafiken auf meiner Seite. Kann ich das irgendwie verhindern?

Danke

Nev
30.03.2002, 01:07:58
Hi saeker,

zu 1)
ich würde dir ein switch empfehlen, da du sicher mehr interne Seiten aufrufen wirst, als 2!!

Schaut dann folgender massen aus:

<?
switch ($seite)
{
case "batch":
$to_include = "v2/batch.php";
break;

case "main":
default:
$to_include = "v2/main.php";
break;
}
include ($to_include);
?>


Weitere Fragen zu switch findest du in diesem Thread (http://forum.isp2day.de/showthread.php?s=&threadid=1115)

zu 2)
wenn du reines HTML verwendest, das heist <img....>
wirst du es ned hinbekommen

eine Möglichkeit wäre es, die Bilder per Script zu aufzurufen, und dort zu fragen woher das erste Frame kommt (JS), dann könnte es gehn!!

Finde es aber ned gerade sinnvoll

seba
10.04.2002, 05:06:20
Hallöchen

Nev ich hätte da nen kleinnes Problemchen mit dem Script was Du da gepostet hast, und zwar kommt bei mir folgende Fehlermeldung.

Parse error: parse error, expecting `':'' or `'{'' in /public/www/kunden/k1847/htdocs/cgi-bin/index.php on line 3

Nev
10.04.2002, 10:54:05
Hi seba

du mußt {
durch }
ersetzten

das ist leider ein kleiner Bug in diesem Forum

Matthias
10.04.2002, 12:34:27
Auch zu 1:

Da deine Dateien den selben Namen haben wie der link, brauchst du denn nicht abfragen.

<?PHP include("v2/$seite.php"); ?>

Das ist alles.

Ist dann auch erheblich einfacher beim erweitern.

Und für die Startseite mußt du nur am anfang der Datei die Variable mit ner if Anweisung abfragen.

<?PHP
if(!$seite) $seite="main";
?>

seba
10.04.2002, 15:34:56
OK jetzt geht es Danke.
Aber mal noch ne kleine Frage.
Das "default:" sorgt dafür das bei Eingabe von nur index.php, ohne irgendwas diese Seite geöffnet wird, oder?
Und ist es möglich eine gesonderte Error Page zu öffnen wenn die aufgerufe Seite nicht existiert?

Nev
10.04.2002, 15:51:58
Hi seba

das default hat eine wichtige Funktion von switch
du Selectierst den Wert der Variable,
wenn kein Wert von den Case zutrifft.
dann kommt der in das default
dort kannst du wie du gewünscht hast deine
Error-Seite includiern.

wenn du das nicht haben willst.
Kannst du deine Main-Seite und die default / Error -Seite zusammen schliessen.

seba
10.04.2002, 16:27:01
Mh Das hab ich jetzt nicht ganz verstanden.
Wie mach ich es das wenn man nur index.php aufruft die Startseite kommt und bei aufruf von index.php (und irgendwas was es nicht gibt) eine Fehlermeldung?

Nev
10.04.2002, 16:46:23
Hi @gain

dann schaut der Code folgendermassen aus:

<?
if ($seite == "")
$seite = "main";
switch ($seite)
{
case "batch":
$to_include = "v2/batch.php";
break;

case "main":
$to_include = "v2/main.php";
break;

default:
$to_include = "v2/error.php";
break;
}
include ($to_include);
?>

seba
10.04.2002, 17:21:32
Hey Dankschön
Klappt super

|Coding
25.04.2002, 18:37:39
tag,

ich hab da mal ne frage... was bedeutet in dem include
<?PHP include "v2/$seite.php"; ?>
das v2/ ? das ist mir nicht ganz klar. beim include einer datei habe ich das so noch nicht gemacht und warum vor dem seiten namen das $ ?

thx schon mal

Matthias
25.04.2002, 18:47:25
v2 ist der Unterordner und $seite ist ne ganz normale Variable.

Wenn $seite z.B. den Inhalt gaestebuch hätte würde die Datei gaestebuch.php aus dem Unterordner v2 includiert.

|Coding
25.04.2002, 18:58:55
axo :) jetzt wird mir einiges klarer. THX Matthias ;)

saecker
07.05.2002, 17:38:36
Leider war mein Comp down, werde es in den nächsten Stunden testen. Schon einmal vielen Dank für die Antworten.

DKoT-alias-Neo
05.06.2002, 18:24:48
hi leutz!

ich wollte das grade ausprobieren aber das ganze funzt bei mir nicht :(

mein quellcode habe ich so eingebunden:

##########################################

<table border="1" bordercolor="#7F7F7F"
bgcolor="#000000" width="100%">
<tr>
<td colspan="2" align="left">

<?
if ($seite == "")
$seite = "main";
switch ($seite)
{
case "batch":
$to_include = "news.php";
break;

case "main":
$to_include = "home.php";
break;

default:
$to_include = "home.php";
break;
}
include ($to_include);
?>
</td>
</tr>
</table>

##########################################

und der dazugehörige Link damit sich include ändert:

##########################################

<a href="index.php?seite=batch">

##########################################

weiß jemand warum das bei mir nicht funktioniert?

Nonstop
05.06.2002, 19:05:28
...mal so :

<?
if ($seite == "") $seite = "main";
switch ($seite)
{
case "batch": include ("news.php"); break;

case "main": include ("home.php"); break;

default: include ("home.php"); break;
}
?>

|Coding
05.06.2002, 21:19:27
Original geschrieben von Nonstop
...mal so :

<?
if ($seite == "") $seite = "main";
switch ($seite)
{
case "batch": include ("news.php"); break;

case "main": include ("home.php"); break;

default: include ("home.php"); break;
}
?>


was soll den das if?

default ist doch dafür da, wenn die variable leer oder den falschen wert hat, führt default den ihm angehörigen code aus.

das if bring nichts. es sei den es würde kein default im switch stehen, aber das tut es ja...

Nonstop
05.06.2002, 21:24:32
Hab seinen QT in meinen Edit gepastet und das if übersehen.

Denkfehler meinerseits.

Danke |Coding

|Coding
05.06.2002, 21:25:27
P.S.

das script sollte so aussehen, dann funzt es auch.



<?
switch ($seite)
{
case "batch":
$to_include="news.php";
break;
case "main":
$to_include="home.php";
break;
default:
$to_include="home.php";
break;
}
?>



P.P.S.

beim script von Nonstop solltest du einen error oder keine funktion haben, da er das include direk im switch hat und es nicht erst in die variable $to_include läd.

|Coding
05.06.2002, 21:27:38
NoPROB Nonstop :-)

Nonstop
05.06.2002, 21:31:28
So schaut dein Code aus:


<?
switch ($seite)
{
case "batch":
$to_include = "news.php";
break;
case "main":
$to_include = "home.php";
break;
default:
$to_include = "home.php";
break;
}
echo $to_include
?>

|Coding
05.06.2002, 21:34:06
mach mich ma ned so blöde an hier.

wenn du mal die postings genau liest, dann wirst du sehen, dass das if schrott ist und nicht mein code.

was bringt es dir den überhaupt???????

steht doch ein default im switch drin...


EDIT:

will er da wo das switch seht includen??? ne also musst du es erst in die variable $to_include laden....

Nonstop
05.06.2002, 21:36:35
trozdessen würd ich ein gleichheitszeichen posten.

$to_include -> = <- ("home.php");

Nonstop
05.06.2002, 21:38:50
Ok sagen wir das if war schrott hast du ja recht.

troz dessen würd ich mal sagen das ein include kein Problem im
switch mach auser wenn er es net da haben will wo der swith
steht oder hab ich da unrecht?

ps: lies ma selbs dann sihst du das es nicht mein Code war

und ich mich zu meinem fehler bekannt hab und das ich das if übersehen hab habe ich auch gepostet.

|Coding
05.06.2002, 21:40:16
ERROR :-)

das ist auch falsch, was du da schreibst.

wenn dann so

$to_inlude="seite.php";

und nicht

$to_inlude=("seite.php");

|Coding
05.06.2002, 21:41:35
Original geschrieben von Nonstop
Ok sagen wir das if war schrott hast du ja recht.

troz dessen würd ich mal sagen das ein include kein Problem im
switch mach auser wenn er es net da haben will wo der swith
steht oder hab ich da unrecht?


er will es doch auch nicht da wo das switsh steht... an sonsten hast du nicht unrecht.

Nonstop
05.06.2002, 21:44:56
Ok ich bin friedfertig...

|Coding
05.06.2002, 21:46:23
:-) ok dann simma wieder friends :-)

Nonstop
05.06.2002, 21:49:42
ich hab mich oben verbessert

|Coding
05.06.2002, 21:57:11
naja, wenn du meinst ...