Link-Erweiterung

Lon3sWolf_VtG8

Mitglied
Hi Leute,

ich benutze auf meiner Seite diese Include Links funktionieren ziemlich gut, doch jetzt stehe ich vor einem Problem mein Link sieht z.B. so aus
Code:
index.php?mode=l-chat
doch wie bekomme ich es nun hin eine erweiterung zu machen z.B. so
Code:
index.php?mode=l-chat&chat=enter
habe es schon selber probiert doch habe ich es nicht hinbekommen.

Danke für jede hilfe die ich bekommen kann.

Lon3sWolf_VtG8

Edit:

Habe etwas vergessen mein PHP Code sieht so aus:
Code:
<?
switch($_REQUEST['mode']) {
case "home": include("news.php"); break;
case "l-chat": include("chat/login.php"); break; 
case "links": include("links/links.php"); break; 
default: include("news.php"); break; 
}
?>
 
Zuletzt bearbeitet:
Re: Link erweiterung.

Am besten verarbeitest du den zweiten Parametern erst in den entsprechenden Scripten.
 
Re: Link erweiterung.

Die Variable Requested die verschiedenen Seiten da bei mir die hier nicht funktioniert:

PHP:
<? 
switch($section){ 
case "news": include("news.php"); break; 
case "links": include("includes/links.php"); break; 
default: include("news.php"); break; 
} 
?>

wenn ich jetzt nun bei meinem Beispiel auf den Link "Links" drücke kommt oben in der Adressleiste dies hier stehen
Code:
index.php?mode=links
doch wie kann ich es nun anstellen um es zu verlängern z.B.
Code:
index.php?mode=links&img=banner
also nur dieses
Code:
&img=banner
hinzufügen.

Lon3sWolf_VtG8
 
Re: Link erweiterung.

Indem du den HTML-Link anpasst?
HTML:
<a href="index.php?mode=links&img=banner">Links</a>
 
Re: Link erweiterung.

Ich denke das war ihm klar!

Meiner Meinung nach liegt sein problem darin, dass er nur die variable 'mode' definiert hat aber nicht die die er dran hängen will - nämlich die (in diesem Fall) 'img'.

Ich hab das bei meinen Seiten immer so gemacht zB:

Code:
$mode = $_REQUEST["mode"];
$img= $_REQUEST["img"];

und dann mittels if-else auslesen was alles an Variablen mittels $_GET übertragen wurde und dementsprechend reagieren!

Diese Art und Weise ist natürlich nur als Denkanstoss oder als Lösungsansatz gedacht!

scootie
 
Re: Link erweiterung.

scooti ok das hilft mir schon ein bisschen weiter, könnstest du mir ein kleines Beispiel geben mit dem if else, weil damit habe ich mich noch nicht so richtig angefreundet.


Danke im vorraus für weitere Hilfe.


Lon3sWolf_VtG8
 
Re: Link erweiterung.

Statt mit switch überprüfst du den Querystring mit if/else:
PHP:
if($_GET['mode'] == "news") include("news.php");
elseif($_GET['mode'] == "links") include("links.php");
elseif(..usw..) 
else include("news.php");
Das macht genau das Selbe wie dein switch.
Allerdings wäre da
PHP:
include($_GET['mode'] . ".php");
vielleicht einfacher.
 
Re: Link erweiterung.

Ich persönlich finde die if-else version besser weil der Code schmaler und normalerweise auch übersichtlicher bleibt.

So, hier dein Beispiel:

Die zu includenden Dateien in ein Array speichern (Idee wäre zB in einer config.inc.php...)

PHP:
$dateien = array(); // Leeres Array machen
$dateien['news'] = "news.php";
$dateien['links'] = "links.php";
$dateien['usw'] = "usw.php";
// ...

Dann so aufrufen was übergeben worden ist

PHP:
if(isset($_GET[mode]) AND isset($dateien[$_GET[mode]])) {
        include $dateien[$_GET[mode]];
    } else {
        include $dateien['news'];
    }

sieht schon mal übersichtlicher aus als die Sache mit switch denke ich...
in diesem Fall ersparst du dir auch die Variablendefinition mit $_REQUEST für die Seite da ja die einzelnen Seiten alle in der §dateien definierst (für mehr ganz einfach noch Zeilen anhängen...)

Für den Fall dass du noch weitere Daten an das nächste Script übergeben willst würde ich dass dann in der zielseite extra definieren - eben mit ner if-else wie es Moritz123 erklärt hat!

Link schaut so aus:

HTML:
<a href="index.php?mode=links&img=banner">Links</a>

in der Zielseite (hier links.php) dann die Variable img definieren:

PHP:
$img= $_REQUEST["img"];

und dann noch die if else was halt mit den restlichen übergebenen Daten passieren soll!

scootie
 
Re: Link erweiterung.

Und welchen Vorteil soll das gegenüber meiner Lösung haben?
Ich glaub kaum das der Code übersichtlicher bleibt, wenn Du für eine so relativ simple Problematik schon anfängst mit 2 Dateien rumzuhantieren.

Ich denke, dass hier
PHP:
include($_GET['mode'] . ".php");
wohl am einfachsten ist.
Das kannst Du natürlich auch noch erweitern und beispielsweise eine Prüfroutine einbauen, die die Datei auf Vorhandensein checkt:
PHP:
if(file_exists($_GET['mode'] . ".php") include($_GET['mode'] . ".php");
else include("error_404.html");
 
Zurück