• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datei mit Get-Befehlen includen

Status
Für weitere Antworten geschlossen.

Sn0opy

Neues Mitglied
Hiho,

ich würde gerne eine Datei via PHP includen. Allerdings möchte ich noch einen Get-Befehl (?) mit dran hängen, weil nur da der entsprechende Text angezeigt wird.

Beispiel:

datei1.php
PHP:
<?
include 'datei2.php?foo=bar';
?>

datei2.php
PHP:
<?
if(isset($_GET['foo']) && $_GET['foo'] == 'bar') {
   echo 'Dies ist ein Test';
} 
// Ansonsten soll nichts passieren
?>

Heißt in Datei1 soll der Text aus Datei2 angezeigt werden. Als Fehlermeldung bekomme ich folgendes:

Code:
Warning:  include(./datei2.php?foo=bar)function.include: failed to open stream: No error in ...
Warning:  include() [function.include]: Failed opening './datei2.php?foo=bar' for inclusion (include_path='.;\xampplite\php\pear\') in...
 
Werbung:
PHP:
<?php // index.php

include("test.php");

?>

PHP:
<?php // test.php

echo $_GET['test'];

?>

aufruf über

[noparse]http://www.domain.tld/index.php?test=foobar[/noparse]

Ausgabe: foobar

PHP: include - Manual Example#3
 
Ich möchte nicht den Wert vom Get ausgeben, sondern möchte es so machen, wie ich es im Beispiel geschrieben habe.

Allerdings hatte ich es total verpennt dort nochmal zu schauen. Dadurch habe ich gesehen, dass man die gesamte URL angeben müsste, was mein Vorhaben grad zertstört hat, da URL File Access disabled ist.
 
Werbung:
du musst nicht die gesammte url angeben... -.-'

also ums nochmal klar zu sagen get variablen so wie du sie angeben wolltest sind auch in einem include verfügbar und wenn du andere variablen da rein haben willst dann schreibst du das einfach so

PHP:
<?php // index.php

$a = 'test';
include('test.php');

?>


PHP:
<?php // test.php

echo $a;

?>

die verwendung von get parametern in einer URL sit nur dan angebracht wenn du dateien von einer entfernten homepage auslesen möchtest da der content da meist von den variablen abhängt!

wenn du aber schreibst

include('test.php?vla=test&foo=bar');

dann sucht er nciht nach test.php sondern nach einer daeti die "test.php?vla=test&foo=bar" heißt!

nun klar? :p
 
Ich lös das ganze nun auf und sag einfach, was ich genau vorhabe. Ich habe eine Website mit einer Gallery. Diese Script beinhaltet Kategorien. Die komplette Website lasse ich die index.php laufen, über die ich alle Dateien include. Heißt, ich habe einen Switch in der index.php, der mit je nach Get die entsprechende Seite includet.

Die Gallery wird für 2 Bereiche verwendet. Der Hauptteil mit "Fotos" funktioniert einwandfrei. Da wird einfach nur die gallery.php mit ?p=fotos includet, wo dann mehrere Kategorien angezeigt werden. Kategorien ruft man dann dementsprechend auf: ?p=fotos&cat=1.

Nun habe ich aber einen 2. Bereich in der Seite, wo nur Werke aus einer bestimmten Kategorie angezeigt werden sollen. Die Seite wird mit ?p=photoshop aufgerufen. Auf dieser Seite soll nun ausschließlich die Kategorie X angezeigt werden und genau darum muss ich eben bei ?p=photoshop die Seite gallery.php?cat=X aufrufen, was nicht möglich ist.
 
Abend,

warum nicht einfach
PHP:
$_GET['cat'] = 'die Kategorie je nach p';
include ("gallery.php");

Wenn du globale Variablen schützen willst, dann packe den Inhalt von Gallery einfach in eine Funktion und übergebe cat als Parameter. Musst dann nur noch darauf achten die Superglobalen nicht zu ändern.

N43
 
Werbung:
wieso ist es nicht möglich?

index.php?p=photoshop&cat=X

und schon hast das was du willst :-D

oder auch anders und zwar so

index.php?seite=gallerie&p=photoshop&cat=X
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben