Variablen in URL ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablen in URL ...

    Ich hab ne URL index.php?loc=main.php wobei mit $loc immer der Inhalt der Seite included wird. Nun hatte ich mir gedacht, dass ich wenn ich im z.B. News - Bereich bin, des aussehens halber die include - Variable $news nennen und mir folgendes ausgedacht:

    PHP-Code:
    if ("$db!=NULL")
    {
    $dbi = ("db/$db");
    include(
    $dbi);
    }
    else
    {
    if (
    "$dl!=NULL")
    {
    $dli = ("dl/$dl"); 
    include(
    $dli);
    }
    else
    {
    if (
    "$co!=NULL")
    {
    $coi = ("co/$co"); 
    include(
    $coi);
    }
    else
    {
    if (
    "$news!=NULL")
    {
    $newsi = ("news/$news"); 
    include(
    $newsi);
    }
    else
    {
    if (
    "$so!=NULL")
    {
    $soi = ("so/$so"); 
    include(
    $soi);
    }
    else
    {
    include(
    $i);
    }}}}} 
    Nur leider funzt das net so wie ich will . Hat jemand ne Idee was der Fehler ist oder wie man sowas verkürzen könnte. Weil so ne ewige if - Abfrage is ziemlich lang. Das "("co/$co")" ist ürbigens die Pfadangabe, da ich die php - Dateien dann auch in verschiedene Ordner legen würde. Die Variable $i soll benutzt werden als Grundvariable falls keiner der anderen in der URL vorhanden ist.

  • #2
    hallo,

    die " " bei den if anweisungen weglassen.

    also so:
    PHP-Code:
    if ($db!=NULL

    Kommentar


    • #3
      also wenn solltest du elseif nehmen. eine solche konstrucktion ist nicht zu verantworten.

      schau dir mal switch() an. das sieht dann schon besser aus.

      oder du machst es eifach so:

      PHP-Code:
      $file $_GET[loc];

      if (
      file_exists($file)) {
        include(
      $file);
        }else{
        echo 
      "404";
        } 
      ein bisschen Phantasie hilft bei PHP ungemein!!!

      Kommentar


      • #4
        Also so funzt es jetzt:

        PHP-Code:
        $dbi = ("db/$db");
        include(
        $dbi);
        }
        elseif(
        $dl!=NULL)
        {
        $dli = ("dl/$dl"); 
        include(
        $dli);
        }
        elseif(
        $co!=NULL)
        {
        $coi = ("co/$co"); 
        include(
        $coi);
        }
        elseif (
        $news!=NULL)
        {
        $newsi = ("news/$news"); 
        include(
        $newsi);
        }
        elseif (
        $so!=NULL)
        {
        $soi = ("so/$so"); 
        include(
        $soi);
        }
        else
        {
        include(
        $i);

        Mit switch() geht das nicht da diese Variable ja nirgends vorhanden ist sondern nur in der URL existiert. Ich hab mir das mal durchdacht. Ich glaube auch deinen zweiten Vorschlag könnte ich nicht zum laufen bringen, da ich ja in verschiedene Ordner verlinken will.

        Kommentar


        • #5
          Mit dem Elseif ersparst du dir ja schon mal ne menge. Bin der Meinung, dass die beiden anderen Ideen auch gehen.

          Ich verstehe aber nicht, wie du mit index.php?loc=main.php dein Script ansprechen kannst. Im script wird $loc doch gar nicht erwähnt.

          Kommentar


          • #6
            Fast. Der Code ist so, dass automatisch die Variable eingesetzt werden soll, die auch in der URL steht. Also irgendwo steht halt include($loc) und $loc steht in der URL. Soweit ich das mit switch() probiert habe ging das nicht, weil switch() ja eine Variable braucht die dann beliebig besetzt ist. Nur gibts die Variable $loc ja nur, wenn sie auch in der URL steht und grundsätzlich taucht sie ja nur beim include() auf. Ich weiß nicht ob dus jetzt verstanden hast ... ... naja, hauptsache es funzt.

            Kommentar

            Lädt...
            X