+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Wozu php links?

  1. #1
    Sai
    Sai ist offline
    TP-Senior Sai ist auf einem guten Weg Avatar von Sai
    Registriert seit
    Dec 2001
    Beiträge
    168

    Wozu php links?

    Ich hab jetzt eine hp komplett aus php seiten, das menü z.B. wird per include eingefügt usw.

    Meine Frage:

    Die Links in dem Menü: Kann oder soll ich da "normale" links verwenden und einfach auf die php seiten verlinken < a href...
    oder sollte man da diese php links nehmen? (Die sehen irgendwie anders aus, vielleicht kann ja mal jemand ein Beispiel posten...)

    Wo ist da der Unterschied?

    Sai dabei.


  2. #2
    seb
    seb ist offline
    TP-Veteran seb bringt sich richtig ein seb bringt sich richtig ein
    Registriert seit
    Jan 2002
    Beiträge
    1.741
    Es gibt keine 'PHP-Links'.

    Was Du wahrscheinlich meinst, sind Links, bei denen im sog. 'Query String', d.h. dem URL-Anhang hinter dem Scriptdateinamen Variablenwerte übergeben werden.

    Auf diese Weise kann man dem aufzurufenden Script natürlich auch 'erzählen', welche Seite geladen werden soll, wobei es endlos viele Möglichkeiten gibt, sowas umzusetzen.

    Ein derartiger Link kann z.B. "index.php?page=home" lauten, allerdings versteht das Script natürlich nicht von selbst, was es damit anfangen soll.
    Falls jede deiner Seiten ein komplett eigenständiges Script darstellt, ohne einen Teil, der Query-String-Informationen verarbeitet, musst Du natürlich auch keinen angeben, d.h. Du kannst Sie 'normal' verlinken.

  3. #3
    Sai
    Sai ist offline
    TP-Senior Sai ist auf einem guten Weg Avatar von Sai
    Registriert seit
    Dec 2001
    Beiträge
    168
    Welchen Vorteil hätte ich denn davon, wenn ich das Ziel des Links als extra Attribut angebe? Dann müsst ich ja noch ein script schreiben, dass das ganze wieder "ausliest", trotzdem sieht man es sehr häufig...

    Sai dabei.


  4. #4
    seb
    seb ist offline
    TP-Veteran seb bringt sich richtig ein seb bringt sich richtig ein
    Registriert seit
    Jan 2002
    Beiträge
    1.741
    Ganz einfach:

    Auf diese Weise kann man unnötige Code-Wiederholungen elegant umgehen, indem man die Teile des Scripts, die für jede Seite die gleichen sein sollen, einmal schreibt und alles andere, sprich Inhalt, der auf jeder Seite anderer ist, nach der Angabe im Query-String z.b. includet oder aus einer Datenbank holt.

    Du hast beispielsweise geschrieben, dass du dein Menü für jede Seite includest, d.h. der Code ist nicht fest in jedem Script notiert, sondern wird eingebunden, womit Du dir einen gewissen Aufwand einsparst.

    Trotzdem enthält jedes deiner Scripts wahrscheinlich immernoch mehr oder weniger viel gemeinsamen Code, und Du hast immernoch mehrere Dateien, die Du alle einzeln ändern musst, falls Du z.b. Die Pfadangabe zum Menü-Include ändern willst.

    Der entscheidende Trick besteht darin, den Spieß umzudrehen:

    Man includet nicht das Menü in die Seite, sondern vielmehr praktisch die Seite ins Menü. So hat man nur ein einziges eigenständiges Script, welches alle Seiten generiert.
    Und welcher Inhalt jeweils includet werden soll, erklärt man dem Script eben per Query-String.

    Einfachstes Beispiel:

    index.php?page=start.html
    ------------------------------------

    PHP-Code:

    <html>
    <head></head><body>
    <?php

    blabla
    ... // code fürs menü

    blablalblabla // code z.b. für dekorative rahmen-tabelle

    // und hier wird schließlich der seiteninhalt eingebunden. 
    Da <html>, <headund <bodybereits hier im hauptscript stehenkönnen (bzw. -sollten-) diese Tags in den jeweiligen Inhalt-Includes weggelassen werden

    include($page);  


    ?>

    </body></html>
    Ich hoff, dass das Prinzip halbwegs verständlich ist

  5. #5
    TP-Specialist adrian macht alles soweit korrekt
    Registriert seit
    Dec 2001
    Ort
    Zürich & Berlin
    Beiträge
    2.331
    Das ist schon so, aber Achtung. Ab der PHP Version 4.2 wird dieses Feature aus Sicherheitsgründen nicht mehr unterstützt. Mit einem kleinen Umweg kann man das Ganze aber umgehen, nur weiss ich momentan leider gerade nicht mehr wo ich das gesehen hatte.... kann mir da jemand weiterhelfen? Ich glaube fast, wir hatten mal nen Beitrag im TP, den kann ich aber auch gerade nicht mehr finden....

  6. #6
    seb
    seb ist offline
    TP-Veteran seb bringt sich richtig ein seb bringt sich richtig ein
    Registriert seit
    Jan 2002
    Beiträge
    1.741
    Was Du meinst ist, dass ab PHP 4.20 die Konfigurationseinstellung "register globals" aus Sicherheitsgründen 'von Haus aus' auf 'off' gestellt ist.

    Dadurch werden die Wertzuweisungen aus dem Query-String nicht mehr in eigenständigen Variablen, sondern nurnoch in den Arrays $_GET bzw. $HTTP_GET_VARS gespeichert.

    script.php?name=Sebastian

    bewirkt also nicht mehr, dass im Script nun automatisch eine Variable $name mit dem Wert 'Sebastian' vorhanden ist, wodruch die ungewollte Manipulation des Scriptablaufs erschwert wird.

    Trotzdem hat man natürlich nach wie vor über besagte Arrays Zugriff auf die Query-String-Werte, d.h. es existiert ein Array-Element $_GET['name'], welches den Wert 'Sebastian' enthält, mit dem man natürlich ganz genauso arbeiten kann, wie mit einer einzelnen Variable.

    EDIT

    Dies gilt übrigens analog für übergebene Formularwerte ($_POST) und zahlreiche Umgebungsvariablen (u. A. $_SERVER oder $_ENV)

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51