Autor Zpráva
Kimseo
Profil
Dobrý den všem, v PHP jsem nováček, dosud jsem dělal stránky v ASP, ale to považuji za přežitek a proto chci dále pokračovat v PHP. Upravuji nyní jedny PHP stránky pro SEO, jelikož jsou z tohoto pohledu hrozně zbastlené. Potýkám se ale s tím, že mám určité návyky ASP a něco mi prostě v PHP není jasné :-) Uveřejním i své ICQ kdyby byl někdo takový dobrák a občas mi odpověděl na všetečnou otázku:-) ICQ: 56846940. A teď co mě trápí.

1) Web který upravuji má celkem hodně stránek a zasloužil by si pro pořádek rozdělní do adresářů. Zde se setkávám s problémem. Jak se v PHP includuje nejlépe :-) Mám rád soubory top a bottom a ty v každém souboru includuji. Stránky, které upravuji jsou mi v tomto směru nějak nejasné. Jejich tvůrce vytvořil soubor functions.php a tam přes echo vypisuje celou hlavičku webu, což mi příjde špatný. Udělal jsem si tedy to své oblíbené top a bottom, je to ok nebo chyba? Mám mít spíš jeden template v jednom souboru? Jak pak budu do něj načítat obsah? Nechci aby všechny stránky byly ve tvaru index.php?stranka=1, což občas vídám.

2) Můj druhý problém tkví v tom, že jak jsem si to rozhodil do těch podadresářů, tak mám problém s odkazy v menu (top.php). Mají tvar www.nazev.cz/rubrika/konktakt.php, namísto www.nazev.cz/kontakt.php. Čili vlastně sháním nějakou konstrukci, která mi udělá správnou cestu. Kamarád v .NETu používá takový hezký "ResolveUrl", který mu udělá vždy cestu od root webu.

Děkuji děkuji za všechny rady.
S pozdravem
Kim
nightfish
Profil
ad 1) je celkem jedno, jestli si uděláš soubor functions.php a v něm třeba funkce printHeader() a printFooter(), které pak budeš volat na začátku a na konci každé stránky a nebo jestli si obsah funkce printHeader() dáš do "top" a printFooter() do "bottom" a ty pak budeš includovat

ad 2) buď použít absolutní adresu a nebo relativní s tím, že se budeš odkazovat od rootu (tzn. místo "kontakt.php" použiješ "/kontakt.php")
Joker
Profil
1) ... Jak se v PHP includuje nejlépe
Taky mám radši samostatný soubor, který se pak includuje, než vypisování pomocí echo(). Už proto, že v samostatném souboru se s tím v editoru dá jednoduše pracovat jako s HTML kódem (zvýraznění, automatické formátování, funkce "označit tag" a podobné).
Ovšem podle mého názoru úplně nejlepší způsob je použít šablony. Šablony jsou vlastně taková "vyšší úroveň" samostatných souborů.

2) ... sháním nějakou konstrukci, která mi udělá správnou cestu.
Teď si nejsem jistý, co přesně myslíte.
Kimseo
Profil
buď použít absolutní adresu a nebo relativní s tím, že se budeš odkazovat od rootu (tzn. místo "kontakt.php" použiješ "/kontakt.php")

Když použiju "/kontakt.php" tak mě to směruje až do rootu localhost, ne do rootu webu, jak na to správně?
Kimseo
Profil
2) ... sháním nějakou konstrukci, která mi udělá správnou cestu.
Teď si nejsem jistý, co přesně myslíte.


... no jak jsem zmínil ten ResolveUrl tak ten vlastně dělá toto: Mám soubor který je zanořený hluboko ve struktuře adresářů webu, v tomoto souboru (stránce) dám každý odkaz do funkce, např. ......href="<%= ResolveUrl("~/kontakt.aspx") %>..... tím se vlastně odkudkoliv dostávám do kořenového adresáře webu. Když jsem použil href="/kontakt.php" tak mě to dostalo až do rootu localhost.
Joker
Profil
Kimseo
Aha. Jo, tak to jsem řešil podobný problém, že chci odkazovat třeba na web/css/neco.css ze stránek umístěných různě v adresářové struktuře. Tak pěkně "/css/neco.css". Fajn, ale na localhostu ten web nemám úplně v kořeni, takže při testování to zas nefunguje.
Dá se to řešit tak, že si na svém počítači pro ten web vyrobíte doménu :)
No a ještě je jedno velmi primitivní, ale účinné řešení:
Dejte si nějakou proměnnou, třeba $root, ve které bude na každé stránce cesta do rootu. Třeba na stránce která je v web/adresar/ bude na začátku $root=".." a odkazy pak jsou třeba $root."/neco/soubor.php"
Kimseo
Profil
Dá se to řešit tak, že si na svém počítači pro ten web vyrobíte doménu :)

Ok, v ASP jsem to dělal přes IIS, jak v PHP? :-)

Dejte si nějakou proměnnou, třeba $root, ve které bude na každé stránce cesta do rootu.

To je nápad, také jsem to tak v ASP kdesi kdysi řešil.
Joker
Profil
Kimseo
Ok, v ASP jsem to dělal přes IIS, jak v PHP? :-)
To není otázka jazyka, ale serveru. Jestli máte PHP na IIS, tak zase přes IIS. Já mám Apache, ale nevzpomínám si jak přesně se to dělá, vyhrabal jsem to někde v manuálu :-)
Kimseo
Profil
Já mám Apache, ale nevzpomínám si jak přesně se to dělá

Já mám Apache i IIS :-) Tak jdu koumat, ani nevím jestli má Apache nějakou konzolu, no nazdar, jestli tohle čte někdo zasvěcený tak se chytá za hlavu :-))) No co upravit ty stránky je potřeba... :-) a vím že bastl ven nepustím.
Joker
Profil
Kimseo
Nastavuje se to přes konfigurační soubor, zkuste Google. Já taky do nastavování Apache moc nevidím, ale když jsem to potřeboval, povedlo se mi vygooglit srozumitelný návod ;-)
niky
Profil *
Tahle otazka je trochu mimo mísu ale: kde najdu IIS server na Windows XP? Nebo se musí někde stáhnout? Vim, že u Win2000 se to dalo nainstalovat přes přidání součéstí Win, ale nechápu proč to na XP tak neni. Poradte prosím
niky
Profil *
Jak jsem čelt Vaše příspěvky vidím že to víte...
Kimseo
Profil
Vim, že u Win2000 se

No já mám právě win2000 :-) takže bohužel nevím, ale myslím že i XP na tom budou s IIS podobně jako 2000
Joker
Profil
niky
Dejte v XPčkách nabídku Start, nápověda a napište: iis
Jedno z témat je instalace IIS a je tam i postup instalace.

Mimochodem, tohle je poprvé v životě, kdy jsem se z nápovědy Windows dozvěděl nějaké užitečné informace :-D
niky
Profil *
Děkuji za rady, bohužel tohle jsem už dávno věděl, ale až ted' jsem zjistil, že IIS funguje jenom na Windows XP Profesional :(
A protože já mám Home, tak jsem to pořád nemohl najít. No a konečně vim už proč...
Medyn
Profil *
Chtěl bych se zeptat na nejlepší metodu odchytávání stisknutí určitého tlačítka z formuláře. Já sám používám
<?php
if (isset($_POST("button_name")){
echo "delej co umis";
}
?>

Prijde mi to ale hrozne neohrabane. Neda se to treba nejak zneuzit?
minimal
Profil *
po odoslani form su vsetky premenne z form inicializovane, cize isset() mi pripada irelevantne skor je na mieste zistit ci premenna je alebo nie je empty()
minimal
Profil *
ale smozrejme na zistenie odoslania form staci isset()
Toto téma je uzamčeno. Odpověď nelze zaslat.

0