[PHP] Page Content dynamisch einfügen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von eVeReSt, 15. November 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. November 2008
    Page Content dynamisch einfügen

    Hallo,

    ich möchte eine Website mit PHP etwas dymanischer gestalten. Und zwar geht es momentan noch um das Grunddesign. Da sollte es eine Navi oben haben und unten ein Content (da hatte ich ja schon eine CSS Frage, die tip top geklärt wurde ;-)). Bisher alles oke. Nun will ich mit $_GET['id'] die seite übergeben. Da stellt sich jedoch das erste Problem, und zwar kann ich include (); nicht anwenden, da ich unter anderem die Coppermine Gallery anwende (geht wegen relativem Pfad nicht --> es wird keine DB, kein CSS etc. geladen). Nun stellt sich aber die Frage wie ich das anders machen kann...mit Frames --> Mach ich nicht gerne, wird von Google auch nicht gerne gesehen...sonst???

    Nun ich bin wirklich langsam am verzeifeln...irgendwie sollte das ganze doch dynamisch gehen, ausser, dass man alles mit html macht....oder? Habt ihr eine Idee wie man das lösen könnte?

    Vielen Dank im Vorraus für die Antworten!

    Hier mal die Codeschnipsel:

    Zuerst die include Version:

    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
        <link rel="stylesheet" type="text/css" href="style_sheet.css" />
      </head>
    <?php
    $id 
    $_GET [ 'id' ];
    $picture  $id . ".jpg" ;

    switch (
    $id ) {
      case 
    'forum' :
        
    $page  "forum/gaestebuch.php" ;   //geht nicht, relativer Pfad
        
    break;
      case 
    'gallery' :
        
    $page  'gallery2/' //geht genauso nicht wegen relativem Pfad
        
    break;
      default:
        
    $page  $id . ".php" ;
    }
    ?>
    <body>

     
    <div id="header"><?php  include( "navigation.php" );  ?></div>
    <div id="content"><?php  include( $page );  ?></div>
    </body>
    </html>
    hier noch die navigation.php

    PHP:
    <? php
    < br  />
    <
    br  />
      &
    nbsp ;& nbsp ;

      <
    a href = "index.php" > Home </ a > |
      <
    a href = "frame.php?id=konzerte" > Auftritte </ a > |
      <
    a href = "frame.php?id=play" > Ich will spielen </ a > |
      <
    a href = "frame.php?id=gallery" > Bilder  </ a >|
      <
    a href = "frame.php?id=who" > Mitglieder  </ a >|
      <
    a href = "frame.php?id=kontakt" > Kontakt </ a > |
      <
    a href = "frame.php?id=member_bereich" > Member Bereich </ a > |
      <
    a href = "frame.php?id=ensemble" > Ensemble </ a > |
      <
    a href = "frame.php?id=links" > Links </ a > |
      <
    a href = "frame.php?id=forum" > Forum </ a > |
      <
    a href = "frame.php?id=sponsors" > Sponsoren </ a >
    ?>
     
  2. 15. November 2008
    AW: Page Content dynamisch einfügen

    Ich weiß es nicht genau, aber ich würde mal folgendes Probieren:

    include austauschen mit "echo file_get_contents()" (PHP: file_get_contents - Manual)

    Das sollte dein Pfadproblem beheben.
     
  3. 15. November 2008
    AW: Page Content dynamisch einfügen

    Und wie soll ich das einfügen? Mit folgender variante hat es leider nicht funktioniert, hast du einen besseren Vorschlag?

    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
        <link rel="stylesheet" type="text/css" href="style_sheet.css" />
      </head>
    <?php
    $id 
    $_GET [ 'id' ];
    $picture  $id . ".jpg" ;

    switch (
    $id ) {
      case 
    'forum' :
        
    $page  "forum/gaestebuch.php" ;   //geht nicht, relativer Pfad
        
    break;
      case 
    'gallery' :
        
    $page  'gallery2/' //geht genauso nicht wegen relativem Pfad
        
    break;
      default:
        
    $page  $id . ".php" ;
    }
    ?>
    <body>


    <div id="header"><?php  include( "navigation.php" );  ?></div>
    <div id="content"><?php  echo  file_get_contents ( $page );  ?></div>
    </body>
    </html>
     
  4. 15. November 2008
    AW: Page Content dynamisch einfügen

    das problem hab ich auch paar mal gehabt. ne schnelle und effektive lösung außer frames habe ich nicht gefunden. (wollte nen forum als einbinden in die seite)

    die einzige alternative ist, wenn du schon fertige unterseiten hast, diese mit include einzubinden. um die sache mit den stylesheets zu umgehen hab ich dann dynamische link-tags benutzt
    PHP:
    if( $site  ==  'foo' )
    echo 
    '<link rel="stylesheet" type="text/css" href="' . $site . '.css" />' ;

    wenns eine bessere lösung gibt, würde mich das auch interessieren.
     
  5. 15. November 2008
    AW: Page Content dynamisch einfügen

    Warum lädst du die Unterseiten nicht direkt in dem Switch / Case?


    Und wegen Frames:
    Ich würd entweder die Navileiste durch ne PHP-Funktion generieren lassen und immer die ganze Seite neu laden oder aber den Content per Ajax (Stichwort XMLHttpRequest) nachladen... aber nicht in nen Frame!
     
  6. 15. November 2008
    AW: Page Content dynamisch einfügen

    hier liegt der Fehler:
    PHP:
    [ PHP ] $id  $_GET [ 'id' ];
    $picture  $id . ".jpg" ;

    // [...]

      
    default:
        
    $page  $id . ".php" ;
    Das hier würde auch funktionieren:

    deineseite.com/index.php?id=config
    oder
    deineseite.com/index.php?id=../../../../etc/passwd%00

    Jemand kann also Scripte einbinden wie er es möchte.
    Und sogar das Bild könnte man so ausnutzen!

    Also entweder du "switchst" alle Erlaubten elemente, oder du lässt dir was mit id's einfallen und speicherst das ganze in ner Datenbank. Eventuell kannst du dir auch noch die Techniken der Frameworks (zend und co) abschauen...
     
  7. 15. November 2008
    AW: Page Content dynamisch einfügen

    Du sprachst davon, dass du Coppermine benutzt, wie wirkt sich das aus?

    Dynamische Inhalte habe ich persönlich bisher oftmals mit folgendem Code gelöst
    PHP:
    if ( $_GET [ 'id' ])  $id  addslashes ( $id );
    if (
    file_exists ( "./" . $id . ".php" )) include( "./" . $id . ".php" );
    @dermuedejoe: in JavaScript benutzt man +, in PHP aber schon sehr lange (will nicht sagen immer) .
     
  8. 16. November 2008
    AW: Page Content dynamisch einfügen

    Jo habs grad gesehen... Nachtürlich ist das so... Habs verrissen
     
  9. 16. November 2008
    AW: Page Content dynamisch einfügen

    Die Coppermine Gallery (wie auch mein Gästebuch) laden einfach die zusätzlichen Dateien wie MySQL DB, CSS file etc. nicht. Ich weiss, man könnte die Pfade auch in www.firmen.seiten.ch - Verzeichnis Schweizer Firmen angeben, jedoch suche ich nach einer vielleicht noch einfacherern Methode, da es für die Gallery doch einen sehr grossen Aufwand währe alle Links zu finden.

    Vielen Dank schonmal allen, die eine Antwort geschrieben haben!
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.