Autor Zpráva
pyty
Profil
povedzme že mám v bunke tabuľky vloženu stránku pomocou <? include "daco.htm"; ?>.
//to je pri nacitani stranky//
ako mam urobiť, aby sa po kliknutí na odkaz v menu namiesto daco.htm objavila ina.htm ?
tHx
DoubleThink
Profil *
<? include $obsah; ?>.

a odkaz by pak vypadal takto:

stranka.php?obsah=ina.htm

Toto je základní princip - je dobré jej doplnit ještě o kontrolu, jestli soubor existuje, nebo případně nepřenášet celé názvy souborů, ale jen části.
pyty
Profil
OK; ale ako to urobit; aby tam bola ta stranka po nacitani ?
Yuhů
Profil
Navážu na DoubleThinkovu odpověď. Nejsem si jistý, jestli to napíšu správně, ale v zásadě se zeptáš, jestli je ta proměnná naplněná a jestliže není, tak tam dáš nějakou defaultní hodnotu:

<?
if ($obsah) $obsah = "daco.htm";
include $obsah;
?>

Ještě poznámka -- nesmíš o tom přemýšlet tak, že se mění to menu, protože ve skutečnosti se mění úplně celá stránka (má pak jiné URL).
Arthur Dent
Profil
Ještě k DoubleThinkovu příspěvku - z hlediska bezpečnosti je to to nejhorší možné řešení, protože umožňuje přímo si vybrat jaký soubor chcete vložit. Pak stačí podvrhnout jiné jméno a neštěstí může být dokonáno.

Doporučuji tedy stejný postup, ale poněkud bezpečnější:

<?
$obsah='spatna_volba.html'; //tato stranka se zobrazi pokud nekdo podvrhne cislo


if (!isset($_GET['obsah'])) $obsah='uvodnistranka.html';

if ($_GET['obsah']==1) $obsah='daco.html';
if ($_GET['obsah']==2) $obsah='volaco.html';
if ($_GET['obsah']==3) $obsah='daco_ine.html';

include $obsah;
?>

Jinak - tvar $_GET['cosi'] je od verze PHP4 doporučený tvar pro odkazování se na parametry předané v URL, navíc PHP v novějších verzích má po instalaci defaultně vypnuté parsování těchto parametrů do proměnných - neplatí tedy, že ve skriptu "stranka.php", volaném jako "stranka.php?x=1" máte na začátku přístupnou hodnotu $x. Nemáte a musíte si pro ni sáhnout do globálního pole $_GET. Takže na "nové" instalaci PHP ten DoubleThink-ův příklad neudělá nic...
Anonymní
Profil *
a jak ma vyzerat odkaz na tu stranku napr 3 ?
DoubleThink
Profil *
stranka.php?obsah=3
Anonymní
Profil *
mne to stale vklada hore aj tu starnku
if (!isset($_GET['obsah'])) $obsah='uvodnistranka.html';
a az pod nu ten obsh ... ??? preco
Yuhů
Profil
nejsme kouzelníci. Z takhle malého kousku kódu se problém IMHO nedá zjistit.
Xzilt02
Profil *
A co pomocí

switch ($obsah) {
case "obsah": $inc = "daco";
break;
... ... ...
default: $inc = "uvodni";
}
include "$inc.html";

projede jednotlivé možnosti a když tam je cokoli jiného, než co jsme nadefinovali, hodí tam defaultní stránku. Nešlo by?

Jinak vkládat soubor s příponou HTML je trochu nešikovné, protože platné html musí obsahovat <html></html>, což v případě souboru vloženého do jiné stránky vede k tomu, že mám dokument s dvěma páry tagů <html>, pravděpodobně i zdvojené <body> atd. Lepší řešení by bylo udělat si nějakou šablonu a pouze do jednoho z <div>ů potom 'include'm načítat jen část(!) kódu. (aby se pořád nemuselo opakovat vypisování <html...><head>........</head><body>.....</body><html>, když se mění prakticky pouze <body>. To bude možná problém pisatele, že vkládá 2 celé html stránky do sebe, čili do jedné se mu vloží celá druhá, včetně menu apod. I když z tak malého kousku jsem to možná pochopil trošku jinak, než bylo myšleno
iklu
Profil *
dobry den wsetkym !!!
ja mam tiez taky problem, ze mam v bunke tabulky :

<?
$obsah='spatna_volba.html'; //tato stranka se zobrazi pokud nekdo podvrhne cislo


if (!isset($_GET['obsah'])) $obsah='uvodnistranka.html';

if ($_GET['obsah']==1) $obsah='daco.html';
if ($_GET['obsah']==2) $obsah='volaco.html';
if ($_GET['obsah']==3) $obsah='daco_ine.html';

include $obsah;
?>

a odkaz: index.php?obsah=2

hej, a na zacitku sa mi v bunke objavi uvodnistranka.html, ale ked kliknem na odkaz
na index.php?obsah=2 zobrazi sa mi najprv strnka uvodnistranka.html a pod nou
obsah=2 cize volaco.html
poradte mi pleas ako to odstranit

PS: ako je to potom zo stylmi ? interpretuju sa styly z hlavnej, alebo nacitanje stranky alebo su osobitne ? A co ked su dva rovnake premenne z roznymi hodnotami //jedna v hlevnej stranke , druha v nacitanej//

PS2: pisete ze by sa nemali vkladat 2 stranky z <html> <body> <head>....
a nemozem ulozit do html len obsah ? bez html body head ?
a neje dajaky format pre ukladanie obsahu a vkladanie do php :::
mari sa mi ze som mal jeden script //asi na guestbook// a tam sa ako hlavicka aj päticka vkladal subor,
z dajakou priponou ktoru si uz nepametam a bol tam len <div>... a obsah neviete co to asi bolo ?
dikky cawte allllllllll
Anonymní
Profil *
daco.body daaco.dat myslim..
Toto téma je uzamčeno. Odpověď nelze zaslat.