Autor Zpráva
vojtinec
Profil
Mam problem s includem obsahu...jsem začátečník s php. Inkluduji stranku 1.html, ovšem když kliknu v menu na jakoukoliv jinou další inkludovanou stranku, tobrazi se pod strankou 1.html...jako že bych potřeboval aby se inkludované stránky vystřídaly...kód:

<table id="pozice">
<tr>
<td>
<a href="hlavni.php?stranka=novinky">
<b>Novinky</b></a>
</td>
<td>
<a href="hlavni.php?stranka=zaliby">
<b>Záliby</b></a>
</td>
<td>
<a href="hlavni.php?stranka=fotky">
<b>Fotky</b></a>
</td>
<td>
<a href="hlavni.php?stranka=media">
<b>Media</b></a>
</td>
<td>
<a href="hlavni.php?stranka=ejdm">
<b>Ejdm</b></a>
</td>
<td>
<a href="hlavni.php?stranka=forum">
<b>Forum</b></a>
</td>
</tr>
</table>
</div>
<div id="obsah">
<?
if (!isset($_REQUEST['novinky'])) { include ("stranky/novinky.html"); };
if ($_REQUEST['stranka'] == 'zaliby' ) { include ("stranky/zaliby.html"); };
if ($_REQUEST['stranka'] == 'fotky' ) { include ("stranky/fotky.html"); };
if ($_REQUEST['stranka'] == 'media' ) { include ("stranky/media.html"); };
if ($_REQUEST['stranka'] == 'ejdm' ) { include ("stranky/ejdm.html"); };
if ($_REQUEST['stranka'] == 'forum' ) { include ("stranky/forum.html"); };
?>
</div>
krteczek
Profil
Já vím, že Ti teď asi zamotám hlavu na první pohled složitou věcí, ale ona je ve své podstatě velice jednoduchá. Jde o to, že názvy jednotlivých stránek můžeš uložit do array (pole), kde název stránky, který posíláš v adrese bude klíč a jméno souboru, který opravdu includuješ bude hodnotou. Jednoduše můžeš přidat další stránku jen přidáním položky do pole.
$array= array(
	'zaliby' => 'zaliby',
	'fotky' => 'fotky',
	'media' => 'media',
	'ejdm' => 'ejdm',
	'forum' => 'forum',
);
if((!empty($_GET['stranka'])) && (array_key_exists($_GET['stranka'], $array)))
{
	// sestavíme cestu k požadovanému souboru a ten includujeme
	include('stranky/' . $array[$_GET['stranka']] . '.html');
}
elseif(!empty($_GET['stranka']))
{
	echo '<p>Požadovaná stránka neexistuje</p>';
}
else
{
	echo 'vítejte na uvodní stránce';
}


Z takového pole, pokud ho lehce upravíme, jde jednoduše i vygenerovat menu ;)
vylepšené pole
$stranky= array(
	'zaliby' => array(
		'cesta' => 'zaliby', 
		'txt' => 'Záliby',
	),
	'fotky' => array(
		'cesta' => 'fotky',
		'txt' => 'Fotogalerie',
	),
// a tak se dá pokračovat dál s dalšími stránkami
);

function menu($array)
{
	$menu = "\n<ul>\n\t<li><a href="index.php">Úvod</a>';
	foreach($array as $key => $foo)
	{
		$menu .= "\n\t" . '<li><a href="index.php?stranka=' . $key . '">' . $foo['txt'] . '</a>';
	}
	$menu .= "\n</ul>";
	return $menu;
}

tam, kde chcete vložit menu jen přidáte volání funkce:
echo menu($stranky);

// pokud byste použili tento způsob, změnil by se u prvního příkladu jen řádek s include na následující:
include('stranky/' . $array[$_GET['stranka']]['cesta'] . '.html');
vojtinec
Profil
Hm...Tak tomu moc nerozumim. Nevím kam co napsat. Php vubec neumim. ten include je prvni vec, ktera se mi kdy povedla.
krteczek
Profil
vojtinec: tak jsem to vytvořil cele a zabalil a dávám Ti to ke stažení abys viděl jak to funguje, tak tady jsem udělal ukázku

Po rozbalení si otevři soubor: inc/inc.php a nastav v něm tyto proměnné podle svých potřeb (číslo řádku, proměnná):

7. $title: tohle je název portálu, u úvodní stránky ude jen tohle, u ostatních se přidá ještě to co je v txt u odkazu na tuhle stránku:
index => Název tvojí stránky
fotoalbum => Název tvojí stránky: Fotoalbum


11. $getName: jméno proměnné v adrese klidně nech to co tam je

24. $stranky: tak z tohohle se generuje menu, proti tomuhle se kontroluje, jestli obsah proměnné v adrese existuje. co tu není, na to se návštěvník nedostane.

To je vše co je nutno změnit.

A samozřejmě, když se podíváš na index.php uvidíš tam jednoduchou html stránku a v ní, na určitých místech, kousky PHP kódu. Stejným způsobem si můžeš vytvořit svoji vlastní šablonu

Tak mnoho zdaru, nejen Tobě ;)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0