nokill: Wie funktioniert eine Website mit nur einer Datei?

Hi,

ich habe schon bei google gesucht aber nichts gefunden, aber wie funktionieren eigentlich Websites mit nur einer Datei dazu gebe ich am besten mal ein Beispiel:

die website www.giga.de besteht nur aus einer Datei der index.php (das stimmt zwar nicht zu 100% ist jetzt aber nicht soo wichtig)
wenn man jetzt auf einen link raufklickt, dann ändert sich nur das was hinter index.php kommt z.B. index.php?bereichid=7 also kommt danach nur "?bereichid=7" und es öffnet sich eine neue Datei. Auch bei Artikeln z.B. "?storyid=80626"

Ich glaube nicht dass das alles mit if-else gemacht wurde es wäre also nett wenn ihr mir helfen könntet. Entweder mit einem Link zu einem Tutorial oder einer Seite in der erklärt wird wie man das macht und das funktioniert oder ihr erklärt es kurz wie man das macht und es funktioniert.

schon mal danke im vorraus

mfg nokill

  1. !ollaH

    Mit serverbasierten Skriptsprachen. Diese Sprachen können serverbasiert auf Eingaben des Users entweder über ein  Formular, oder durch Anklicken eines Links reagieren:

    bsp: die index.php-Datei.

    if ($_GET["seite"]=="1")
    {
    print "Das ist die 1. Seite";
    }
    elseif ($_GET["seite"]=="2")
    {
    print "Das ist die 2. Seite";
    }
    else
    {
    print "Das ist die Seite, die aufgerufen wird, wenn nix angegeben ist!";
    }

    So. Bei dieser Datei wird je nach angegebenem GET-Parameter (also die oben in der Adresszeile sichtbaren) ein anderer Text ausgegeben. Die Links lauten dann:

    index.php?seite=1
    index.php?seite=2
    index.php

    oder einfach nur /?seite=2

    usw.

    Greets Tom1tk

    1. das Beste wäre du liest dich in eine PHP Tutorial ein

      z.B. http://tut.php-q.net/frames.html

      (sorry wenn ich nicht FORUM-konform referenziere)

      umd die "if then" Form kommst du allerdings nicht herum, sondern kannst es höchstens "eleganter" mit Arrays ($_GET Variable in Array X enthalten ? dann "include variable.php") oder Datenbankzugriffen erledigen

      wie gesagt, erst in PHP einarbeiten, sonst bringt das nicht allzuviel

      1. Hi,

        ich kenne mich durchaus mit php aus ;)

        es muss doch eine einfachere Möglichkeit geben als für jeden link ein case wie:
        -----------------------------------
        -<?php
        -    // die Datei inhalt.php

        -    switch($_GET['section']) {
        -        // ...
        -    }
        -?>
        ------------------------------------
         zu machen, oder?

        1. es muss doch eine einfachere Möglichkeit geben als für jeden link ein case wie:

          -<?php
          -    // die Datei inhalt.php

          -    switch($_GET['section']) {
          -        // ...
          -    }
          -?>

          zu machen, oder?

          kommt darauf an

          Beispiel (ich arbeite mal ohne get, ist bei einer Variable auch nicht nötig, query_string auswerten tuts auch)

          Start-Seite = index.php
          selbe Seite mit NEWS Inhalt = index.php?news
          selbe Seite mit Gästebuch = index.php?gbook

          etc.

          im index.php
          erstmal den query_string sichern --> $section
          und dann
          einfach an den entsprechenden Stellen

          z.B. include $section.".inc.php";

          und wenns um die Links geht

          bei "Home" --> .../.../index.php?start
          bei "News" --> .../.../index.php?news

          usw.

          dann noch ne Abfrage und gleichzeitige Fehlertoleranz

          //überhaupt ein query_string vorhanden ? bei "index.php" wärs ja
          //nicht so
          if (empty($section))
                      {
                       $section = "start";
                      }

          //Array der erlaubten Sections
          // "start", "news", "etc.", "noch was?",
          include "elements.inc.php";

          //Element nicht im Array enthalten ? also z.B. so ein Spinner der
          // index.php?testen_wir_mal_wie_fehlertolerant_das_alles_ist ein-
          // gibt

          if (!in_array($sections,$elemente))
                      {
                        $parameter = "start";
                      }

          statt mit Array arbeite ich mit Datenbank, aber das Procedere ist ähnlich

          MfG
          Micha

    2. Hi Tom1tk,

      und wie würde dann so ein link aus sehen?
      z.B. hierfür:

      elseif ($_GET["seite"]=="2")
      {
      print "Das ist die 2. Seite";
      }

      1. !ollaH

        und wie würde dann so ein link aus sehen?
        z.B. hierfür:

        elseif ($_GET["seite"]=="2")
        {
        print "Das ist die 2. Seite";
        }

        Geht net. Da steht kein "if". Du mußt zumindest einmal ein if dra stehen haben.

        Bsp:

        If (das==dem1){tue das1}

        If (das==dem2){tue das2}

        If (das==dem3){tue das3}

        If (das==dem4){tue das4}

        Oder:

        If (das==dem1){tue das1}
        elseIf (das==dem2){tue das2}
        elseIf (das==dem3){tue das3}
        elseIf (das==dem4){tue das4}
        //ElseIf heißt "dann, wenn"
        else {Tue das voreingestellte}
        //Else wird durchlaufen, wenn sonst nix passt.

        Lies dir bitte auch die Manuals dazu durch

        http://www.php.net/
        Greets Tom1tk

  2. hi,

    die website www.giga.de besteht nur aus einer Datei der index.php (das stimmt zwar nicht zu 100% ist jetzt aber nicht soo wichtig)
    wenn man jetzt auf einen link raufklickt, dann ändert sich nur das was hinter index.php kommt z.B. index.php?bereichid=7 also kommt danach nur "?bereichid=7" und es öffnet sich eine neue Datei. Auch bei Artikeln z.B. "?storyid=80626"

    das als "eine datei" zu bezeichnen, ist völliger humbug.

    noch nicht einmal kannst du sagen, ob es sich dabei um _ein_ script handelt.

    alles, was du sagen kannst ist, dass dein browser immer nur diese eine ressource mit verschiedenen parametern vom server anfordert.
    da können eins oder auch 100 verschiedene scripte hinterliegen, über mod_rewrite o.ä. gesteuert.

    gruss,
    wahsaga