Zdarec.
Je to asi stupidni dotaz ale fakt newim jak to mam udelat abych mel stranky jako je treba tahle :
http://www.flash-help.wz.cz/index.php?page=uvod
Chci se zeptat jak vytvorim neco takovyho :
index.php?page=uvod
Fakt newim.Cucel sem se do zdrojaku ale moc sem si nepomoh:(
no to v php znamená něco takového $page = "uvod"
jak to vytvoříš ? například formulářem na jinou stránku
Nebo přímo odkazem na tu stránku např sem na strance 1.php a chci z ní dostat proměnnou $ff="kk" na stránku 2.php ta udělam odkaz <A HREF="2.php?ff=kk">odkaz</A>
Nechapu jak to mám udělat.
Nemohl by mě tady někdo napsat jenom príklady index.php s odkazem na uvod.php ?
Nebo nakou adresu na ktere to najdu..
Dik.
> Cucel sem se do zdrojaku ale moc sem si nepomoh
Hmm... Zdá se, že mi někdo kouká do kuchyně :)
2Dewil:
Jde ti o to "index.php?page=uvod"?
Takto někdy v PHP nahrazuje "princip rámů", říká se tomu "include systém". Ve stránce index.php je věškerý ten balast, co se opakuje na každé stránce. Pomocí atributu page=cosi určíš, která stránka se má natáhnout "jako obsah".
Pokud si vyžádáš stránku jako stranka.php?udaj1=ahoj&udaj2=cau, pak v PHP skriptu stranka.php budeš mít k dispozici proměnné:
$_GET["udaj1"] = "ahoj";
$_GET["udaj2"] = "cau";
Takže ten "include systém" se dělá takto (příspěvek, který jsem tady už psal) :
................................
Každopádně nepoužívej "index.php?zobraz=neco.htm&title=Úvod". Je to BEZPEČNOSTNÍ DÍRA jak blázen! Uvažuj, co by se stalo, kdyby někdo, kdo php rozumí, napsal místo "neco.htm" nějaký sviňský kód?
Pokud chceš mít jeden soubor a do něj "includovat" ostatní, pak se to dělává takto:
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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title><?php echo $pages[$use_page][1]; ?></title>
</head>
<body>
............
<?php require $pages[$use_page][0]; ?>
............
</body>
V url adrese posíláš jen slovní hesla, podle kterých rozlišíš, která stránka se má použít. V případě, že se pokusí někdo vložit něco nepovoleného, nic se nestane a zobrazí se mu hlavní stránka.
V poli $pages jsou obsaženy jak cesty k jednotlivým souborům, tak také jejich titulky.
Furt nic, stejně to nemělo vliv, byla to jen podmínka, která určila pomocí cookie, jestli se má přístup uložit do databáze, nebo ne, to na vykreslení obrázku nemá vliv. Chyba bude někde jinde, ale kde?
Jééé, sory, ta odpověď nepatřila sem :o))
jo super.funguje:)
teď se tam ale snažím vkloubit vyber jazyku,ale nejde me to.
Mam dva soubory :
slovnik.php (texty v češtině)
dictionary.php (texty v angličtině)
V souboru index.php mam příkaz $jazyk = "slovnik.php";
a potřebuju udělat náký přepínání.zkoušel jsem to,ale nejde.
Přidej druhý parametr:
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')
);
$languages = Array (
'cesky' => './cestina.php',
'english' => './english.php',
);
$use_page = 'default';
if (IsSet($_GET['page']))
{
if (IsSet($pages[$_GET['page']]))
$use_page = $_GET['page'];
}
$use_language = 'cestina';
if (IsSet($_GET['language']))
{
if (IsSet($languages[$_GET['language']]))
$use_language = $_GET['language'];
}
// 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>
............
<?php require $pages[$use_page][0];
require $languages[$use_language]; ?>
...........
</body>
</html>
--------------------------------------------------------------------------------------------
Fungovat to bude, ale toto řešení má jednu velkou nevýhodu. Pokud nechceš, aby si musel uživatel znovu a znovu měnit jazyk na každé stránce, musíš to řešit jinak. Nejlépe pomocí session:
index.php
<?php
Session_Start();
$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')
);
$languages = Array (
'cesky' => './cestina.php',
'english' => './english.php',
);
$use_page = 'default';
if (IsSet($_GET['page']))
{
if (IsSet($pages[$_GET['page']]))
$use_page = $_GET['page'];
}
if (!IsSet($_SESSION['language']))
$language = 'cesky';
else
$language = $_SESSION['language'];
// 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>
............
<?php require $pages[$use_page][0];
require $languages[$language]; ?>
...........
</body>
</html>
--------------------------------------------------------------------------------------------
Proměnou $SESSION aktivuješ tímto způsobem.
Z formuláře, kde se vybírá jazyk pošleš data do skriptu, který bude vypadat asi takto:
set_language.php
<?php
$languages = Array (
'cesky' => './cestina.php',
'english' => './english.php',
);
if (!IsSet($_GET['language']))
{
if (IsSet($_SESSION['language']))))
Unset($_SESSION['language']);
}
else
{
if (IsSet($languages[$_GET['language']]))
$_SESSION['language'] = $_GET['language'];
else
{
if (IsSet($_SESSION['language']))))
Unset($_SESSION['language']);
}
}
if (IsSet($_GET['page']))
$page = $_GET['page'];
else
$page = 'index.php';
Header('Location: http://'.$_SERVER['HTTP_HOST'].'/'.$page);
?>
Na tento skript vždy odešleš vybraný jazyk a taky stránku, kam se má vrátit.
PAVEL
jo super.
Ale nevim jak to mas udelany, ale ja mam v kazdym souboru prikaz :
require $language;
echo $text1;
A tím pádem mě to píše chybu.Nákej jinej způsob na čtení výběru jazyka?
NO chtel jsem to udelat takhle:
index.php
$jazyk="cestina.php";
...
no a ted by tady mel byt nakej prepinac na $jazyk="english.php";
cestina.php
$odkazy="Tady najdete par odkazu na uzitecne stranky...atd";
$uvod="Vitejte na me strance";
$profily="Dewil:16 let atd...";
english.php
to samy co cestina.php ale v angline
uvod.php
require "$jazyk";
echo $uvod;
odkazy.php
require "$jazyk";
echo $odkazy;
atd....
To je můj vlastni vymysl,takže je to takový debilní no,ale...
No, však ano. Takto je to správně.
Ve stránce budeš mít proměnné, které se nahradí textem. Podle toho, který jazyk naincluduješ, se v těchto proměnných vypíše anglický nebo český text.
Řešením je ten můj předchozí "šíleně dlouhý" ;-) příspěvek, konkrétně ta druhá část za --------.
Podle toho, zda je nastavena session s jazykem nebo není naincluduješ (requirneš) soubor s jazykem.
Přepínačem mezi jazyky bude soubor set_language.php. Tomu z nějakého formuláře uživatel pošle požadavek na jazyk a on nastaví (nebo zruší) příslušnou session.
Nefici:(
Kdyz mam v nakym tom souboru napr v default.php require $languages tak me to vyhodi :
Warning: main(Array): failed to open stream: No such file or directory in /3w/unas.cz/b/bbs/test/default.php on line 10
Fatal error: main(): Failed opening required 'Array' (include_path='.:/usr/local/lib/php') in /3w/unas.cz/b/bbs/test/default.php on line 10
no a kdyz tam dam require $language; tak me to vyhodi :
Warning: main(cesky): failed to open stream: No such file or directory in /3w/unas.cz/b/bbs/test/default.php on line 10
Fatal error: main(): Failed opening required 'cesky' (include_path='.:/usr/local/lib/php') in /3w/unas.cz/b/bbs/test/default.php on line 10
...
Newím kde je chyba:(
Asi máš ty stránky v podadresáři. Nemůžeš includovat z includovaného souboru! Resp. samozřejmě můžeš, ale je to reálně nemožné, pokud nemáš všechny soubory v jednom adresáři.
Navíc proč dávat "require $languages;" do jednotlivých stránek? Vždyť jazyk můžeš zvolit už v index.php.
jo ja su vul.Bych si mel taky precist poradne zdrojak.
NO nicmene jsme vsechno udelal jak by to asi melo byt a:
chyba1) Kdyz kliknu na nakej odkaz z toho menu tak se me otevre uplne bila stranka bez cehokoliv a az po kliknuti F5 (refrech) se me načte index.php s požadovanou includovanou strankou.
chyba2) Kdyz kliknu na nastaveni jazyka soubor set_language.php nenalezen.Přitom tam je na sto procent.zkousel jsem to prejmenowat-nepomohlo:(
jo a co mam zadat do odkazu na zmenu jazyku?Toto je asi blbe ze?
<a href="set_language.php?language=english">en</a>
ten odkaz ma´m na indexu.
jo ja su vul.Bych si mel taky precist poradne zdrojak.
NO nicmene jsme vsechno udelal jak by to asi melo byt a:
chyba1) Kdyz kliknu na nakej odkaz z toho menu tak se me otevre uplne bila stranka bez cehokoliv a az po kliknuti F5 (refrech) se me načte index.php s požadovanou includovanou strankou.
chyba2) Kdyz kliknu na nastaveni jazyka soubor set_language.php nenalezen.Přitom tam je na sto procent.zkousel jsem to prejmenowat-nepomohlo:(
jo a co mam zadat do odkazu na zmenu jazyku?Toto je asi blbe ze?
<a href="set_language.php?language=english">en</a>
ten odkaz mam v index.php
http://enity.bank.cz//
Pokud ti jde o prepinani cestiny a anglictiny na webu toto se mi zda jako nejlezci zpusob
Na web si das nejaky text(ten se ma zobrazovat v cz a en - vlozis to do promene treba $text)
Pote na web vlozis php kod <? echo $text; >(tam kde se ma zobrazit text)
Podle toho jesli si uzivatel zvolil cz nebo en se nacte $text (fce requie[nejak tak]) ktera je ulozena v souboru cz.lang (priklad nazvu)[somazrejme ze je tam cesky] a v souboru en.lang (priklad nazvu)[somazrejme ze je tam anglicky] , a promenou treba language predavs pomoci odkazu jako na zacatku tato diskuse.
Doufam ze sem s tim ¨to nekomu pomohl pac sem si tudle diskusi moc necet :)
Ukazka ::
<?
If ($language == "cz" ) {
requie (soubor s cestinou);
ELSE ($language == "en" ) {
requie (soubor s anglictinou);
}
echo $text;
?>
<a href="nejaka stranka?language=cz">Cesky</a>
<a href="nejaka stranka?language=en">Anglicky</a>