Julia: index.php?section=Impressum ??

Abend zusammen  :)

Ich hab da mal eine Frage zu PHP und zwar wie kann man sowas erstellen --> index.php?section=Impressum

Also das man die ganze Zeit index.php hat und da hinter ?section=impressum oder ?section=links steht.

---
Dies hab ich schon raus gefunden, nur weiss ich nicht wie/ wo ich das einsetzen soll

switch ($_GET['section']) {
case "impressum":
include("impressum.inc")
break;
[...]
default:
include ("index.inc")
}

Auf dem Gebiebt PHP bin ich noch Anfängerin ;)
Bin für jede antwort dankbar.

Gruss
Julia

  1. Hallo Julia,

    wie kann man sowas erstellen

    Das ist das Zeil eines einfachen Links.
    Wie du einen solchen erstellst, dass weißt du bestimmt.

    nur weiss ich nicht wie/ wo ich das einsetzen soll

    Schlage einmal im Manual[1] die entsprechenden Funktionen nach und verstehe,
    was sie bewirken. Danach kannst du das Schnipselchen auch verstehen und
    weißt, wie du es anwenden musst.

    Grüße
      David

    [1] http://php3.de/manual/de

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
  2. Hi!

    Du hast ja schon richtig erkannt, dass die Werte hinter dem Fragezeichen in Variablen gespeichert werden.

    Du kannst das wie im Beispiel auch so einsetzen um nach bedarf eine Seite einzubinden.
    Du musst nur auf Groß- und Kleinschreibung achten ;)
    Wenns also index.php?section=Impressum heißt dann musst du auch

    case "Impressum":

    schreiben.

    Grüße
    Julius

  3. Sei Dir bewusst, dass in Suchmaschinen zwar index.php aber nicht etwa index.php?section=Irgendwas eingetragen sein wird!

    Heiner

  4. Ich hab da mal eine Frage zu PHP und zwar wie kann man sowas erstellen --> index.php?section=Impressum

    Bevor Du Dich unglücklich machst: Lass es. Diese Form von Adressen wird von vielen Suchmaschinen nur teilweise oder gar nicht indiziert. Der Grund ist, daß das Fragezeichenanhängsel für Benutzereingaben gedacht ist, so wie es zum Beispiel bei den Abfrageseiten von Suchmaschinen gehandhabt wird. Individuelle Benutzereingaben sind aber für die Allgemeinheit nicht von Interesse, deshalb kümmern sich viele Suchmaschinen nicht um derartige Adressen.

    Und nein: Es ist auch nicht c00l ;)

    Als einfache Alternative kannst Du $_SERVER["PATH_INFO"] verwenden. In dieser Variable erscheint alles, was hinter dem Skriptnamen, getrennt durch einen Schrägstrich, erscheint. Bei

    index.php/impressum

    würde also wie gehabt Dein Skript index.php mit $_SERVER["PATH_INFO"]=="/impressum" aufgerufen werden.
    Damit hättest Du schonmal das Suchmaschinenproblem beseitigt.

    Möchtest Du lieber ganz einfache, schöne Adressen haben, kannst Du folgende Zeilen in eine Datei namens .htaccess eintragen (sofern Du den Apache-Webserver nutzt):

    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_URI} !^index.php.*
      RewriteRule (.*) /index.php/$1

    Damit sollte eine Anfrage nach beispielsweise /impressum intern nach /index.php/impressum umgeleitet werden.

    Falls es Schwierigkeiten gibt, melde Dich nochmal. Die Beschreibung zu diesen Anweisungen findest Du unter http://httpd.apache.org/docs/mod/mod_rewrite.html.

    Dies hab ich schon raus gefunden, nur weiss ich nicht wie/ wo ich das einsetzen soll

    switch ($_GET['section']) {
    case "impressum":
    include("impressum.inc")
    break;
    [...]
    default:
    include ("index.inc")
    }

    In Deiner index.php, wieso? Wo genau ist das Problem?

    Noch'n Tipp: Benutze keine Dateien mit dem Server nicht bekannten Dateiendungen. Es ist zugegebenermaßen relativ unwahrscheinlich, aber falls jemand die Adresse "/impressum.inc" aufruft, bekommt er Deinen PHP-Quellcode frei Haus geliefert - bei dieser Datei vielleicht kein Weltuntergang, problematisch wird's, wenn da Passwörter drinstecken oder sonst irgendwelche Dinge, die niemanden etwas angehen.

    Benutze besser impressum.inc.php und/oder füge die folgenden Zeilen in die bereits angesprochene Datei namens .htaccess ein:

    <filesmatch ".inc(.php)?$">
      deny from all
      </filesmatch>

    Damit wird die Auslieferung von Dateien, die auf .inc oder .inc.php enden, vollständig unterbunden (hat wohlgemerkt keine Auswirkungen auf PHPs include()-Anweisung).

    Gruß,
      soenk.e

    1. Guten Abend Soenke,

      Als einfache Alternative kannst Du $_SERVER["PATH_INFO"] verwenden. In dieser Variable erscheint alles, was hinter dem Skriptnamen, getrennt durch einen Schrägstrich, erscheint. Bei

      index.php/impressum

      Sehr ästhetisch. Wo ist das Problem, einfach komplette Pfade zu rewriten?

      Also statt domain/index.php/impressum

      domain/impressum zu verwenden?

      Möchtest Du lieber ganz einfache, schöne Adressen haben, kannst Du folgende Zeilen in eine Datei namens .htaccess eintragen (sofern Du den Apache-Webserver nutzt):

      RewriteEngine On
        RewriteBase /
        RewriteCond %{REQUEST_URI} !^index.php.*
        RewriteRule (.*) /index.php/$1

      Damit sollte eine Anfrage nach beispielsweise /impressum intern nach /index.php/impressum umgeleitet werden.

      Dann kannst du das aber auch nach index.php?section=/impressum rewriten, der Suchmaschine ist das allemal egal, weil sie's ja garnicht mitbekommt. Ist letztlich Programmtechnisch und Servertechnisch egal, aber es relativiert, was du weiter oben sagst.

      Grüße aus Barsinghausen,
      Fabian

      1. index.php/impressum

        Sehr ästhetisch. Wo ist das Problem, einfach komplette Pfade zu rewriten?

        Also statt domain/index.php/impressum

        domain/impressum zu verwenden?

        Wer lesen kann, ist klar im Vorteil, insbesondere wenn man dann auch noch kommentieren will. Davon mal abgesehen ist mod_rewrite nicht auf allen Servern verfügbar, PATH_INFO jedoch mit ziemlicher Sicherheit.

        Gruß,
          soenk.e

        1. Guten Abend Soenke,

          Sehr ästhetisch. Wo ist das Problem, einfach komplette Pfade zu rewriten?

          Also statt domain/index.php/impressum

          domain/impressum zu verwenden?

          Wer lesen kann, ist klar im Vorteil, insbesondere wenn man dann auch noch kommentieren will.

          Was möchtest du damit sagen? Ich habe hier eine Frage gestellt, da ich das Problem nicht sehe.

          Davon mal abgesehen ist mod_rewrite nicht auf allen Servern verfügbar, PATH_INFO jedoch mit ziemlicher Sicherheit.

          Stimmt. Ich kenne jedoch nicht allzu viele Indianer, auf denen mod_rewrite heutzutage fehlt.

          Grüße aus Barsinghausen,
          Fabian

          1. Hallo Fabian,

            Stimmt. Ich kenne jedoch nicht allzu viele Indianer, auf denen mod_rewrite heutzutage fehlt.

            Ähem; mod_rewrite installiert heißt nicht automatisch, dass man mod_rewrite benutzen kann.

            Viele Grüße,
            Christian

            1. Hallo Christian,

              Stimmt. Ich kenne jedoch nicht allzu viele Indianer, auf denen mod_rewrite heutzutage fehlt.

              Ähem; mod_rewrite installiert heißt nicht automatisch, dass man mod_rewrite benutzen kann.

              Ist ja klar. Aber es ist auch klar, dass *selten* Software installiert wird, die nicht gebraucht wird, bzw. verwendet werden soll ;-)

              Grüße aus Barsinghausen,
              Fabian

              1. hi,

                Aber es ist auch klar, dass *selten* Software installiert wird, die nicht gebraucht wird, bzw. verwendet werden soll ;-)

                du sprichst, als ob du noch nie eine standardinstallation von windows gemacht hast ;-)

                gruss,
                wahsaga

                1. Hallo wahsaga,

                  Aber es ist auch klar, dass *selten* Software installiert wird, die nicht gebraucht wird, bzw. verwendet werden soll ;-)
                  du sprichst, als ob du noch nie eine standardinstallation von windows gemacht hast ;-)

                  Nein, habe ich tatsächlich nicht. Die paar Male, die ich Windows installiert habe, habe ich stets die benutzerdefinierte Variante gewählt - und heutzutage installiere ich kein Windows mehr, sonder weiß, was auf meine Platte(n) kommt ;-))

                  Grüße aus Barsinghausen,
                  Fabian

          2. Wer lesen kann, ist klar im Vorteil, insbesondere wenn man dann auch noch kommentieren will.

            Was möchtest du damit sagen? Ich habe hier eine Frage gestellt, da ich das Problem nicht sehe.

            Wenn Du einen Teil einer Antwort löschst, nur um dann exakt denselben Sachverhalt mit derselben Kritik in eigenen Worten wiederum nochmal zu bringen, dann sieht das an diesem Ende der Leitung wie der reichlich plumpe Versuch aus, jemanden dumm dastehen lassen zu wollen - oder Du hast gar nicht erst zu Ende gelesen, sondern gleich dazwischen gequakt.

            Ich hatte mod_rewrite ausführlichst angesprochen, bereits in der Einleitung den Vorteil gegenüber PATH_INFO hervorhebend ("lieber ganz [..] schöne Adressen"). Welchen Sinn hat es bitte, dann nochmal mod_rewrite anzusprechen und nochmal zu sagen, daß index.php/impressum nicht so schön ist wie /impressum?

            Ich: "Du kannst nach Kleinkleckersdorf mit dem Auto fahren oder, wenn es bequem sein soll, den Zug nehmen."
            Dein Kommentar: "'Du kannst nach Kleinkleckersdorf mit dem Auto fahren' - Mit dem Zug fahren ist aber bequemer!"

            Gruß,
              soenk.e

            1. Guten Morgen, Soenke,

              Wer lesen kann, ist klar im Vorteil, insbesondere wenn man dann auch noch kommentieren will.

              Was möchtest du damit sagen? Ich habe hier eine Frage gestellt, da ich das Problem nicht sehe.

              Wenn Du einen Teil einer Antwort löschst, nur um dann exakt denselben Sachverhalt mit derselben Kritik in eigenen Worten wiederum nochmal zu bringen, dann sieht das an diesem Ende der Leitung wie der reichlich plumpe Versuch aus, jemanden dumm dastehen lassen zu wollen - oder Du hast gar nicht erst zu Ende gelesen, sondern gleich dazwischen gequakt.

              Ich hatte mod_rewrite ausführlichst angesprochen, bereits in der Einleitung den Vorteil gegenüber PATH_INFO hervorhebend ("lieber ganz [..] schöne Adressen"). Welchen Sinn hat es bitte, dann nochmal mod_rewrite anzusprechen und nochmal zu sagen, daß index.php/impressum nicht so schön ist wie /impressum?

              Ich: "Du kannst nach Kleinkleckersdorf mit dem Auto fahren oder, wenn es bequem sein soll, den Zug nehmen."
              Dein Kommentar: "'Du kannst nach Kleinkleckersdorf mit dem Auto fahren' - Mit dem Zug fahren ist aber bequemer!"

              Gut, wir reden halt aneinander vorbei, das kommt vor. Nichts für ungut.

              Grüße aus Barsinghausen,
              Fabian