Potrebovala bych poradit...jak docilim toho, aby se mi oteviraly stranky uvnitr jine stranky (pouze v jeji casti)
Umim tak trochu zatim jen html a css...a tak nevim, jak toho docilit.
Dela se to Java scriptem?
(doufam, ze jm to naspala alespon trochu srozumitelne :-/ )
asi bych to vyřešil iframe (volně plující rám) ... ale jsou určuitě i jiný možnosti, nevim
IFRAME asi nebude to nejlepší řešení. Zkus si trochu prostudovat PHP a funkci "include()", která ti vloží soubor na místo, ksde se ti to hodí.
Nejlépe, když máš ve stránce hlavičku nahoře, vlevo hlavní menu (všechno srovnaný v tabulkách) a do toho zbytku si vkládáš jednotlivý soubory.
<table>
<tr>
<td>
<? include("nejaky_soubor.php"); ?>
</td></tr></table>
Dále je nutný, aby všechny soubory končily příponou php namísto htm či html.
Dekuju za odpovedi :-)
No, ja nepouzivam tabulky, ale <div> absolutne polohovany a rada bych, aby se to otevrelo v nem.
No a pak mi jde o to, ze pod tou hlavickou mam navigacni bar...kde je asi 6 odkazu...a chtela bych, aby se po kliknuti v tom urcitym <div>u otevreli.
To iframe mam hledat v cem? To je taky PHP?
Nevim kam si to zaradit :-/
To jsem ještě já, Petr. Teď jsem si vzpoměl na podobnej způsob, kterej vypadá na první pohled možná trochu složitěji, ale je o moc lepší.
Budeš mít jeden soubor - index.php - ,nejlépe tabulkově rozdělenej, nahoře hlavičku (jedna tabulka), nalevo halvní menu (druhá tabulka) a vedle třetí tabulku, kde si budeš pomocí PHP skriptu vkládat jednotlivý soubory. Do té třetí tabulky vložíš tento skript:
<?
$filename = $id . ".php";
if (File_Exists ($filename)):
include $filename;
else:
include "zakladni_soubor.php";
endif;
?>
Tím základním souborem ve skriptu bude soubor, kterej se ti načte do stránky při automatickém spuštění souboru index.php (bude v něm třeba uvítání atd.)
V hlavním menu budou mít odkazy následující podobu:
<a href="index.php?id=soubor_1">První odkaz</a>
<a href="index.php?id=soubor_2">Druhý odkaz</a>
<a href="index.php?id=soubor_3">Třetí odkaz</a>
<a href="index.php?id=soubor_4">Čtvrtý odkaz</a>
Pokud budeš mít soubor v jiném adresáři než soubor index.php:
<a href="index.php?id=./nazev_adresare/soubor">Pátý odkaz</a>
Budeš mít tedy hlavní soubor index.php a ostatní se ti budou jen na tvoje zvolený místo načitat po kliknutí na odkaz. Za otazníkem následuje "id=" a název souboru, který se má vložit. Všimni si, že v adrese je bez přípony, protože přípona "php" se nachází už v první řádce PHP skriptu. Skript je dále zařízen tak, že pokud by si uvedla neexistující soubor, zobrazí se ti po jeho kliknutí na odkaz soubor "zakladni_soubor.php".
Napiš jestli ti to bude fungovat!
Petr
Jasne, diky moc :-)), tomu i dokonce docela rozumim :-)).
Jeste jednou dekuju...vyzkousim to a ozvu se.
Tak mi to funguje...diky moc...strasne si mi pomohl :-)
2Punkie:
Tento problém se řeší buď rámy (ale na ty se vykašli, dnes už se zavrhují a nejsou tzv. "bezbariérové") nebo nějakým server-side skriptováním (pro tebe tedy nejlépe asi php).
Petr ti to popsal docela dobře.
Máš prostě jednu stránku index.php, která obsahuje všechny společné prvky, jakými jsou hlavička, menu, patička atd. Vlastní obsah stránky (tedy stránka, kterou si žádáš) se do něj načte pomocí příkazu include (popř. require).
Z důvodu bezpečnosti je ale lepší nepřenášet v http požadavku (index.php?page=stranka) přímo jméno stránky. Stačí nějaký její identifikátor.
Zrovna toto řešení jsem psal někomu jinému před pár týdny:
index.php
<?php
$pages = Array (
'default' => Array ('./default.php', 'Moje stránky'), // hlavni stranka
'historie' => Array ('./historie.php', 'Moje stránky: historie'),
'profil' => Array ('./profil.php', 'Moje stránky: profil'),
'odkazy' => Array ('./odkazy.php', 'Moje stránky: zajímavé odkazy')
);
$use_page = 'default';
if (IsSet($_GET['page']))
{
if (IsSet($pages[$_GET['page']]))
$use_page = $_GET['page'];
}
// zacatek vlastni stranky
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title><?php echo $pages[$use_page][1]; ?></title>
</head>
<body>
......hlavicka, menu......
<?php require $pages[$use_page][0]; ?>
......paticka......
</body>
</html>
Pavel: To je uz trosku slozitejsi...ale mrknu urcite na to...diky moc :-)
Jinak nerozumim ty bezpecnosti...proc je tohle bezpecnejsi?
Protože tím původním řešením můžeš includovat i nějakou "nepravost" ;-)
Z URL získáš stránku, která se má zobrazit. Pokud použiješ:
include $stranka.".php";
popř. File_Exists($stranka.".php")
a zkušený zlomyslný uživatel zadadá za index.php?stranka=nějaký_nebezpečný_kód, může to přinést problémy.
Takto, když zadá něco jiného, než je obsaženo v seznamu povolených stránek (pole $pages), zobrazí se mu hlavní stránka.
Více tady:
http://interval.cz/clanek.asp?article=1304
Pavel:tak jsem si s tim dneska chvili hrala...a to tvoje mi bohuzel nefunguje...jelikoz tomu nerozumim...tak s tim nehnu :-(..ale diky za snahu
to Pavel:
mne to tvoje reseni furt vrta hlavou...nemuzu si pomoct, tak pisu...
dokazu to zprovoznit tak, aby mi tam nabehla ta defaultni stranka (no, na tom nic neni...hihi)
Jak ale mam napsat ten odkaz...kdyz chci otevrit treba historii?
Mne se to pokazdy otevre v novym okne a ne na ty puvodni strance.
To punkie:
Jestli chceš pošlu ti kus stránek, kde to funguje napiš mi jen na mail (to mě to totiž Pavel radil :-)
To Pavel:
Víš co je zajímavé? Na netu mi to normálně funguje a pokud se to pokusím "napadnout" tak mi to hodí hlášku, kterou si zadám. Doma na triádě mi to ale nefunguje a hází mi to chybu v tomhle řádku: if(file_exists($arr_stranky[$index]['file'])) Jinak to ale opravdu jde. Nevíš čím by to mohlo být? Není to nějakým nastavením triády?
Díky