Ha dinamikus oldalt hozok létre, akkor egyetlen egy php fájlra van szükségem csak?
Nyilván include-olom a fejlécet meg a láblécet, de egyébként minden más tartalmat adatbázisból hívok le? Van egy index.php, és a többi meg id szerint megy mondjuk úgy, hogy
if ($_GET["id"])="kezdolap"))
adatbázisból lehívom a megfelelő értéket
Így megy? Mert nem akadály, meg tudom csinálni, csak nem tudom hogy szokás. Egyetlen lapból is el tudom készíteni az egészet. Az a legjobb, vagy az a legrosszabb megoldás?
Legrosszabb megoldás.
Ha mindent egyetlen php file-ba sűrítesz bele, pláne ha nem csak a kód, hanem a HTML layout is benne van, abból egy átláthatatlan, kezelhetetlen katyvasz lesz, amit később nem fogsz tudni már te sem bővíteni, vagy hibát keresni benne!
1. Olyan lehet, hogy a web felé egyetlen php file szolgál ki mindent, legtöbb CMS és framework így működik, de mindegyiknél csak egy loader van az index.php-ben
2. Modulokra kell szedni. Egy funkció egy modul. Ne keverj pl egy user logint egy fórum post rögzítésével.
3. Kódot és HTML-t válaszd külön, használj template-eket, különben nagyon nehéz lesz a legapróbb design beli változtatás is
Ha nem használsz semmilyen keretrendszert, a fentiek akkor is állnak!
Simán. Én úgy csinálnám, hogy mondjuk egy oldalak mappában tárolnám az oldalak tartalmát (mondjuk html formátumban), és a get változó a fájl nevét tartalmazná. Pl. az oldal1.html betöltéséhez a fejlécben az id változó az oldal1 értéket kapja (index.php?id=oldal1) és akkor a php így nézne ki:
if(file_exists("oldalak/".$_GET['id'].".html")){ //először is megnézi, hogy létezik-e a fájl
include("oldalak/".$_GET['id'].".html"); //ha létezik, betölti az oldal azon részére, ahol ez a kód található
}else{
include("notfound.html"); //ha nem, akkor egy notfound.html fájl tudatja a felhasználóval, hogy a keresett oldal nem található
}
#3 vagyok megint
#2-nek annyiban igaza van, hogy nagyobb terjedelmű oldalak átláthatatlanná válhatnak így, de kezdeti megoldásnak ezt javaslom.
Ez érdekes olvasmány lehet:
Én így oldottam meg:
<?php
@$page = $_GET['page'];
if(empty($page)){
Header("Location: index.php?page=home");
}elseif(file_exists("pages/".$page.".php")){
include("pages/".$page.".php");
}else{
Header("Location: index.php?page=404");
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!