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

Mehrfaches include

Status
Für weitere Antworten geschlossen.
M

matibaski

Guest
Moin!
Habe eine Webseite für einen Auftraggeber fertiggestellt.
Nur das Problem ist:
Er möchte mal eine Datei erstellen und online stellen.
Da dachte ich an diesen Code:
PHP:
<?php
$pfad = '_private/content/';
include $pfad . basename($_GET['site']) . '.php';
?>

Nur das Problem ist:
Es gibt dateien, die sind in 2 Pfaden.
_private/ -> Dort sind alle Inhalte drin, mit Scripten, usw.. (kontaktformular, galerien)
_private/content/ -> Dort sind alle Dateien mit nur reinen Inhalten drin.
Keine Scripts, keine Tabellem, usw..
Damit der weiss, wohin er die Textdaateien speichern muss.
Doch wie stelle ich es an, dass die Dateien von content/ und von _private/ eingebunden werden können?

Oder sehe ich mich gezwungen alles in einen Ordner zu schieben?


MfG, matibaski
 
Werbung:
also die einfachste möglichkeit wäre einfach diese hier
PHP:
<?php
include("_private/content/".$_GET["site"]);
?>
Jetzt kannst du einfach den Dateinamen übergeben, wenn du eine datei aus Content haben möchtest.
$_GET["site"] = "datei.php";​
solltest du eine Datei aus dem _private Verzeichnis öffnen wollen kannst du einfach einen Pfad mit übergeben
$_GET["site"] = "../datei.php"​

Ist natürlich nicht die beste Lösung, ich z.B. würde eine 2. Variable übergeben die den Pfad bestimmt
 
Frank schrieb:
Ist natürlich nicht die beste Lösung
Gute Idee, aber sieht 1. nicht so toll aus undn 2. aufwändiger zum Links schreiben

Frank schrieb:
ich z.B. würde eine 2. Variable übergeben die den Pfad bestimmt
WIe würdest du dir das Vorstellen?
Ich hätte da keine Idee.

Eine if Schleife vielleicht?
Mein Ansatz wäre so:
PHP:
<?php
$files = "_private/content/";
$files2 = "_private/";

if(/*irgendetwas*/ == /*etwas*/)
{
include $files.$_GET['site'].".php";
}
elseif
{
include $files2.$_GET['site'].".php";
}
?>


Aber kein Plan.

MfG, matibaski
 
Werbung:
Eine if Schleife vielleicht?
www.if-schleife.de ;)

Du könntest es mit zwei $_GET-Variabeln machen:
PHP:
<?php
$files = "_private/content/";
$files2 = "_private/";

if(isset($_GET['site']))
  include $files.$_GET['site'].".php";
elseif(isset($_GET['site']))
  include $files2.$_GET['content'].".php";
else
  include $files."index.php";
?>
(Bei Einzeiligen Anweisungen kann man die Klammern weglassen)
Die dritte Abfrage ist drin, damit überhaupt etwas angezeigt wird, wenn nichts angegeben wurde.

Lies dir übrigens unbedingt das hier durch: http://www.html.de/showthread.php?t=941 (sollte wohl noch in den Tutorial-Bereich)
 
flapo schrieb:
Toll! Komisch Typ, der eine Webseite macht, wo nur ein Satz drinne steht.
Er hätte mir eine Domain geben können. ;)

Danke.
Wär ich gar nicht drauf gekommen mit zwei $_GET Variablen zu arbeiten.:mrgreen:

Zu diesem Teil aber, hätte ich 'ne Frage:
PHP:
elseif(isset($_GET['site'])) 
  include $files2.$_GET['content'].".php";
Da müsste ich ja zwei Variablen abrufen!?

Ich habe vorher noch nie mit der elseif Verzweigung gearbeitet.
Wie müsste ich dann einen Link für die elseif-Verzweigung machen?
HTML:
<a href="index.php?content=seite">Link</a>
So etwa? Wenn nicht, wie dann?


MfG, matibaski
 
Sorry, ich hatte einen kleinen Fehler drin:
PHP:
<?php
$files = "_private/content/";
$files2 = "_private/";

if(isset($_GET['site']))
  include $files.$_GET['site'].".php";
elseif(isset($_GET['content'])) //hier stand $_GET['site']
  include $files2.$_GET['content'].".php";
else
  include $files."index.php";
?>
elseif ist eine if-Abfrage, die nur durchgeführt wird, wenn die erste Abfrage nicht zutraff. Also statt:
PHP:
if(bla)
  {
  mach was, wenn bla stimmt
  }
else
  {
  if(blubb)
    {
    mach was wenn blubb stimmt
    }
  }
else
  {
  mach was, wenn beides nicht stimmt
  }
einfach:
PHP:
if(bla)
  {
  mach was, wenn bla stimmt
  }
elseif(blubb)
  {
  mach was wenn blubb stimmt
  }
else
  {
  mach was, wenn beides nicht stimmt
  }

Ein Link könnte so aussehen:
HTML:
<a href="index.php?content=seite">Zur Seite im Verzeichnis _private/content/</a>
oder so:
HTML:
<a href="index.php?site=galerie">Zur Galerie im Verzeichnis _private/</a>
 
Werbung:
Achsoo funktioniert elseif.
Das einfach ein if mit einem else vornedran.
Ich dachte da müsste alles mit dem if übereinstimmen.
Danke für den "Hinweis"


MfG, matibaski
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben