Autor | Zpráva | ||
---|---|---|---|
Taras Profil * |
#1 · Zasláno: 25. 7. 2008, 12:23:08
S phpckom len zacinam a doteraz som vkladal casti stranky tym sposobom ze na kazdej stranke pomocou include som vlozil hlavicku a paticku, ale dociatal som sa ze to ide aj tak podobne ako pri iframe ze sa meni len unikatna cast stranky. Nejak tak ze nieco.sk/index.php?vloz=kontakt pricom kontakt bude kontakt.php alebo .html... ale ako definovat to ze kontakt je kontakt.php?alebo existuje nejaky cesky alebo slovensky manual. Dakujem
|
||
Nox Profil |
#2 · Zasláno: 25. 7. 2008, 12:31:53
První způsob je podle mě lepší (minimálně pokud je jen jeden parametr), ale pokud bys to mermomocí chtěl dělat takto, tak třeba:
if(isset($_GET["vloz"]) and file_exists($_GET["vloz"]."php")){ include $_GET["vloz"]."php"; } else{ include "uvod.php"; } |
||
Taras Profil * |
#3 · Zasláno: 25. 7. 2008, 12:49:58
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> </head> <body> Hlavicka <a href="index.php?vloz=page">Stranka 1</a> <a href="index.php?vloz=page0">Stranka 2</a> <?php if(isset($_GET["vloz"]) and file_exists($_GET["vloz"]."php")){ include $_GET["vloz"]."html"; } else{ include "uvod.html"; } ?> </body> </html> takto som to urobil..a stale mi to ide cez else |
||
Nox Profil |
#4 · Zasláno: 25. 7. 2008, 12:57:21
if(isset($_GET["vloz"]) and file_exists($_GET["vloz"]."php")){ include $_GET["vloz"]."html"; }
zapomněl jsi změnit koncovku |
||
Matty Profil |
#5 · Zasláno: 25. 7. 2008, 12:59:05
Nox
Chybí ti tam tečky před koncovkami. |
||
Megaloman Profil * |
#6 · Zasláno: 25. 7. 2008, 12:59:43
To co ty chceš je opačný přístup k tomu co děláš - místo vkládání NEunikátních částí stránky do unikátní části chceš udělat vkládání unikátních do NEunikátních...
Definovat, že kontakt má inkludovat kontakt.php můžeš podle Noxe, nebo pomocí switch konstrukce: switch ($_GET['vloz']) { case 'kontakt': $include = 'contact'; break; case 'moje-zaliby': $include = 'my-....'; break; default: $include = 'hlavni-stranka'; } $include .= '.php'; require_once('cesta-k-includovanym-souborum' . $include); Toto řešení je krapet bezpečnějčí, než to od Noxe, protože ti nedovolí inkludovat soubor, který k tomu není určen a pokud soubor neexistuje, tak celý skript zakončí chybou. |
||
Taras Profil * |
#7 · Zasláno: 25. 7. 2008, 13:01:24
Diky moc...som ti neuveritelne zaviazany...vdaka
|
||
Taras Profil * |
#8 · Zasláno: 25. 7. 2008, 13:04:52
Megaloman
Ja viem...ale takto by som musel asi vymenovat vsetky stranky vo switchi ktore tam mam. Ja vlastne ani nepotrebujem vyriesit to include, ale prist nato ako sa to robi na profesionalnych strankach. Ako to robite vy na svojich strankach? |
||
Megaloman Profil * |
#9 · Zasláno: 25. 7. 2008, 13:16:23
Taras
Normálně to dělá tzv. router, tedy kus skriptu (nebo objekt), který z GET parametrů vytáhne, co chtěl uživatel vlastně vidět. Pokud některý z parametrů není definován, použije se implicitní, pokud některý z parametrů má neznámou hodnotu, tak to hodí 404. Router pak vytvoří příslušné objekty a prolinkuje je pomocí referencí (nebo jednoduše jen inkluduje příslušné skripty). Odpovídá to architektuře MVC... Odkaz pak vypadá: www.cosik.cz/index.php?model=clanek&pohled=xhtml&kontroler=cist&id_cla nku=102563 A router zavolá/inkluduje příslušné části skriptu, podle kterých ví, že uživatel chce zobrazit článek v xhtml číslo 102563. Nebo s mod_rewrite to může vypadat takto: www.cosik.cz/clanek/102563.htm Pokud by tě zajímalo víc, hledej vzor MVC, Model-Pohled-Kontrolér nebo Model View Controller |
||
Nox Profil |
#10 · Zasláno: 25. 7. 2008, 13:22:36
Ako to robite vy na svojich strankach?
<?php require "top.php"?> obsah <?php require "bottom.php"?> Nemusím se starat o bezpečnost, chybějící soubory, nehezké adresy (max. jen odstřelím ".php") |
||
Časová prodleva: 16 let
|
0