Wie datei.php laden

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

  • Wie datei.php laden

    Hi all,

    bin noch totaler newbie in sachen PHP aber will diesen umstand gerne ändern


    Die Dateien:

    index.php

    PHP-Code:
    <?PHP    error_reporting(E_ALL);    

    require(
    'inc/config.inc.php'); 

    if(! isset(
    $_SESSION['userLoggedIn']))  {      
    $_SESSION['userLoggedIn'] = false;        
         }    
          
    $html loadTemplate($templates['index']);

    if(!isset(
    $_GET['load']) || $_GET['load']==""
         {  
        
    $_GET['load'] = 'news';
         }   
    switch(
    $_GET['load'])  {  
        case 
    'logout':          
    $_SESSION['userLoggedIn'] = false
             
    session_destroy(); 
             
    header('Location: index.php');          
    exit;      

    default:           
    if(
    file_exists($incDir[$_GET['load']].".inc.php"))  {      
           

           include(
    $incDir[$_GET['load']].".inc.php");  
            }          
    elseif(isset(
    $templates[$_GET['load']]))  
            {              
    $pageHtml loadTemplate($templates[$_GET['load']]); 
             }
              else
              {  
    $pageHtml loadTemplate($templates['fehler']);
              }  
    }    
    if(
    $_SESSION['userLoggedIn'] == true)  {      
                      
    extractHTML($html'LOGIN''');  
        
    if(
    $_SESSION['admin'] == 0)      { 
             
    extractHTML($html'ADMIN''');      

    }  
    else  
    {      
    extractHTML($html'LOGOUT''');  
        
    extractHTML($html'ADMIN''');  
    }    
    echo 
    str_replace('%%LOAD_PAGE%%',$pageHtml$html); 
     
    ?>
    config.inc.php
    PHP-Code:
    <? 
    require('connect.inc.php');  
    require('funktion.inc.php');
            
    $rootDir = $_SERVER['DOCUMENT_ROOT'].'/';
    $incDir = $rootDir.'inc/';  
    $templateDir = $rootDir.'tpl/';    

    $templates =    array('index'   =>    $templateDir.'index.html',
                                         'admin'  =>    $templateDir.'admin.html', 
                                         'logout'  =>    $templateDir.'logout.html', 
                                         'login'    =>    $templateDir.'login.html',
                                         'fehler'  =>    $templateDir.'fehler.html',
                                         'news'   =>    $templateDir.'news.html',
                                         'register' =>    $templateDir.'register.html',
                                        'forward' =>    $templateDir.'forward.html',
    );  
     if (eregi("config.inc.php",$_SERVER['PHP_SELF']))  { 
         Header("Location: index.php");      
    die(); 
    }                  
    ?>
    funktion.inc.php

    PHP-Code:
    // template funktion  
    function extractHTML(&$src$ilker$replacement) {
          
    $s strpos($src'<!--'.$ilker.'_START-->');
          
    $e strpos($src'<!--'.$ilker.'_END-->');
          if((
    $s === false) || ($e === false)) {
              return 
    '';      
    } else {
              
    $s2 $s strlen('<!--'.$ilker.'_START-->');
              
    $e2 $e strlen('<!--'.$ilker.'_END-->');
              
    $tmp substr($src$s2, ($e-$s2));
              
    $src substr_replace($src$replacement$s, ($e2-$s));
    return 
    $tmp;
          }
      }  

    function 
    loadTemplate($templateFile) {
          if(
    file_exists($templateFile)) {
              
    $html file_get_contents($templateFile);
          } else {
    trigger_error('template file '.$templateFile.' not found'E_USER_ERROR);
      }  return 
    $html;
      } 
    Die dateien sind in den unterordnern /inc und die html templates im /tpl unterordner.

    So mein Problem ist das zwar die HTML dateien geladen
    werden aber ich nicht weis wie ich z.b die news mit auf die startseite bekomme.
    Habe eine news_output.php die auf die mysql db zugreift und die entprechenden news ausliest.
    Wenn ich die datei direkt aufrufe funzt diese auch.

    Diesen code habe ich von einem bekannten bekommen der leider keine Zeit hat wegen Prüfung. Habe auch einiges daran verändert ist also nicht mehr ganz das original.

    Kann mir wer da helfen ?

  • #2
    Mittels require() kannst du die Output.php in jede beliebige Seite einbauen. Du musst nur darauf achten, dass die output.php kein komplettes HTML Gerüst liefert (sonst werden das die Browser gar nicht mögen).
    z.B.
    Code:
    <html>
    <head>
    <title>Meine News</title>
    </head>
    <body>
    <?php require('pfad_zur_datei/output.php');?>
    //Rest des html Codes
    ....
    </body>
    </html>
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      hi, danke für die Antwort ^^

      habe das versucht, ohne Erfolg

      Allerdings dachte ich das wenn ich templates benutze das keine php in html nötig ist, so das beides komplett voneinander getrennt ist.


      MfG

      ShockWave

      Kommentar


      • #4
        Hi,

        Ich verweise einfach mal auf meine Signatur, da gibts einen Artikel zu Templates für Einsteiger inklusive leicht nutzbarer Template-Engine.

        Gruß Thomas

        Kommentar


        • #5
          jo vielen Dank,

          werde mir das genauer anschaun

          Kommentar

          Lädt...
          X