Template splitten
lima-city → Forum → Die eigene Homepage → Homepage Allgemein
absatz
anweisung
ausgeben
bayer
beispiel
bewerten
code
datei
extra http
file
header
host
inhalt
prinzip
problem
scheinbar schlechte strukturierung
sicherheit
text
url
vorgehensweise zeigen
-
Hallo :)
Ich wollte euch fragen, ob ihr wisst ob man das so lösen, kann bzw ob irgendetwas dagegen spricht das Template zu splitten, und ob die Seite dadurch irgendwelche Sicherheitslücken aufweisen kann.
Das Prinzip funktioniert bei mir jedenfalls.
Ich habe ein Template erstellt, dass die Form der Seite darstellt, und je nach dem auf welcher Seite man sich befindet soll sich eben ein anderer Inhalt befinden.
Ich habe das dann so gelöst.
Ich habe das Template zuerst bis zu <div id="content"> gemacht und dann unter formopen gespeichert. Dann hab ich eine zweite Datei, formclose gemacht und dann in dieser Datei den Rest noch geschlossen und den footer hinzugefügt. Es fängt also mit </div> (von id="content") an.
Jetzt wenn ich einen Inhalt will brauch ich nur noch include formopen dann den ganzen Inhalt schreiben und dann include formclose.
Der Code dazu: (Nochmal, das Prinzip funktioniert an und für sich)
formopen.php (Den Code könnt ihr ignorieren es geht nur um das Prinzip)
<?php if (session_status() == PHP_SESSION_NONE) {session_start();}; $file = $_SERVER['SCRIPT_FILENAME']; if(strpos($file, 'quote.php')) { $swap = FALSE; if(isset($_SESSION['userID'])) { $user = TRUE; } else { $user = FALSE; } } else { $swap = TRUE; $user = TRUE; } if (!isset($_SESSION['uname']) AND $swap ) { $host = $_SERVER['HTTP_HOST']; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); $extra = 'index.php'; session_destroy(); header("Location: http://$host$uri/$extra"); }; ?> <DOCTYPE html> <head> <link href="CSS/css_form.css" rel="stylesheet" type="text/css"> <link href="CSS/css_ticker.css" rel="stylesheet" type="text/css"> <link href="CSS/css_quote.css" rel="stylesheet" type="text/css"> <link href="CSS/css_newquote.css" rel="stylesheet" type="text/css"> <link href="CSS/css_menu.css" rel="stylesheet" type="text/css"> <link href="CSS/css_noaccount.css" rel="stylesheet" type="text/css"> <link href="CSS/css_follow.css" rel="stylesheet" type="text/css"> <link href="CSS/css_settings.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <!-- http://code.jquery.com/jquery-latest.js --> <script type="text/javascript" src="JS/js_form.js"></script> <script type="text/javascript" src="JS/js_ticker.js"></script> <script type="text/javascript" src="JS/js_open_user.js"></script> <title>Quotelima</title> <link rel="shortcut icon" href="http://atraxoo.lima-city.at/favicon.ico" type="image/x-icon"> <link rel="icon" href="http://atraxoo.lima-city.at/favicon.ico" type="image/x-icon"> </head> <body> <div id="headingfix"> <div id="heading"> <a href="home.php"><img src="logo.png" class="logo"/></a> <div id="ticker"> <p class="quote">Don't hate, donate</p> <p class="dash">- </p> <p class="author">atraxoo</p> </div> </div> </div> <div id="main"> <div id="maincontent"> <?php if($menu) { include('menu.php'); } if(!$user) { include('noaccount.php'); } ?> <div id="content">
formclose.php </div> </div> </div> <div id="footer">Footer</div> </body> </html>
und dann die datei, also irgendeine seite in der dann der inhalt definiert wird
<?php $menu=TRUE; include('formopen.php'); ?> <p>INHALT</p> <?php echo 'INHALT'; ?> <?php include('formclose.php'); ?>
Beitrag zuletzt geändert: 20.2.2015 16:54:09 von atraxoo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mit der Sicherheit gibt es da kein Problem. Du könntest vielleicht die formclose.php mit readfile, anstatt mit Include ausgeben, weil du dort kein PHP verwendest.
Störend wirkt auf mich die dadurch scheinbar schlechte Strukturierung.
Beispiele:
- HTML Quelltext wird in zwei Dateien zerrissen. (Stell dir mal vor, du hättest meht als eine Variable und noch mehr Bruchstücke)
- Die PHP-Anweisungen, die du immer mit ausführst stehen in der gleichen Datei wie das erste HTML-Bruchstück
Unabhängig davon mischst du immer wieder HTML und PHP.
Ich möchte als Alternativlösung für dieses Problem hier noch meine Vorgehensweise zeigen.
Ich habe z.B. das folgende HTML Template, in dem eine Überschrift und ein Text dynamisch eingebaut werden können:
template.html<!doctype html> <html> <head> <title>Überschrift und Text</title> <meta charset="utf-8"> </head> <body> <h1>$ueberschrift</h1> <p>$absatz</p> </body> </html>
Dieses wird jetzt so in PHP verwendet:<?php $ueberschrift="Testsatz"; $absatz="Franz jagt im komplett verwahrlosten Taxi quer durch Bayern."; $template=file_get_contents("template.html"); eval("echo <<< EndOfTemplate $template EndOfTemplate;\n"); ?>
Ihr dürft gerne mal gegenüberstellen und bewerten. -
fuerderer schrieb:
Ich möchte als Alternativlösung für dieses Problem hier noch meine Vorgehensweise zeigen.
Ich habe z.B. das folgende HTML Template, in dem eine Überschrift und ein Text dynamisch eingebaut werden können
?>[/code]Ihr dürft gerne mal gegenüberstellen und bewerten.
Da alles im template, bis auf den content immer gleich bleibt, ist das ja nicht notwendig oder?
Du könntest vielleicht die formclose.php mit readfile, anstatt mit Include ausgeben, weil du dort kein PHP verwendest.
Störend wirkt auf mich die dadurch scheinbar schlechte Strukturierung.
Beispiele:
- HTML Quelltext wird in zwei Dateien zerrissen. (Stell dir mal vor, du hättest meht als eine Variable und noch mehr Bruchstücke)
Eben genau darum geht es in meinem Prinzip, dass eben der html code auseinandergerissen wird. Ich finde es dann aber unheimlich praktisch den ganzen Code für den content einfach dazwischen zu definieren, und nicht dann nocht durch irgendwelche variablen oder sonstigem hineinzubekommen.
Und sofern genau das 'erlaubt' ist, also dadurch keine Sicherheitslücken oder Ähnliches entstehen finde ich, dass es eine gute Lösung wäre.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage