Autor Zpráva
Taras
Profil *
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
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 *
<!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
if(isset($_GET["vloz"]) and file_exists($_GET["vloz"]."php")){ include $_GET["vloz"]."html"; }
zapomněl jsi změnit koncovku
Matty
Profil
Nox
Chybí ti tam tečky před koncovkami.
Megaloman
Profil *
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 *
Diky moc...som ti neuveritelne zaviazany...vdaka
Taras
Profil *
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 *
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
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")

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: